写在前面:为了提高自己专业水平,小小的总结,希望自己可以不断的提高!
Adb命令实践
Android 调试桥
Adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用。
Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,然后根据其具体的路径配置好环境变量。然后启动cmd 输入‘adb’即可查看是否配置成功。
Adb 的工作原理
启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程。如果没有,它将启动服务器进程。当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令—所有 adb 客户端均使用端口 5037 与 adb 服务器通信。
Adb shell
Android 设备底层是 linux 系统。 shell 是 linux 系统的字符交互界面。
adb shell# -s 进入指定设备shell
adb -s 127.0.0.1:62001 shell#退出adb shell
exit#进入adb shell后有两种状态显示:#代表有root权限,$代表没有root权限
root@android:/ #shell@mx4:/ $
备注:root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。一些需要root权限的应用,譬如广告阻挡,卸载系统预装App是需要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。所以,用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。所以,在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root。
利用命令行安装apk文件
adb -s install | -r <apkName>
其中:-r 覆盖原安装文件; -s 可以指定设备#默认安装
adb install "C:\Users\test.apk"#覆盖安装
adb install -r "C:\Users\test.apk"#指定设备安装
adb -s 127.0.0.1:62001 install C:\Users\test.apk"
如遇到报错:Failure [INSTALL_FAILED_INVALID_URI]
解决方案: cmd命令行下执行以下命令:
· 1 adb remount
· 2 adb shell
· 3 cd /data
· 4 chmod 777 local
5 重新安装apk
卸载APK
adb uninstall | -k <apkName> 卸载软件,其中:包含-k 参数 表示卸载软件但是保留配置和缓存文件.adb uninstall com.test.testadb shell cmd package uninstall -k com.talkingdata.demo
查看设备上面安装的应用包名
adb shell pm list package
文件读取写入
#将文件从PC写入到设备adb push <本地路径> <设备路径>
eg:
adb push C:\Users\Shuqing\Desktop\kyb.txt /sdcard
C:\Users\Shuqing\Desktop\kyb.txt: 1 file pushed. 0.1 MB/s (462 bytes in 0.005s)#将文件从设备读取到PCadb pull <remote> <local>
eg:
adb pull /sdcard/server.log C:\Users\Shuqing\Desktop
/sdcard/server.log: 1 file pulled. 0.0 MB/s (196 bytes in 0.004s)注意:由于权限问题,不能直接pull到电脑磁盘根目录,否则会报错:C:\Users\Shuqing>adb pull /sdcard/server.log D:\\
adb: error: cannot create file/directory 'D:\\': No such file or directory
屏幕截图
$ adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png C:\Users\Administrator\Desktop
adb服务启动和关闭
adb kill-server 关闭adb服务
adb start-server 开启adb服务
Tips:如果5037端口被占用可以使用如下命令释放端口
C:\Users\Administrator> netstat -ano | findstr "5037"TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 11072TCP 127.0.0.1:5037 127.0.0.1:59519 TIME_WAIT 0taskkill -f -pid XXX
总结:
- adb是自动化非常重要的一个工具
- 目前很多PC客户端手机助手也是基于adb连接原理进行封装的。
- 可以将常用的adb命令封装成bat命令,随时可以运行。
如:
adbdevices.bat 包含以下代码:
adb devices
pauseAdbConnect.bat包含以下代码:
adb connect 127.0.0.1:62025
adb devices
pause