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