一、开启Activity、服务、广播

1.开启Activity、服务、广播基础知识

通过adb shell,可以使用activity manager(arm)工具来执行不同的系统操作,如开启一个action,开启一个activity、强制停止一个线程、修改设备屏幕属性等等,adb shell命令格式如下:

am <command>

1)intent

intent可以理解为不同组件通信的媒介或者信使;

intent可以启动一个Activity,也可以启动一个Service,好可以发起一个广播Broadcast

通过intent,你的程序可以像Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求

Intent

说明

Am参数

component 组件名称  格式为:包名/类名 -n
action 指定Intent的执行动作,比如调用拨打电话组件 -a
data_url 表示与动作要操纵的数据 -d
category categary是一个字符串,提供了额外的信息,有关于能够处理这个Intent对象的组件种类 -c
extra 传递给Intent的额外数据,以Bundle的形式定义,就是一些键值对 -e
mime_type MIME类型 -t
flags 各种类型的flag,很多是用来指定Android系统如何启动activity,还有启动了activity后如何对待他 -f
package 包名 -p

2)启动Activity

#启动界面

adb shell am start [参数] <INTENT>

参数

说明

-D 开启调试模式
-W 等待启动完成
--start-profile <file> 开始分析器和发送结果(文件)
--sampling INTERVAL 使用样本分析 间隔:微秒 
样品(使用—start-profiler)之间
-P <FILE> 应用空闲下来后,停止profile
-R COUNT 重复活动推出<统计>次。每个重复之前,活动将会结束
-S 组织目标应用开始前的活动
--opengl-trace 启用跟踪OpenGL函数
[—user <USER_ID> | current] 指定哪些用户运行,如果不指定则使用当前用户

3)启动和停止服务

#启动服务

adb shell am startservice [参数] <INTENT>

#停止服务

adb shell am stopservice [参数] <INTENT>
参数 说明
--user <USER_ID> | current 指定哪些用户运行,如果不指定则使用当前用户

4)启动广播

#启动广播

adb shell am broadcast [参数] <INTENT>
参数 说明
--user <USER_ID> | current 指定哪些用户运行,如果不指定则使用当前用户

二、内存与进程操作

1.内存操作

获取heap文件:adb shell am dumpheap [参数] <process>

参数 说明
--user <USER_ID> | current 指定哪些用户运行,如果不指定则使用当前用户
-n 获取native heap而不是managed heap

例如:

adb shell am dumpheap com.android.browser /data/local/tmp/test.hprof

#获取内存快照(后缀名必需为.hprof)

使用adb pull /data/local/tmp/test.hprof e:\命令将testr.hprof文件保存到电脑本地

使用命令:hprof-conv e:\test.hprof e:\test1.hprof进行文件转化

然后就可以使用mat工具对内存进行查看分析

2.进程操作

adb shell am force-stop [参数] <process>

#强制停止应用(process=包名)

adb shell am kill [参数] <process>

#停止后台单个进程

adb shell am kill-all

#停止后台所进程

三、调试相关操作

1.性能相关

截图来自极客学院

Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。

2.监听异常

监听crash和ANR:adb shell monitor [options]

【android】Android am命令使用的更多相关文章

  1. 我的Android第四章:Android的adb命令使用以及SQlite数据库运用

    adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用.      adb有什么用?:借助adb工具,我们可以管理设备或手机模拟器的状态.还可以进行很多手机操作, ...

  2. Android测试——adb命令

    Adb (Android Debug Bridge)起到调试桥的作用. 通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序.adb采用监听Socket TCP 5554等端口 ...

  3. Android 常用 adb 命令

    查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...

  4. Android执行shell命令

    一.方法 /** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/bin/cat", &q ...

  5. Android 常用 adb 命令总结

    Android 常用 adb 命令总结 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命 ...

  6. Android的logcat命令详解

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  7. 【转】Android 常用 adb 命令总结

    原文地址:http://testerhome.com/topics/2565 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Andr ...

  8. Android 常用 adb 命令总结【转】

    原文链接 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中 ...

  9. [Android] 基于 Linux 命令行构建 Android 应用(七):自动化构建

    本章将演示如何基于 Linux 命令行构建 Android 应用,在开始本章之前,希望你已经阅读之前几章内容. 本文环境为 RHEL Sandiego 32-bits,要基于 Linux CLI 构建 ...

  10. [Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目

    创建 Android 项目 在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下.).它能自动生 ...

随机推荐

  1. 开始学习Dojo

    学习:Dojo入门简易教程 Dojo Toolkit 简介 Dojo 于 2004 年创建,使开发 DHTML 和 JavaScript web 应用程序开发流程更为容易,隐藏了很多现代 web 浏览 ...

  2. SQL GROUP BY 中的TOP N

    一个示例表test(select * from test): id gid    age    username1 1      11     zhangsan2 1      13     zhan ...

  3. The next day to learn English

    if you smail when no  one else is around,you really meat it.

  4. PHP 记录日志

    public function writelog($message) { $logFileDir = LOG_PATH; $logFile = 'monitor' . date('Y-m-d') . ...

  5. Ansible-Tower快速入门-5.导入许可【翻译】

    导入许可 Tower需要一个有效的许可才可以正常运行,当你输入你的相关信息得以下载tower时,你应该有接收到一封包含许可的email邮件,你也可以直接从ansible获取许可. 如果你不能获取许可或 ...

  6. c#中方法的重载

    转自:http://www.cnblogs.com/lovesong_blog/articles/1416617.html string和program都是Object的派生类,string类型是se ...

  7. http中get和post的区别

    HTTP定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST. HTTP-GET和HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语 ...

  8. 内存的crash记录分析

    服务器上线之后,发生了3次crash,感觉是一次比较典型的内存bug的排错经历,所以特地记录下来供以后借鉴.下面描述一下3次crash时候的coredump的当前堆栈信息. 第一次crash的core ...

  9. wordpress导入模板数据

    主题安装完成以后,如果有主题的DEMO数据(xml格式的)的话可以导入,导入后该有的页面与分类文章等等都会有了,这样子会节省很多时间,导入后只需要更改对应的页面与分类就可以了. 导入方法: 1. 在后 ...

  10. Linux 中断处理浅析

    最近在研究异步消息处理, 突然想起linux内核的中断处理, 里面由始至终都贯穿着"重要的事马上做, 不重要的事推后做"的异步处理思想. 于是整理一下~ 第一阶段--获取中断号 每 ...