使用 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);
}
}
分享到:
相关推荐
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。 23、发布端口: 你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如: adb ...
查看adb版本: adb version 获取设备列表及设备状态: adb...强制停止应用: adb shell am force-stop 复制设备里的文件到电脑上面:adb pull [电脑的目录] 查看设备信息:adb shell getprop ro.product.model 电池:adb sh
调起 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(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 环境 第一步:先安装插件 adb shell ime set com.adroid.adbkeyboard/AdbIME ...adb shell am broadcast -a ADB_INPUT_TEXT -es msg '我喜欢AIMING & 爱上^ 2' 用法很简单,你学废了吗?
这时可以 adb shell 然后 su 后执行命令,也可以让 adbd 以 root 权限执行,这个就能随意执行高权限命令了。 命令: adb root 正常输出: restarting adbd as root 现在再运行 adb shell,看看命令行提示符是不是...
获取 App 的信息 App 信息 获取当前界面元素:adb shell dumpsys activity top 获取任务列表:adb shell dumpsys activity activities ...adb shell am start -W -n com.xueqiu.android/.view.WelcomeActivityAlias -S
adb shell am broadcast -a ADB_INPUT_TEXT --es msg '中文输入' 命令比较长,无碍 成功!不止中文(包括中文标点),其他语言也可以,日文亲测也可用,其他的还没试 再教一招:如何切换输入法 看到上图中放大...
ADBKeyBoard.apk adb中文输入法 完美支持中文 adb...用法 adb shell am broadcast -a ADB_INPUT_TEXT --es msg "中文输入法" 无法或乱码的来这里看解决方法 http://blog.csdn.net/u011068616/article/details/47945927
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 ...
adb shell am broadcast -a ADB_INPUT_TEXT --es msg '中文输 入' 连接好安卓手机,本地运行cmd :adb devices 可以看到安卓机使用的adb版本 解决Appium 在cmd环境下的中文问题,2020.06.01更新版本
配合ADBKeyBoard.apk使用,完美解决adb 中文输入 adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'ADB真好玩'
ADBKeyBoard.apk adb中文输入法 完美支持中文 adb输入中文 用法 adb shell am broadcast -a ADB_INPUT_TEXT --es msg "中文输入法
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 ...
ZjDroid Android app dynamic reverse tool based on Xposed framework. 一、ZjDroid工具介绍 ZjDroid是基于Xposed Framewrok的动态逆向分析模块,逆向分析者...adb shell am broadcast -a com.zjdroid.invoke --ei t
开放石英 开源谷歌眼镜开发 Google Glass 示例 GDK 应用程序: 重要图书馆: ... 运行应用程序: adb shell am start -n PACKAGE.NAME/.MAIN.ACTIVITY.NAME 列出您的 Android 设备上的所有包: adb shell pm
2 冷启动(第一次启动)热启动(没有退出,第二次打开)命令 adb shell am start -W -n com.qihoo.appstore/.home.MainActivity 3 停止app命令(冷启动) adb shell am force-stop com.qihoo.appstore (热启动方式...
APP启动时间优化,上传了Demo,可以根据其中的moudle进行运行操作!
Android语言环境 轻松更改您的android设备的区域设置,以自动化您的端到端测试。 需要来控制应用程序。... adb shell am start -n com.orange.androidlocales/.ChangeLocaleActivity_ -e language fr -e country FR