zoukankan      html  css  js  c++  java
  • adb 之android的神器am

    am命令,am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等

    命令窗口通过adb shell 进入android 的Linux命令界面,输入am -help看到如下信息:

     

     

     

    force-stop <PACKAGE> : 强制停止指定的package包应用。

    kill [options] <PACKAGE> :杀死指定package包应用进程,该命令在安全模式下杀死进程,不影响用户体验。参数选项:--user <USER_ID> | all | current: 指定user进程杀死,如果不指定默认为所有users。(关于USER_ID下面会介绍到)

    kill-all :杀死所有的后台进程。

    broadcast [options] <INTENT> :发送一个intent。具体intent参数参照start命令参数。参数选项:--user <USER_ID> | all | current: 指定user进程杀死,如果不指定默认为所有users。

    instrument [options] <COMPONENT> :测试命令,不多作介绍。

    profile start <PROCESS> <FILE> :在<PROCESS>进程中运行profile,分析结果写到<FILE>里。

    profile stop <PROCESS> :停止profile。

    set-debug-app [options] <PACKAGE> :设置package包应用为debug模式。参数选项:-w|--persistent:等待进入调试模式,保留值。

    clear-debug-app :清空之前用set-debug-app命令设置的package包应用。

    以下命令查看官网:
    monitor [options]
    screen-compat [on|off] <PACKAGE>
    display-size [reset|<WxH>]
    display-density <dpi>
    to-uri <INTENT>
    to-intent-uri <INTENT>




    我们可以通过命令启动android中的Activity,Service,BroadcastReceiver 等组件

     

    1. 拨打一个电话:

     

        am start -a android.intent.action.CALL -d tel:10086

     

        这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型。

     

    2. 打开一个网页:

     

        am start -a android.intent.action.VIEW -d  http://www.baidu.com (这里-d表示传入的data)

     

    3. 打开音乐播放器:

     

        am start -a android.intent.action.MUSIC_PLAYER 或者

        am start -n com.android.music/om.android.music.MusicBrowserActivity

     

    4. 启动一个服务:

     

        am startservice <服务名称>

     

        例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService (这里-n表示组件)

        或者   am startservice -a com.smz.myservice (这里-a表示动作,就是你在Androidmanifest里定义的) 

     

    5. 发送一个广播:

     

        am broadcast -a <广播动作>

     

        例如: am broadcast -a com.smz.mybroadcast

     


     


    6 启动一个Activity 

    # am start -n 包(package)名/包名.活动(activity)名称

    启动的方法可以从每个应用的AndroidManifest.xml的文件中得到

     

    Music 和 Video(音乐和视频)的启动方法为:

    # am start -n com.android.music/com.android.music.MusicBrowserActivity

    # am start -n com.android.music/com.android.music.VideoBrowserActivity

    # am start -n com.android.music/com.android.music.MediaPlaybackActivity

     

    Camera(照相机)的启动方法为:

    # am start -n com.android.camera/com.android.camera.Camera

     

    Browser(浏览器)的启动方法为:

    # am start -n com.android.browser/com.android.browser.BrowserActivity

     

    启动 google map 直接定位到北京 :

    am start -a android.intent.action.VIEW geo:0,0?q=beijing

    am还有很多的用法,有待研究。

     

     

    接下来介绍pm命令,pm全称package manager,你能使用pm命令去模拟android行为或者查询设备上的应用等,当你在adb shell命令下执行pm命令:

    pm <command>
    你也可以在adb shell前执行pm命令:
    adb shell pm uninstall com.example.MyApp

    关于一些pm命令的介绍:
    list packages [options] <FILTER> :打印所有包,选择性的查询包列表。参数选项:-f:查看关联文件,即应用apk的位置跟对应的包名(如:package:/system/app/MusicPlayer.apk=com.sec.android.app.music);-d:查看disabled packages;-e:查看enable package;-s:查看系统package;-3:查看第三方package;-i:查看package的对应安装者(如:1、package:com.tencent.qqmusic installer=null 2、package:com.tencent.qqpim installer=com.android.vending);-u:查看曾被卸载过的package。(卸载后又重新安装依然会被列入);--user<USER_ID>:The user space to query。

    list permission-groups :打印所有已知的权限群组。

    list permissions [options] <GROUP> :选择性的打印权限。参数选项:

     

    list features :设备特性。硬件之类的性能。

    list libraries :当前设备支持的libs。

    list users :系统上所有的users。(上面提到的USER_ID查询方式,如:UserInfo{0:Primary:3}那么USER_ID为0)

    path <PACKAGE> :查询package的安装位置。

    install [options] <PATH> :安装命令。

    uninstall [options] <PACKAGE> :卸载命令。

    clear <PACKAGE> :对指定的package删除所有数据。

    enable <PACKAGE_OR_COMPONENT> :使package或component可用。(如:pm enable " package/class" )

    disable <PACKAGE_OR_COMPONENT> :使package或component不可用。(如:pm disable " package/class" )

    disable-user [options] <PACKAGE_OR_COMPONENT> :参数选项:--user <USER_ID>: The user to disable.
    grant <PACKAGE_PERMISSION> :授权给应用。

    revoke <PACKAGE_PERMISSION> :撤销权限。

    set-install-location <LOCATION> :设置默认的安装位置。其中0:让系统自动选择最佳的安装位置。1:安装到内部的设备存储空间。2:安装到外部的设备存储空间。(这只用于调试应用程序,使用该命令可能导致应用程序退出或者其他不适的后果)。

    get-install-location :返回当前的安装位置。返回结果同上参数选项。

    set-permission-enforced <PERMISSION> [true|false] :使指定权限生效或者失效。

    create-user <USER_NAME> :增加一个新的USER。

    remove-user <USER_ID> :删除一个USER。

    get-max-users :该设备所支持的最大USER数。(某些设备不支持该命令)



  • 相关阅读:
    base64编码的字符串与图片相互转换
    超酷3D照片展示效果
    table内容保存到Excel中
    项目管理--PMBOK 读书笔记(3)【项目经理的角色 】
    项目管理--PMBOK 读书笔记(2)【项目运行环境】
    项目管理--PMBOK 读书笔记(1)【引论】
    C# ASP.NET递归循环生成嵌套json结构树
    将XML转换为JSON并强制数组
    Yapi Docker 部署
    Spring Cloud Feign+Hystrix自定义异常处理
  • 原文地址:https://www.cnblogs.com/james1207/p/3306200.html
Copyright © 2011-2022 走看看