Android框架层工程师常用的ADB命令

adb跑不起来?(adb默认跑在5037端口---可以通过设置环境变量改变其运行端口)

在window cmd中:

netstat     ----查看端口号被哪个进程占用,记住进程id

之后用命令 & 任务管理器 杀掉该进程


adb install xxx.apk    --安装apk

如果已经存在了,就会报错:Failure [INSTALL_FAILED_ALREADY_EXISTS]

adb install -r packageName  强制安装
adb install -d packageName  装在sd卡
adb install -f packageName  装在手机内存---默认

(adb install 的原理:先把apk拷贝到 /data/local/tmp或者sd卡的某临时目录,改名之后,放入安装目录进行扫描安装)

adb install = adb push xxx.apk /data/local/tmp/xxx.apk + adb shell pm install /data/local/tmp/xxx-n.apk

(装在sd卡也是一样的,需要一个tmp目录---请看4.4以上的源码)

 

adb uninstall packageName  卸载应用(非系统应用)
adb uninstall -k packageName  卸载应用(非系统应用),但是不删除数据

(-k可能会报错,要你尝试: adb shell pm uninstall -k packageName)



adb push  & adb pull   (导入&导出手机文件)(技巧是,点可以代表本地路径&本地路径干脆不写)
adb push 电脑端文件路径  手机端文件路径
adb pull 手机端文件路径   电脑端文件路径

(怎么看你push进去的成功没有?可以用md5命令看文件的md5值)


sd卡的目录,各手机版本&各硬件厂商的处理情况不一样,需要自己观察发现。


adb检测到多台设备的时候:  (有时候可能是问号)

adb devices    可以查看设备的标识号  (之后用-s指定标识号就可以了)
adb -s 设备标识号    (如果设备标识号是?,写上就好了)



adb shell 进入手机管理


adb reboot  重启手机
adb reboot recovery 重启恢复模式----一般用于刷机啊、恢复出厂设置(抹掉/data/下的数据)
adb reboot fastboot   (不是所有手机都能进入该模式,不支持的就进入正常模式了)
adb reboot bootloader 重启引导模式(有些手机不一定支持)
adb reboot edl      进入下载模式


没事儿你就测测你的app是否又ANR错误

adb shell monkey -v -p com.tencent.mobileqq 500



当你的电脑端需要给手机端传送数据(而不是文件),这个时候就用到socket通信,就需要adb转发

adb forward tcp:1100 tcp:1200



 

adb shell后的指令: 

getprop  获取手机参数

常见的手机参数:  ro.build.version.sdk  查看手机版本

                           ro.build.type   查看手机eng & user & user-debug

 

pm clear packName 清除应用缓存数据
pm path packName 查看apk安装的路径 (也可以用来查找组件)


pm disable packName 设置应用&组件可用(冻结&隐藏app)(需要root权限)(执行成功是new state;不成功是killed)
pm enable packName 解冻应用&组件

(如果某个应用设置了接收开机广播,并在该广播接受者中启动应用,那么只要disable该BroadcastReceiver那就可以了)

(它连广播都接收不到,我问你它还能干啥?它就不能做它该做的事儿了)

(禁用组件的时候,写它的全名:packageName/componentName)



pm install -r -f -s xxx.apk 安装apk

(r 强制安装,f 安装手机内存 s 安装sdcard)


pm uninstall -k packName 卸载应用

(-k 保留应用数据 /data/data/packname下的数据 或者 sdcard下的数据)

(默认卸载不光要删除apk,还要清理数据)


设置应用安装的默认目录 0 auto 1 手机内存 2 sdcard
pm set-install-location 0 1 2
pm get-install-location  查看当前设置

(软件搬家,其实就是移动的apk的位置)

(手机判断默认的安装位置,是有一定的策略的,可能是根据剩余空间的大小)


df path  查看path的空间使用情况 (可以加上-h参数试试)

 

pm list users  查看系统的用户列表

pm list packages  查看系统当前已装apk的包名

 

 你拿eclipse安装运行你写的demo时就看到了:

am start -n <package_name>/.<activity_class_name>      启动应用

  

其他高级命令:adb shell之后

查看手机当前的: 
      cpu使用情况 notification栏 meminfo使用情况
dumpsys cpuinfo |  notification   | meminfo  |   cpuinfo
cat /proc/cpuinfo  查看cpu使用信息 
cat /proc/iomem // 查看IO内存分区
procrank     查询各进程内存使用情况

 

 

service list         查看后台services信息(一般是跑起来的上层服务)

 


下面用的更少

查看短信,联系人数据库 (避免损坏文件,总是先复制一下,再cp)

cp /data/data/com.android.providers.contacts/databases/contacts2.db /data/local/temp/xx.db
adb pull /data/lcoal/tmp/1.db pc_path


cp /data/data/com.android.providers.telephony/databases/mmssms.db > /data/lcoal/tmp/xxx.db 
adb pull /data/lcoal/tmp/1.db pc_path


 

最后一个,直接切换成root用户 (一般system分区是read-only的,需要重新remount一下)

adb root
#重新remount system分区
adb remount


更强大的命令是:(path是指路径)(这是adb shell之后的linux命令)

挂载分区  
mount -o remount rw path



就这样,不贪多,只讲基础


merlin

2015/10/26

你可能感兴趣的:(android,linux,shell,adb)