ADB基础
ADB工具位于SDK的platform-tools目录下,因此在命令行中使用ADB的时候,需要通过cd命令,切换到该目录下,或者将platform-tools的路径添加系统环境变量中,这样就可以直接使用了。
linux配制方法:
cd /usr/local/bin/
sudo ln -s /home/homer/android-sdk-linux/platform-tools/adb
配置好后,在命令行中输入以下命令
adb version
如果显示如下内容,就说嘛配置成功了
Android Debug Bridge version 1.0.36
Revision 9f299f282ec9-android
Android设备端:首先进入Setting,选择“about my phone”,通过不断单击“内部版本号”来激活开发者选项。进入开发者选项后,就可以选择“USB Debug”了。这时候,如果你的设备连接了电脑,那么设备界面上回显示“是否需要对这台电脑授权”的选项,选择“OK”后,电脑就通过ADB连接上这台手机了。
在命令行中输入如下命令
adb shell
显示以下命令说明通过adb进入android系统的命令行了
generic_x86_64:/ $
然后就可以使用shell命令了,android就是基于linux的,所以我们可以使用很多linux下的shell命令
generic_x86_64:/ $ ls |grep "data"
data
generic_x86_64:/ $ cd data
generic_x86_64:/data $
ADB常用命令
- 显示系统中全部Android平台
android list targets
android list targets
Available Android targets:
----------
id: 1 or "android-19"
Name: Android 4.4.2
Type: Platform
API level: 19
Revision: 4
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.
----------
id: 2 ...
...
...
- 安装Apk程序之Install
adb install -r 应用程序.apk
adb install -r ./apkname.apk
- 安装Apk程序之Push
adb push <local> <remote>
adb push ./apkname.apk /system/app
以上两种方法都可以安装Apk,但是它们也有不同。Adb Install 是将Apk安装到/data/data目录下,作为普通的用户程序。而Adb Push则不是安装命令,他是将一个文件写入Android设备存储系统。因此,只要拥有相应权限,就可以把任何Apk放到任何目录下,甚至是System目录下,作为一个系统应用程序。
- 向手机写入文件
adb push <local> <remote>
adb push ./testfile.txt /system/temp
- 从手机获取文件
adb pull <remote> <local>
adb push /system/temp ./testfile.txt
- 查看Log
adb shell
shell@xxx:/$ logcat | grep "abc"
- 删除应用
adb remount
adb shell
shell@xxx:/$ rm /system/app/xxx.apk
- 查看系统盘符
adb shell df
Filesystem Size Used Free Blksize
/dev 485.6M 2.9M 482.7M 4096
/sys/fs/cgroup 485.6M 12.0K 485.5M 4096
/mnt/secure 485.6M 0.0K 485.6M 4096
/mnt/asec 485.6M 0.0K 485.6M 4096
/mnt/obb 485.6M 0.0K 485.6M 4096
/mnt/usb 485.6M 0.0K 485.6M 4096
/mnt/iso 485.6M 0.0K 485.6M 4096
/mnt/samba 485.6M 0.0K 485.6M 4096
/var 485.6M 4.0K 485.5M 4096
/system 871.8M 481.4M 390.4M 4096
/cache 484.3M 128.0K 484.2M 4096
/data 1.8G 148.9M 1.7G 4096
/tvservice 55.0M 39.4M 15.6M 4096
/tvconfig 5.8M 4.2M 1.6M 4096
/tvdatabase 3.9M 772.0K 3.1M 4096
/tvcustomer 11.7M 952.0K 10.8M 4096
/customercfg 3.9M 952.0K 2.9M 4096
/mnt/sdcard 28.6G 6.3G 22.3G 16384
/mnt/usb/sdb1 28.6G 5.0G 23.6G 16384
/mnt/media_rw/sdcard0 28.6G 6.3G 22.3G 16384
/mnt/secure/asec 28.6G 6.3G 22.3G 16384
- 输出所有已安装的应用
adb shell pm list packages -f
- 模拟按键输入
adb shell input keyevent 19
最后面的数字就是要执行的Keyevent的Code,可以在网上查到对应的Code,这里列举一些常用的。
input keyevent 82 menu
input keyevent 3 home
input keyevent 19 up
input keyevent 20 down
input keyevent 21 left
input keyevent 22 right
input keyevent 66 enter
input keyevent 4 back
- 模拟滑动输入
adb shell input touchscreen <x1> <y1> <x2> <y2>
adb shell input touchscreen swipe 18 665 18 350
- 查看运行状态
adb shell dumpsys
shell@xxx:/$ dumpsys activity activities | grep "tencent"
简单的grep了“tencent”的Activity的信息
- Package管理信息
shell@xxx:/$ pm list packages -f
- AM管理信息
启动一个activity
adb shell am start -n 包名/包名+类名
- 重启
adb shell reboot
- 截屏
adb shell /system/bin/screencap -p /sdcard/screenshot.png
- 录制视频
adb shell screenrecord /sdcard/demo.mp4
ADB命令来源
- /system/core/toolbox
- /framework/base/cmds
我们所有的ADB命令和Shell命令就来源于这两个目录