adb 修炼手册

作者: 百工之人 | 来源:发表于2019-10-09 10:26 被阅读0次

有时间就更新,学多少,写多少
想要写出全网最全的adb说明书

本地环境

╭─jojo@diodio ~ 
╰─$ screenfetch   
                          ./+o+-       jojo@diodio
                  yyyyy- -yyyyyy+      OS: Ubuntu 18.04 bionic
               ://+//////-yyyyyyo      Kernel: x86_64 Linux 4.15.0-70-generic
           .++ .:/++++++/-.+sss/`      Uptime: 2d 22h 18m
         .:++o:  /++++++++/:--:/-      Packages: 4890
        o:+o+:++.`..```.-/oo+++++/     Shell: zsh 5.4.2
       .:+o:+o/.          `+sssoo+/    Resolution: 1280x1024
  .++/+:+oo+o:`             /sssooo.   DE: XFCE
 /+++//+:`oo+o               /::--:.   WM: Xfwm4
 \+/+o+++`o++o               ++////.   WM Theme: Mojave-light
  .++.o+++oo+:`             /dddhhh.   GTK Theme: TraditionalOk [GTK2]
       .+.o+oo:.          `oddhhhh+    Icon Theme: Tela
        \+.++o+o``-````.:ohdhhhhh+     Font: Sans 10
         `:o+++ `ohhhhhhhhyo++os:      CPU: Intel Core i5-6500 @ 4x 3.6GHz [68.0°C]
           .o:`.syhhhhhhh/.oo++o`      GPU: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) 
               /osyyyyyyo++ooo+++/     RAM: 3548MiB / 15920MiB
                   ````` +oo+++o\:    
                          `oo++.      


查询设备

adb devices -l

测试结果:

$ adb devices -l
List of devices attached
emulator-5558          device product:lxc_x86_64 model:LXC device:x86_64 transport_id:2
0123456789ABCDEF       device usb:1-2 product:ALCATEL_ONETOUCH_7053D model:7053D device:X1 transport_id:1

  • 连接状态:
    *offline:设备未连接到adb或没有响应
    *device:设备已连接到adb服务器
    *no device: 未连接到设备

将命令发送到特定设备

可能用到多个安卓设备,模拟器,手机,车机等等。
可使用-s指定设备

adb -s emulator-5555 install helloWorld.apk

给大家看看谷歌的例子:


    $ adb devices
    List of devices attached
    emulator-5554 device
    emulator-5555 device

    $ adb -s emulator-5555 install helloWorld.apk

如果您要发出很多 adb 命令,可以将 $ANDROID_SERIAL 环境变量设置为包含序列号。如果您同时使用 -s$ANDROID_SERIAL,则 -s 会替换 $ANDROID_SERIAL

身为一个资深(6个月)的安卓开发人员;安卓设备两个是最少的,So这个命令真的好便利。

# 临时设置环境变量
export ANDROID_SERIAL=emulator-5558

这样后续的adb命令都是暗指这个安卓设备
删除环境变量:

unset ANDROID_SERIAL

安装应用(安装APK)

adb install path_to_apk

adb 发送广播

am broadcast + 参数
[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>][<URI>]

adb 启动Activity

am start -n {包名}/{包名}.{Activity名}
am start -n {包名}/.{Activity名}

adb 关闭Activity

am force-stop {package name}

adb 启动service

am startservice -n {package name}/{packagename}.{service name}
am startservice -a <action>

adb查看正在运行的服务

service list

查看安装包的报信息还有Activity

aapt dump xmltree FooTest.apk AndroidManifest.xml

pm (PackageManager)

删除与包相关的所有数据

清除数据和缓存

pm clear <package_name>

pm clear com.xxx.yyy.voice.test

卸载APK

pm uninstall <package_name>

pm uninstall com.xxx.yyy.voice.test

输出APP的安装包(APK)路径

pm path <package_name>

pm path com.xxx.yyy.voice.test

打印APK相关的系统信息(状态)

pm dump <package_name>

pm dump com.xxx.yyy.voice.test

如何看输出的内容?

打印服务信息 解释
DUMP OF SERVICE activity activity信息
DUMP OF SERVICE meminfo 当前内存使用信息
DUMP OF SERVICE procstats 系统内存使用与一段时间内存总
DUMP OF SERVICE usagestats 服务器使用状态信息
DUMP OF SERVICE batterystats 电池状态信息

我也不能完全看懂输出的Log;但是主要的care点大致能看懂。

查看安装包名(好多)

pm list packages

pm list packages
pm list packages -3 #第三方APP

扩展资料:adb的adb shell pm list packages命令用来查看当前设备app应用包

svc

有的手机会保护自己,kill掉这些命令

打开wifi

svc wifi enable

关闭wifi

svc wifi disable

关闭移动数据网络

svc data disable

打开移动数据网络

svc data enable

我的小手机就只可以运行这两个命令。其他的不可以了。电脑无法运行模拟器,莫得办法。

参考

安卓开发 用户指南
博客园 adb logcat介绍

相关文章

网友评论

    本文标题:adb 修炼手册

    本文链接:https://www.haomeiwen.com/subject/rqxcuctx.html