ADB很强大,记住一些ADB命令有助于提高工作效率。
-
获取序列号:
adb get-serialno
-
查看连接计算机的设备:
adb devices
-
重启机器:
adb reboot
-
重启到bootloader,即刷机模式:
adb reboot bootloader
-
重启到recovery,即恢复模式:
adb reboot recovery
-
查看log:
adb logcat
-
终止adb服务进程:
adb kill-server
-
重启adb服务进程:
adb start-server
-
获取机器MAC地址:
adb shell cat /sys/class/net/wlan0/address
-
获取CPU序列号:
adb shell cat /proc/cpuinfo
-
安装APK:
adb install <apkfile> //比如:adb install baidu.apk
-
保留数据和缓存文件,重新安装apk:
adb install -r <apkfile> //比如:adb install -r baidu.apk
-
安装apk到sd卡:
adb install -s <apkfile> // 比如:adb install -s baidu.apk
-
卸载APK:
adb uninstall <package> //比如:adb uninstall com.baidu.search
-
卸载app但保留数据和缓存文件:
adb uninstall -k <package> //比如:adb uninstall -k com.baidu.search
-
启动应用:
adb shell am start -n <package_name>/.<activity_class_name>
-
查看设备cpu和内存占用情况:
adb shell top
-
查看占用内存前6的app:
adb shell top -m 6
-
刷新一次内存信息,然后返回:
adb shell top -n 1
-
查询各进程内存使用情况:
adb shell procrank
-
杀死一个进程:
adb shell kill [pid]
-
查看进程列表:
adb shell ps
-
查看指定进程状态:
adb shell ps -x [PID]
-
查看后台services信息:
adb shell service list
-
查看当前内存占用:
adb shell cat /proc/meminfo
-
查看IO内存分区:
adb shell cat /proc/iomem
-
将system分区重新挂载为可读写分区:
adb remount
-
从本地复制文件到设备:
adb push <local> <remote>
-
从设备复制文件到本地:
adb pull <remote> <local>
-
列出目录下的文件和文件夹,等同于dos中的dir命令:
adb shell ls
-
进入文件夹,等同于dos中的cd 命令:
adb shell cd <folder>
-
重命名文件:
adb shell rename path/oldfilename path/newfilename
-
删除system/avi.apk:
adb shell rm /system/avi.apk
-
删除文件夹及其下面所有文件:
adb shell rm -r <folder>
-
移动文件:
adb shell mv path/file newpath/file
-
设置文件权限:
adb shell chmod 777 /system/fonts/DroidSansFallback.ttf
-
新建文件夹:
adb shell mkdir path/foldelname
-
查看文件内容:
adb shell cat <file>
-
查看wifi密码:
adb shell cat /data/misc/wifi/*.conf
-
清除log缓存:
adb logcat -c
-
查看bug报告:
adb bugreport
-
获取设备名称:
adb shell cat /system/build.prop
-
查看ADB帮助:
adb help
-
跑monkey:
adb shell monkey -v -p your.package.name 500
通常我们可以通过命令getprop获取,setprop设置;在使用这两个命令前,先看看build.prop里面到底有些什么东西:
adb shell cat /system/build.prop
结果如下:(只取一部分列出)
ro.build.id=KOT49H ro.build.display.id=KOT49H.20140814 test-keys ro.build.version.incremental=20140814 ro.build.version.sdk=19 ro.build.version.codename=REL ro.build.version.release=4.4.2 ro.build.date=2014-08-14 16:50:37 ro.product.model=K1 ro.product.brand=MBX ro.product.name=K1 ro.product.device=K1 ro.product.board=K1 ro.product.cpu.abi=armeabi-v7a ro.product.cpu.abi2=armeabi ro.product.manufacturer=MBX ro.product.locale.language=zh
很显然,该文件存放的数据是以这种等号形式存放的,而且它们是键值对成对出现的。
现在我们再看看getprop取得的结果: (只取一部分列出)
[ro.build.characteristics]: [mbx] [ro.build.date.utc]: [1407987033] [ro.build.date]: [2014-08-14 16:50:37] [ro.build.description]: [k200-user 4.4.2 KOT49H 20140814 test-keys] [ro.build.display.id]: [KOT49H.20140814 test-keys] [ro.build.id]: [KOT49H] [ro.build.product]: [K1] [ro.build.version.codename]: [REL] [ro.build.version.incremental]: [20140814] [ro.build.version.release]: [4.4.2] [ro.product.board]: [K1] [ro.product.brand]: [MBX] [ro.product.cpu.abi2]: [armeabi] [ro.product.cpu.abi]: [armeabi-v7a [ro.product.device]: [K1] [ro.product.locale.language]: [zh] [ro.product.locale.region]: [cn] [ro.product.model]: [K1] [ro.product.name]: [K1]
因此,getprop就是将配置文件里的信息读取出来并经过整理后,并以字典的形式展示给用户的。
它的格式如下:
getprop [key] 取得对应的key的属性值
getprop 列出所有配置属性值
如果要修改属性的话,很简单,只需修改字典值就可以了,如:
setprop [key] [value] 设置指定key的属性值;
watchprops 监听系统属性的变化,如果期间系统的属性发生变化则把变化的值显示出来
其实这三个命令都是toolbox的子命令,如果有兴趣的可以看在android源码中看到其对应的源码:system/core/toolbox/
getprop 查看机器的全部信息参数
getprop ro.serialno 查看机器的序列号
getprop ro.carrier 查看机器的CID号
getprop ro.hardware 查看机器板子代号
getprop ro.bootloader 查看SPL(Hboot)版本号