美文网首页
Android ADB常用命令总结-续

Android ADB常用命令总结-续

作者: graychen | 来源:发表于2018-01-08 14:23 被阅读0次

    接着前几天写的ADB常用命令总结 续。

        接下来写一些和应用交互的一些命令,格式如 adb shell  am <command>。

        adb shell 我总结分为 am命令 和 pm命令。

        那么 adb命令和adb shell命令有什么区别呢?adb命令是adb这个程序自带的一些命令,而adb shell则是调用的Android系统中的命令,这些Android特有的命令都放在了Android设备的系统/ bin目录下。通过这些命令可以和Android系统的一些软件交互。其实上一篇文章已经有过一些adb shell 命令了。比如adb shell pm list packages 查看应用

    Activity Manage

    am 即 Activity Manage .使用它可以启动一个Activity 、Service 、Broadcast 

    主要是使用 am <command> 命令,常用的 <command> 如下:

    .

    <INTENT> 参数很灵活,和写 Android 程序时代码里的 Intent 相对应,参数如下:

    -a <ACTION>    指定 action,比如 android.intent.action.VIEW

    -c <CATEGORY>指定 category,比如 android.intent.category.APP_CONTACTS

    -n <COMPONENT>  指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity

    <INTENT> 里还能带数据,就像写代码时的 Bundle 一样

    1. 调起 Activity

    adb shell am start [options] <INTENT>

    比如:adb shell am start -n com.tencent.mm/.ui.LauncherUI  调用微信的界面

    2.调起 Service/停止 Service

    adb shell am startservice [options] <INTENT>   调起 Service

    adb shell am stopservice [options] <INTENT>

    比如:adb shell am startservice -n com.tencent.mm/.**.Service

    adb shell am stopservice  -n com.tencent.mm/.**.Service

    调用微信下的某个Service

    3.发送广播

    adb shell am broadcast [options] <INTENT>

    发送广播可以是向所有组件发送广播,也可以是只向某个组件发送一个广播

    向所有组件发送一个BOOT_COMPLETED广播:

    adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

    向单个组件发送一个BOOT_COMPLETED广播:

    adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n cn.com.quickpark/.MyBrocastReceiver

    使用 -a 广播名 -n 接收的Receiver 。这一条am 命令很使用 比如说我们的开机广播、电量广播比较难捕获,可以自己发送一条广播,就很容易测试我们的程序

    下面是可以用adb发送的广播

    4.停止某个应用

    adb shell am force-stop <packagename>

    比如:adb shell am force-stop cn.com.quickpark ,表示停止cn.com.quickpark 下的一切进程

    Package Manage

    pm 即 Package Manage,用于和一些应用相关的命令

    1.查看设备所有的应用

    adb shell pm list packages

    添加过滤参数

    在后面 添加一个命令过滤 比如只查看系统应用:

    adb shell pm list packages -s

    只查看第三方应用:

    adb shell pm list packages -3

    包名包含某字符串的应用:

    查看包名包含字符串 tencent 的应用列表

    adb shell pm list packages tencent 

    2.清除应用数据与缓存

    adb shell pm clear <packagename>

    效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。比如:adb shell pm clear com.qihoo360.mobilesafe 清除 360 手机卫士的数据和缓存

    3.查看应用安装路径

    adb shell pm path <PACKAGE>

    比如:

    adb shell pm path cn.com.quickpark 。输出package:/data/app/cn.com.quickpark-1.apk

    模拟按键/输入(input)

    另外 还有一个比较实用的功能就是input。开发中可以用它方便很多操作。格式如下:

    input [<source>] <command> [<arg>...]

    查看 input 命令的完整 help 信息如下:

    比如使用 adb shell input keyevent <keycode> 命令,不同的 keycode 能实现不同的功能,部分Keycode如下:

    按一次电源键

    adb shell input keyevent 26

    菜单键

    adb shell input keyevent 82

    滑动解锁

    如果锁屏没有密码,是通过滑动手势解锁,那么可以通过 input swipe 来解锁。

    命令(参数以机型 Nexus 5,向上滑动手势解锁举例):

    adb shell input swipe 300 1000 300 500

    参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标

    查看日志

    Android 系统的日志分为两部分,底层的 Linux 内核日志输出到 /proc/kmsg,Android 的日志输出到 /dev/log

    [adb] logcat [<option>] ... [<filter-spec>] ...

    内核日志

    adb shell dmesg

    中括号里的 [14201.684016] 代表内核开始启动后的时间,单位为秒。

    通过内核日志我们可以做一些事情,比如衡量内核启动时间,在系统启动完毕后的内核日志里找到 Freeing init memory 那一行前面的时间就是

    相关文章

      网友评论

          本文标题:Android ADB常用命令总结-续

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