android adb介绍
1. 什么是adb
在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB,ADB的全称为Android Debug Bridge,就是调试桥的作用。可以与模拟器或android设备通信。adb可分为三部分:
- 客户端:运行在pc机上,通过console调用 adb 命令。其他工具,如ADT插件 和 DDMS工具等,都会调用adb客户端。
- 服务器:运行在pc机上,以后台程序方式运行。负责客户端与adb 守护进程(deamon)之间的通信。
- adb 守护进程(deamon):运行在android设备或模拟器上。
adb工具放在android_SDK/platform-tools/下。启动adb客。户端后,会首先检测服务器是否已启动。未启动起会将服务器自动起起来,服务器绑定在tcp 5037端口。服务器会扫描5555 to 5585端口段来发现adr设备。当发现adb守护进程后,会建议连接。注意,每个连接会占用两个端口,双数端口用来响应console,单数端口用来adb连接。如,设备1,console: 5554; 设备1,adb: 5555。
2. 启动adb
我使用adb安装apk时,提示:
adb server is out of date. killing...
ADB server didn't ACK
* failed to start daemon *
原因上,电脑上安装的手机助手占用了adb的端口5037,所以adb启动不起来。如果可以退出手机助手,且插上手机后助手也不会霸占adb的端口,倒是可以保留。无奈,我PC上的手机助手做不到,我只能卸之。卸载后就OK了,命令行下adb操作就能启动adb server了。使用adb时,需开启android的debug模式。
3. 常用adb命令
| adb命令 | 解释 |
| adb start-server |
启动adb服务器 |
| adb kill-server |
终止adb服务器 |
| adb version |
查看adb版本 |
| adb version |
查看adb的各种命令和参数的介绍 |
| adb devices |
查看连接到pc上的adr设备。第一列为设备的uid号,第二列为设备的状态。
|
| adb -s deviceID xxxx |
多个设备时,指定操作其中某一个deviceID号为xxxx的设备 |
| adb install xxx.apk -r/d/s |
安装app |
| adb uninstall -k <package_name> | 卸载app -k表示保留配置和缓存文件 |
| adb pull <remote> <local> | 从设备上取回文件 当记下日志后,就可以使用pull命令,将日志文件传到本地查看了 |
| adb push <local> <remote> | 从pc上推送文件到设备 |
4. adb shell
ad shell即可用shell来管理android设备。因为android本质上是linux系统,所以和linux上的操作命令类似。如cd/ls/rm等。
| 命令 | 解释 |
| adb shell dumpsys package <package_name> | 查看与某app相关的所有信息,如action, codepath, version,权限等信息 |
| adb shell dumpsys activity activities|sed -En -e '/Running activities/,/Run #0/p' | 查看当前activity名 |
| adb shell dumpsys meminfo <package_name|PID> | 查看某个app的内存占用 |
| adb shell dumpsys batterystats <package_name> xxx.txt | 获取单个应用的电量消耗信息 可以使用python historian.py xxx.txt > xxx.html将数据转为html文件 |
|
adb shell dumpsys window|grep Surface 或 adb shell wm size |
查看手机分辨率 |
| adb shell getprop | grep heapgrowthlimit / version / product | 查看单个应用程序的最大内存限制 / sdk版本 / 型号 |
| adb shell am start -n/W <package_name>/.<activity_class_name> | -n:启动某个app的某个activity -W 启动并记录启动时长,从startActivity到应用第一帧完全显示的时长 |
| adb shell pm list packages | 列出设备上的所有app包名 |
| adb shell ps | grep xxx | 查看进程 |
| adb shell kill PID | 终止某个进程 |
| adb shell monkey -v -p <package_name> 500 -p 对象包 -v 反馈信息级别 | 运行monkey |
| adb shell getprop ro.build.version.release | 获得设备操作系统版本 |
|
adb -s xxxx shell getprop ro.product.model |
获得设备名 |
| adb [-d/-e/-s <serial no>] <command> | -d 多个真机设备时,-d后 |
5. adb常用命令之logcat
adb命令语法:
[adb] logcat [<option>] ... [<filter-spec>] ...
- adb logcat -c 清除所有以前的日志
- adb logcat -d 打印日志,且自动退出log模式
- adb logcat -f 将日志输出到文件中。注意,这个文件保存在设备上,所以需要将日志创建在可写入的地方。比如/sdcard/logs.txt
- adb logcat -s 设置默认的过滤器, 如 我们想要输出 "System.out" 标签的信息, 就可以使用adb logcat -s System.out
- adb logcat -t N 查看最后的N条日志
- adb logcat | grep XXX 管道命令,同Linux
也可以进入adb shell后,运行logcat。与adb logcat 参数一样。
6. adb常用命令pm
pm,即package management。 详细可参看这篇博文:https://www.cnblogs.com/JianXu/p/5380882.html
- adb shell pm list packages -3 仅显示第三方apk
- adb shell pm list packages | grep xxxx 显示包含xxxx的已安装app名
这个网站不错,http://adbshell.com/commands/adb-connect 与adb相关的命令这里有一些简单的介绍
7. adb常用命令am
android adb介绍的更多相关文章
- Android monkey介绍
Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...
- [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍
注:为了看上去比较清晰这里只转载了中文 原地址: [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍 本章将引导您完成安装和设置开发环境,然后你就可 ...
- 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ A2DP.SINK.sink_connect.s ...
- Android平台介绍
一.Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件.游戏.导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称. 智能手机操 ...
- Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
关键词:蓝牙blueZ A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...
- Android bluetooth介绍(两): android 蓝牙源架构和uart 至rfcomm过程
关键词:蓝牙blueZ UART HCI_UART H4 HCI L2CAP RFCOMM 版本号:基于android4.2先前版本 bluez内核:linux/linux3.08系统:an ...
- android Animation介绍
Animation介绍: 在Android SDK介绍了2种Animation模式: 1. Tween Animation:间动画,通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即 ...
- android adb常用命令
android adb命令: adb root --获取root.adb remount --获取文件操作权限(push)adb shell pm list package 获取包名列表com.mqt ...
- Android adb push 和 pull操作
由于安卓真机本地调试时,每次启动并生成apk然后安装到设备比较费时,而很多情况是仅仅修改了hot 脚本文件(cocos2dx + lua). 所以,使用热更机制把修改后的lua文件push到热更目录( ...
随机推荐
- 20155333 《网络对抗》Exp4 恶意代码分析
20155333 <网络对抗>Exp4 恶意代码分析 基础问题回答 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...
- 20155337《网络对抗》Exp5 MSF基础应用
20155337<网络对抗>Exp5 MSF基础应用 实践目标 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如 ...
- 执行力:Just Do It
执行力,最最关键的一点就是,立即去做,不要想太多. 当有一件事需要去做的时候,你的大脑肯定是接受到了"某种信号",比如来了一个灵感.受到一点启发.做某件事突然来了兴趣.或者想去探讨 ...
- Spark(Python) 从内存中建立 RDD 的例子
Spark(Python) 从内存中建立 RDD 的例子: myData = ["Alice","Carlos","Frank"," ...
- MFC Timer定时器
知识点: 定时器Timer 创建定时器 销毁定时器 代码测试 一. 创建定时器 UINT SetTimer( HWND hWnd, // 指定关联定时器的窗口句柄,在MFC版将省略此参数 UINT n ...
- vue JointJS 实例demo
前言 越来越发现,前端深入好难哦!虐成渣渣了. 需求:前端绘制灵活的关系图(此demo还是简单的,我的需求才跨出一小步) 安装 npm install jointjs 容器,工具栏 <templ ...
- React半科普文
React半科普文 什么是React getting started 文件分离 Server端编译 定义一个组件 使用property 组件嵌套 组件更新 Virtual DOM react nati ...
- Gulp:插件编写入门
之前挖了个坑,准备写篇gulp插件编写入门的科普文,之后迟迟没有动笔,因为不知道该肿么讲清楚Stream这货,毕竟,gulp插件的实现不像grunt插件的实现那么直观. 好吧,于是决定单刀直入了.文中 ...
- sass:常用备忘
一.变量 所有变量以$开头 $font_size: 12px; .container{ font-size: $font_size; } 如果变量嵌套在字符串中,需要写在#{}中 $side : le ...
- libimobiledevice --Mingw32交叉编译
本文只描述 windows环境下的使用情况,linux平台基本雷同. 一.配置编译环境. (1)操作系统 :Windows10 (64bit). (2)类unix环境:Cygwin(64bit) 下载 ...