adb使用持续更新
android开发必备调试工具, 记录下常用的一些adb命令
adb工具可以单独下载也可以下载android SDK在platform-tools文件夹中可以找到
jshh@jeson-ThinkPad-T470:~/Android/Sdk/platform-tools$ ls
adbe2fsdroidhprof-convmke2fspackage.xmlsqlite3
apietc1toollib64mke2fs.confsload_f2fssystrace
dmtracedumpfastbootmake_f2fsNOTICE.txtsource.properties
配置环境变量
一般我们使用为了方便在任何目录下都能方便的直接使用adb工具,都会采用配置环境变量的方式来处理,配置环境变量有两个位置可以直接配置:
- ~/.bashrc
此脚本只针对登录用户生效 - /etc/profile
此脚本全局,针对任何用户,我是配置在这个文件的,末尾添加如下配置
#config adb
export PATH="/home/jshh/Android/Sdk/platform-tools:$PATH"
ps : /erc/profile文件修改需要root权限,可以sudo vi /etc/profile 去修改,这里不多说了.
adb start-server
启动本地adb服务,一般情况下如果直接 adb connect ip, 会自动start
adb kill-server
关闭本地adb服务, 这种情况一般用于adb的配置被改变或者adb出现异常时要重启adb,可以先关闭之后,在重新 adb start-server 来重启本地adb服务
adb disable-verity
关闭在调试环境下的dm-verity检查,当adb remount无法正常执行时,可以尝试使用
adb enable-verity
启用在调试环境下的dm-verity检查
adb connect 192.168.1.123
连接指定ip的android设备
adb devices
查看当前adb连接的设备列表
adb root
获取android设备root权限
【adb使用持续更新】adb remount
重定义分区挂载,一般此命令ok之后,可以读写如 /system 原本只读权限的分区内容
adb mount -o remount rw /system
相比于前一条,这条指令比较明确清晰和针对性,只针对/system
adb shell
进入adb连接的android设备shell环境,进入之后就相当于远程登录了android设备,可以执行android所支持的各种shell环境的指令如:
- pm install xx.apk //pm工具安装apk
- pm uninstall packageName //pm工具卸载apk
- pm clear packageName //pm工具清理apk缓存
- am start -n com.ecarx.radio.test/.TestActivity //am 工具启动apk并指定activity
- am force-stop com.ecarx.radio.test //am工具强制关闭指定apk进程
- am broadcast -a “ecarx.intent.action.ECARX_KEY_SRC_EVENT” //am 工具发送指定action广播
- input keyevent 88 // input 工具模拟发送按键事件
- reboot //系统重启
等等所有指令
adb安装本地apk
adb uninstall packageName
adb 根据报名卸载apk
adb push path/file path/file
将本地文件推至android设备文件系统中, 第一个path是本地文件路径文件 第二个path为目标路径
例如:将本地当前目录xx.apk 推至android设备的/system/app/ 目录下
adb push xx.apk /system/app/
adb pull path/file path/file
将目标android设备指定文件拷贝至本地系统, 第一个path为目标android设备文件路径,第二个path为本地文件路径
例如: android设备 /system/app/ 目录下xx.apk 拷贝到本地当前目录
adb push /system/app/xx.apk .
adb 一些异常问题集合
- adb devices 一直处理offline
有一种说法是adb版本较低,这个我暂时没有碰到,如果有朋友遇到可以尝试下载更换一个高版本adb工具
- offline 和 unauthorized 状态之中跳变,长时间为offline
删除.android/目录下 adbkey adbkey.pub,之后android设备一般会提示添加adbkey授权,点击确定即可,之后adb devices正常.
cd ~/.android/
rm adbkey*
- adb 无法connect,或者端口被占用,反正就是没法connect(确定网络正常,android设备服务正常),那就尝试以下重启服务
adb disconnect
adb kill-server
adb start-server
adb connect 192.168.xx.xx
adb devices
- usb连接 adb shell 出现 insufficient permissions for device
adb shell
error: insufficient permissions for device
解决办法:
1. 清空 /etc/udev/rules.d/51-android.rules
2. 添加一行:SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
3. 不需要重启linux设备,直接拔插usb调试口就行
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用