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. SPOJ 345 - Mixtures 区间动态规划

    有n个混合物排成一排,每个混合物有一个颜色值0<=color<=99, 规定合并只能合并相邻两个, 将颜色a的混合物与颜色b的混合物合并后,颜色为( a+b ) % 100,并产生a*b的 ...

  2. ViewPagerindicator 源码解析

        ViewPagerindicator 源码解析   1. 功能介绍 1.1 ViewPagerIndicator ViewPagerIndicator用于各种基于AndroidSupportL ...

  3. .net框架介绍

    .net 一般指 .net Framework框架,是一种平台,一种技术 C# 是一种编程语言,可以开发基于.net平台的应用 Java 既是一种技术,也是一种语言 .net可以开发桌面应用程序    ...

  4. 关于git的一些常用命令

    1.git init 把目录变成Git可以管理的仓库 2.git add 把文件添加到仓库 3.git commit -m "" 把文件提交到仓库,-m后面是提交说明 4.git ...

  5. winapi获取鼠标位置

    using System; using System.Drawing; using System.Runtime.InteropServices; using System.Threading; na ...

  6. LINUX 内核代码 errno 错误代码提示 /include/asm/errno.h

    首先在自己的程序中#include<errno.h> 添加打印errno的语句 printf("errno is: %d\n",errno); 根据errno的值查错. ...

  7. 本地代码上传 -> Github

    首先在控制台cd到你的本地项目,这里以teat为例 1.执行命令:  git init 2.将项目文件添加到仓库中:  git add . (可以是指定文件,将“.”转换为指定文件) 3.接下来com ...

  8. Ubuntu12.04安装insight-6.8

    insight是在Linux下一个比较好用的GDB的前端 insight首页:http://sourceware.org/insight/index.php 在这里下载源码:insight-6.8.t ...

  9. 多核CPU利用测试

      一直在想程序上是否特意让线程在指定的CPU上去运行,这样可以提高运行效率,所以特地写个代码让CPU使用率画正弦曲线的实验,我使用的是AMD X4 641的CPU,为四核四线程的片子. 代码如下 # ...

  10. Solution(项目部署):The server does not support version 3.0 of the J2EE Web module specification

    1.错误: 在eclipse中使用run->run on server的时候,选择tomcat6会报错误:The server does not support version 3.0 of t ...