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. (总结)Nginx配置文件nginx.conf中文详解 <转>

    转自 http://www.ha97.com/5194.html #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_proc ...

  2. java.util 中的property

    学习中 两个博客: http://swiftlet.net/archives/1023 http://www.cnblogs.com/lingiu/p/3468464.html

  3. Break和Continue的一些注意事项

    Break: 1)可以用于switch-case判断中,用于跳出switch 2)用在循环中,用于立即跳出循环 其中,用于循环的情况下,跳出的是break所在的循环 Continue: 立即结束本次循 ...

  4. css.day05

    1. 外边距合并  不是bug  而是一个特性  (以最大的那个边距为准) 两个盒子是并列关系 两个盒子 父子级关系 1. border 2.overflow:hidden; 3. padding  ...

  5. SQL 插入查询的最大ID 号 进行批量

    INSERT INTO tbl_image_language ( code, docomo_cd, au_cd, softbank_cd ) SELECT DISTINCT((SELECT max(c ...

  6. (转)dedecms代码详解 很全面

    dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...

  7. table标签,认识网页上的表格

    有时候我们需要在网页上展示一些数据,如某公司想在网页上展示公司的库存清单.如下表: 想在网页上展示上述表格效果可以使用以下代码: 创建表格的四个元素: table.tbody.tr.th.td 1.& ...

  8. Swift - 07 - 布尔类型

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  9. Hibernate 性能优化之抓取策略

    fetch 抓取策略 前提条件:必须是一个对象操作其关联对象. 1. 根据一的一方加载多的一方,在一的一方集合中,有三个值:join/select/subselect 2.根据多的一方加载一的一方, ...

  10. FingerChaser(3) 解题报告目录

    所有代码都不超过40行... A:http://www.cppblog.com/willing/archive/2010/05/04/114304.html B:http://www.cnblogs. ...