Using activity manager (am)

Within an adb shell, you can issue commands with the activity manager (am) tool to perform various system actions, such as start an activity, force-stop a process, broadcast an intent, modify the device screen properties, and more. While in a shell, the syntax is:

am <command>

You can also issue an activity manager command directly from adb without entering a remote shell. For example:

adb shell am start -a android.intent.action.VIEW

Table 2. Available activity manager commands

Command

Description

start [options] <INTENT>

Start an Activity specified by <INTENT>.

See the Specification for <INTENT> arguments.

Options are:

  • -D: Enable debugging.
  • -W: Wait for launch to complete.
  • --start-profiler <FILE>: Start profiler and send results to <FILE>.
  • -P <FILE>: Like --start-profiler, but profiling stops when the app goes idle.
  • -R: Repeat the activity launch <COUNT> times. Prior to each repeat, the top activity will be finished.
  • -S: Force stop the target app before starting the activity.
  • --opengl-trace: Enable tracing of OpenGL functions.
  • --user <USER_ID> | current: Specify which user to run as; if not specified, then run as the current user.

startservice [options] <INTENT>

Start the Service specified by <INTENT>.

See the Specification for <INTENT> arguments.

Options are:

  • --user <USER_ID> | current: Specify which user to run as; if not specified, then run as the current user.

force-stop <PACKAGE>

Force stop everything associated with <PACKAGE> (the app's package name).

kill [options] <PACKAGE>

Kill all processes associated with <PACKAGE> (the app's package name). This command kills only processes that are safe to kill and that will not impact the user experience.

Options are:

  • --user <USER_ID> | all | current: Specify user whose processes to kill; all users if not specified.

kill-all

Kill all background processes.

broadcast [options] <INTENT>

Issue a broadcast intent.

See the Specification for <INTENT> arguments.

Options are:

  • [--user <USER_ID> | all | current]: Specify which user to send to; if not specified then send to all users.

instrument [options] <COMPONENT>

Start monitoring with an Instrumentation instance. Typically the target <COMPONENT> is the form <TEST_PACKAGE>/<RUNNER_CLASS>.

Options are:

  • -r: Print raw results (otherwise decode <REPORT_KEY_STREAMRESULT>). Use with [-e perf true] to generate raw output for performance measurements.
  • -e <NAME> <VALUE>: Set argument <NAME> to <VALUE>. For test runners a common form is -e <testrunner_flag> <value>[,<value>...].
  • -p <FILE>: Write profiling data to <FILE>.
  • -w: Wait for instrumentation to finish before returning. Required for test runners.
  • --no-window-animation: Turn off window animations while running.
  • --user <USER_ID> | current: Specify which user instrumentation runs in; current user if not specified.

profile start <PROCESS> <FILE>

Start profiler on <PROCESS>, write results to <FILE>.

profile stop <PROCESS>

Stop profiler on <PROCESS>.

dumpheap [options] <PROCESS> <FILE>

Dump the heap of <PROCESS>, write to <FILE>.

Options are:

  • --user [<USER_ID>|current]: When supplying a process name, specify user of process to dump; uses current user if not specified.
  • -n: Dump native heap instead of managed heap.

set-debug-app [options] <PACKAGE>

Set application <PACKAGE> to debug.

Options are:

  • -w: Wait for debugger when application starts.
  • --persistent: Retain this value.

clear-debug-app

Clear the package previous set for debugging with set-debug-app.

monitor [options]

Start monitoring for crashes or ANRs.

Options are:

  • --gdb: Start gd bserv on the given port at crash/ANR.

screen-compat [on|off] <PACKAGE>

Control screen compatibility mode of <PACKAGE>.

display-size [reset|<WxH>]

Override emulator/device display size. This command is helpful for testing your app across different screen sizes by mimicking a small screen resolution using a device with a large screen, and vice versa.

Example:
am display-size 1280x800

display-density <dpi>

Override emulator/device display density. This command is helpful
for testing your app across different screen densities on high-density screen
environment using a low density screen, and vice versa.

Example:
am display-density 480

to-uri <INTENT>

Print the given intent specification as a URI.

See the Specification
for <INTENT> arguments
.

to-intent-uri <INTENT>

Print the given intent specification as an intent: URI.

See the Specification
for <INTENT> arguments
.

Using package manager (pm)

Within an adb shell, you can issue commands
with the package manager (pm) tool to perform actions and queries on
application packages installed on the device. While in a shell, the syntax is:

pm <command>

You can also issue a package manager
command directly from adb without entering a remote shell. For example:

adb shell pm uninstall com.example.MyApp

Table 3.
Available package manager commands.

Command

Description

list packages [options] <FILTER>

Prints all packages, optionally only those whose package
name contains the text in <FILTER>.

Options:

  • -f:
    See their associated file.
  • -d:
    Filter to only show disabled packages.
  • -e:
    Filter to only show enabled packages.
  • -s:
    Filter to only show system packages.
  • -3:
    Filter to only show third party packages.
  • -i:
    See the installer for the packages.
  • -u:
    Also include uninstalled packages.
  • --user
    <USER_ID>: The user space to query.

list permission-groups

Prints all known permission groups.

list permissions [options] <GROUP>

Prints all known permissions, optionally only those in
<GROUP>.

Options:

  • -g: Organize by group.
  • -f: Print all information.
  • -s: Short summary.
  • -d: Only list dangerous permissions.
  • -u: List only the permissions users will see.

list instrumentation

List all test packages.

Options:

  • -f: List the APK
    file for the test package.
  • <TARGET_PACKAGE>:
    List test packages for only this app.

list features

Prints all features of the system.

list libraries

Prints all the libraries supported by the current device.

list users

Prints all users on the system.

path <PACKAGE>

Print the path to the APK of the given <PACKAGE>.

install [options] <PATH>

Installs a package (specified by <PATH>) to the
system.

Options:

  • -l: Install the package with forward lock.
  • -r: Reinstall an exisiting app, keeping its data.
  • -t: Allow test APKs to be installed.
  • -i <INSTALLER_PACKAGE_NAME>: Specify the installer
    package name.
  • -s: Install package on the shared mass storage (such as
    sdcard).
  • -f: Install package on the internal system memory.
  • -d: Allow version code downgrade.

uninstall [options] <PACKAGE>

Removes a package from the system.

Options:

  • -k: Keep the
    data and cache directories around after package removal.

clear <PACKAGE>

Deletes all data associated with a package.

enable <PACKAGE_OR_COMPONENT>

Enable the given package or component (written as
"package/class").

disable <PACKAGE_OR_COMPONENT>

Disable the given package or component (written as
"package/class").

disable-user [options] <PACKAGE_OR_COMPONENT>

Options:

  • --user
    <USER_ID>: The user to disable.

grant <PACKAGE_PERMISSION>

Grant permissions to applications. Only optional
permissions the application has declared can be granted.

revoke <PACKAGE_PERMISSION>

Revoke permissions to applications. Only optional permissions the
application has declared can be revoked.

set-install-location <LOCATION>

Changes the default install location. Location values:

  • 0: Auto—Let system decide the best location.
  • 1: Internal—install on internal device storage.
  • 2: External—install on external media.

Note: This is only
intended for debugging; using this can cause applications to break and other
undesireable behavior.

get-install-location

Returns the current install location. Return values:

  • 0 [auto]: Lets
    system decide the best location
  • 1 [internal]:
    Installs on internal device storage
  • 2 [external]:
    Installs on external media

set-permission-enforced <PERMISSION>
[true|false]

Specifies whether the given permission should be
enforced.

trim-caches <DESIRED_FREE_SPACE>

Trim cache files to reach the given free space.

create-user <USER_NAME>

Create a new user with the given <USER_NAME>,
printing the new user identifier of the user.

remove-user <USER_ID>

Remove the user with the given <USER_IDENTIFIER>, deleting
all data associated with that user

get-max-users

Prints the maximum number of users supported by the
device.

adb shell am pm 用法的更多相关文章

  1. adb shell am broadcast 手动发送广播及adb shell am/pm其他命令

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zi_zhe/article/details/72229201 在命令行可用adb shell am ...

  2. adb shell am pm

    adb shell am instrument [options] <COMPONENT> 作用:启动对instrument实例的监视. 参数[options]: -e <key&g ...

  3. adb shell am 的用法

    adb shell am instrument [options] <COMPONENT> 作用:启动对instrument实例的监视. 参数[options]: -e <key&g ...

  4. adb shell am/pm 常用命令详解与使用

    一.adb shell am 使用此命令可以从cmd控制台启动 activity, services:发送 broadcast等等 1.am start <packageName/.classN ...

  5. (转)adb shell am 的用法

    原文地址:http://blog.csdn.net/fulinwsuafcie/article/details/8092459   adb shell am 的功能 adb shell am 使用此命 ...

  6. adb shell dumpsys的用法

    一. 打印出设备中所有service的信息 zh@zh:~$adb shell dumpsys -l (字母l)zh@zh:~$adb shell service list 二.查询到运行的syste ...

  7. adb shell pm list packages的用法

    abd shell pm list packages     ####查看当前连接设备或者虚拟机的所有包 adb shell pm list packages -d    #####只输出禁用的包. ...

  8. adb shell 命令之----pm

    常用的用法: 查看已经安装的包: pm list packages 查看已经安装的包以及apk路径(-3:只看第三方应用: -s:只看系统应用) -f: see their associated fi ...

  9. 获取手机安装的所有包名adb shell pm list packages

    获取所有已安装包的包名:adb shell pm list packages 查找:adb shell pm list packages|findstr suning

随机推荐

  1. 自定义控件(视图)2期笔记09:自定义视图之继承自ViewGroup(仿ViewPager效果案例)

    1. 这里我们继承已有ViewGroup实现自定义控件,模拟出来ViewPager的效果,如下: (1)实现的效果图如下: (2)实现步骤: • 自定义view继承viewGroup • 重写onLa ...

  2. solr建立索引的过程

    HttpSolrServer HttpSolrServer继承SolrServer 参考文档:http://my.oschina.net/qige/blog/173008

  3. MVC3中 ViewBag、ViewData和TempData的使用和区别(不是自己写的)

    (网上抄的,并未消化)在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData.MVC3中保留了ViewData的使用.ViewBag 是动态类型(dynamic) ...

  4. ASP.NET实现文件下载

    转:http://blog.csdn.net/codeshark/article/details/2473664 方式一:TransmitFile实现下载.将指定的文件直接写入 HTTP 响应输出流, ...

  5. iOS开发之字典数据建立模型步骤

    1. 在控制器属性的(questions)set方法中完成字典转模型的操作 - (NSArray *)questions { if (nil == _questions) { //1.加载plist文 ...

  6. 何为 pimpl ?

    前言 你是否总因头文件包含冲突而苦恼? 你是否因头文件包含错乱而苦恼? 你是否因封装暴露了数据而苦恼? 你是否因经常改动实现而导致重新编译而苦恼? 在这里, 这些问题都不是问题, 跟随作者, 揭秘pi ...

  7. Linux命令学习计划【sed】

    引言: Sed命令是linux里用于文本行处理的命令. 为了便于说明,我在/usr/dict下创建了字典words并以此作为演示模板 先用nl 打印下words内容: *打印篇: Q1:如何打印某一行 ...

  8. 插入数据显示 Duplicate entry '4913' for key 'user_id'

    提示信息翻译:插入4913 使索引重复 分析:索引如果是primary unique这两两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性.否则就会产生这个错误. 一般发生在对数据库写操 ...

  9. PHP mongoDB 操作

    <?php /** * PHP操作MongoDB学习笔记 */ //************************* //** 连接MongoDB数据库 **// //************ ...

  10. Python新手学习基础之数据结构-对数据结构的认知

    什么是数据结构? 数据结构是指:相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 举个列子来理解这个数据结构: 数据可以比作是书本, 数据结构相当于书架,书存放在书架上, ...