`
cloudtech
  • 浏览: 4639587 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

adb:) adb shell am

 
阅读更多

使用 am 命令可以在命令行方式下启动系统中已经存在的 app.


adb shell 进入命令行。


am 回车,可以看到关于 am 的帮助信息。


关于各个参数的含义,在这里不再赘述,举几个例子即可。


为了说明问题,自己写一个 app,一个 activity、一个 service:




源码:

package mark.zhang;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;

public class AmActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		IntentFilter mFilter = new IntentFilter();
		mFilter.addAction("action_finish");
		registerReceiver(listener, mFilter);
	}

	private BroadcastReceiver listener = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {
			String action = intent.getAction();
			if ("action_finish".equals(action)) {
				new Handler().postDelayed(new Runnable() {

					@Override
					public void run() {
						finish();
					}
				}, 5000);
			}
		}
	};

	protected void onDestroy() {
		super.onDestroy();
		unregisterReceiver(listener);
	};
}

package mark.zhang;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

public class MyService extends Service {

	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void onCreate() {
		super.onCreate();
		Log.d("mark", "MyService--- onCreate callbacks");
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		Log.d("mark", "MyService--- onStartCommand callbacks");
		return super.onStartCommand(intent, flags, startId);
	}

}

在 AmActivity 里面接收到广播就在 5s 后 finish.


将这个工程编译之后的 apk 安装到模拟器:


adb install **/Am.apk


1. 启动 activity


am start -n mark.zhang/mark.zhang.AmActivity


这个时候 activity 被启动了


2. 发送广播


am broadcast -a "action_finish"


5s 之后,可以看到 AmActivity 被 finish.


3. 启动服务


am startservice -n mark.zhang/mark.zhang.MyService


打印信息



相关源码


framworks/base/cmds/am/src/com/android/commands/am/Am.java


程序入口


 /**
     * Command-line entry point.
     *
     * @param args The command-line arguments
     */
    public static void main(String[] args) {
        try {
            (new Am()).run(args);
        } catch (IllegalArgumentException e) {
            showUsage();
            System.err.println("Error: " + e.getMessage());
        } catch (Exception e) {
            System.err.println(e.toString());
            System.exit(1);
        }
    }






分享到:
评论

相关推荐

    android adb shell 命令大全

    adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。 23、发布端口: 你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如: adb ...

    常用ADB命令(暂定)

    查看adb版本: adb version 获取设备列表及设备状态: adb...强制停止应用: adb shell am force-stop 复制设备里的文件到电脑上面:adb pull [电脑的目录] 查看设备信息:adb shell getprop ro.product.model 电池:adb sh

    Android Debug Bridge(安卓调试桥) tools platform-tools adb命令行工具

    调起 Service命令格式:adb shell am startservice [options] 例如:adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService 表示调起微信的某 Service。 强制停止...

    adb shell 和 iperf全平台工具(Android 、Windows、Linux)

    adb shell 工具 iperf全平台工具(Android 、Windows、Linux)

    ADB 工作原理 & 常用命令

    目录 adb(Android Debug Bridge):安卓调试桥 定义: 工作原理: 常用命令 1、adb help: 2、adb devices: ...5.5、adb shell am start -W -n 包名/窗口名: 5.6、Android APP压力测试 の Monkey工具 6、a

    adb 特殊字符输入 如& %,这个因为需要转义,Java和adb 两层转义

    首要条件需要由adb 环境 第一步:先安装插件 adb shell ime set com.adroid.adbkeyboard/AdbIME ...adb shell am broadcast -a ADB_INPUT_TEXT -es msg '我喜欢AIMING & 爱上^ 2' 用法很简单,你学废了吗?

    adb1.0.26包含fastboot.exe

    这时可以 adb shell 然后 su 后执行命令,也可以让 adbd 以 root 权限执行,这个就能随意执行高权限命令了。 命令: adb root 正常输出: restarting adbd as root 现在再运行 adb shell,看看命令行提示符是不是...

    adb 工具,操作手机工具

    获取 App 的信息 App 信息 获取当前界面元素:adb shell dumpsys activity top 获取任务列表:adb shell dumpsys activity activities ...adb shell am start -W -n com.xueqiu.android/.view.WelcomeActivityAlias -S

    ADBKeyBoard.apk adb中文输入法 完美支持中文 adb输入中文 附中文乱码解法方法

    ADBKeyBoard.apk adb中文输入法 完美支持中文 adb...用法 adb shell am broadcast -a ADB_INPUT_TEXT --es msg "中文输入法" 无法或乱码的来这里看解决方法 http://blog.csdn.net/u011068616/article/details/47945927

    ADBKeyBoard Android Virtual Keyboard Input via ADB ADBKeyBoard i

    adb shell am broadcast -a ADB_INPUT_TEXT --es msg '中文输入' 命令比较长,无碍 成功!不止中文(包括中文标点),其他语言也可以,日文亲测也可用,其他的还没试 再教一招:如何切换输入法 看到上图中放大...

    展讯SPRD平台Log工具"YLog"AP日志解析脚本 - analyzer.py

    ADB打开命令:"adb shell am start -n com.sprd.logmanager/.logui.LogMainActivity" 运行脚本命令:"python analyzer.py" 通过工具直接抓取的Log是具有特定格式的加密日志文件,需要通过脚本解析来还原真实Log,...

    moledroid:用于控制Android测试设备的便捷工具

    adb shell am start -n io.github.tanelmae.moledroid/io.github.tanelmae.moledroid.Main -e ANIM false ###打开动画: adb shell am start -n io.github.tanelmae.moledroid/io.github.tanelmae.moledroid.Main ...

    Android基本Shell命令

    Android 基本 Shell 命令 Android 作为一个基于 Linux 的操作系统,大部分命令都是来自 Linux 的,如 mkdir、ls、netstat、mount、ps 等。但是,Android 也有一些特殊的命令,这些命令允许开发者更好地与 Android ...

    Android Debug Bridge version 1.0.41/adb 1.0.41/最新版本

    adb shell am broadcast -a ADB_INPUT_TEXT --es msg '中文输 入' 连接好安卓手机,本地运行cmd :adb devices 可以看到安卓机使用的adb版本 解决Appium 在cmd环境下的中文问题,2020.06.01更新版本

    ADBKeyBoard.apk 完美解决中文输出

    配合ADBKeyBoard.apk使用,完美解决adb 中文输入 adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'ADB真好玩'

    ADBKeyBoard.apk adb中文输入法

    ADBKeyBoard.apk adb中文输入法 完美支持中文 adb输入中文 用法 adb shell am broadcast -a ADB_INPUT_TEXT --es msg "中文输入法

    AndroidProxy.zip

    adb shell am start -n com.lyman.proxysetter/.MainActivity -e host 代理IP地址 -e port 端口号 -e ssid WIFI名称 -e reset-wifi true -e key WIFI密码 取消代理: adb shell am start -n ...

    Android代码-基于Xposed Framewrok的动态逆向分析模块

    ZjDroid Android app dynamic reverse tool based on Xposed framework. 一、ZjDroid工具介绍 ZjDroid是基于Xposed Framewrok的动态逆向分析模块,逆向分析者...adb shell am broadcast -a com.zjdroid.invoke --ei t

    open-quartz:谷歌眼镜开发 - GDK + SDK

    开放石英 开源谷歌眼镜开发 Google Glass 示例 GDK 应用程序: 重要图书馆: ... 运行应用程序: adb shell am start -n PACKAGE.NAME/.MAIN.ACTIVITY.NAME 列出您的 Android 设备上的所有包: adb shell pm

    通过python调用adb命令对App进行性能测试方式

    2 冷启动(第一次启动)热启动(没有退出,第二次打开)命令 adb shell am start -W -n com.qihoo.appstore/.home.MainActivity 3 停止app命令(冷启动) adb shell am force-stop com.qihoo.appstore (热启动方式...

Global site tag (gtag.js) - Google Analytics