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工具,都会采用配置环境变量的方式来处理,配置环境变量有两个位置可以直接配置:
  1. ~/.bashrc
    此脚本只针对登录用户生效
  2. /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 install xx.apk
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 一些异常问题集合
  1. adb devices 一直处理offline
    有一种说法是adb版本较低,这个我暂时没有碰到,如果有朋友遇到可以尝试下载更换一个高版本adb工具
  2. offline 和 unauthorized 状态之中跳变,长时间为offline
    删除.android/目录下 adbkey adbkey.pub,之后android设备一般会提示添加adbkey授权,点击确定即可,之后adb devices正常.
cd ~/.android/ rm adbkey*

  1. adb 无法connect,或者端口被占用,反正就是没法connect(确定网络正常,android设备服务正常),那就尝试以下重启服务
adb disconnect adb kill-server adb start-server adb connect 192.168.xx.xx adb devices

  1. 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调试口就行

    推荐阅读