上传到手机后自动启动Android应用?

Bob*_*Jim 5 java android

在Android应用程序开发期间,我经常做以下事情:

  1. 运行"ant reinstall"以编译并将应用程序上传到模拟器.
  2. 切换到模拟器窗口.
  3. 单击我刚刚上传的包运行并测试它.

有什么办法可以告诉模拟器手机运行我刚刚上传的软件包吗?也许我运行编译脚本后可以发送一个"adb"命令?作为最后的手段,我想我可以为我运行模拟鼠标点击的东西.

Jer*_*gan 3

您想使用该am命令。假设你有一个看起来像这样的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.MyApp">
    <application android:icon="@drawable/icon">
        <activity class=".MyMainActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:value="android.intent.action.MAIN" />
                <category android:value="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    ...
</manifest>
Run Code Online (Sandbox Code Playgroud)

你可以这样开始:

adb shell am start -a android.intent.action.MAIN -n com.example.MyApp/.MyMainActivity
Run Code Online (Sandbox Code Playgroud)

尽管您可能想告诉它等待直到准备好:

adb wait-for-device shell am start -a android.intent.action.MAIN -n com.example.MyApp/.MyMainActivity
Run Code Online (Sandbox Code Playgroud)

基本上你只是触发一个Intent调用你的包的 main Activity

完整的文档(来自运行 am --help)是:

usage: am [start|broadcast|instrument|profile]
       am start [-D] INTENT
       am broadcast INTENT
       am instrument [-r] [-e <ARG_NAME> <ARG_VALUE>] [-p <PROF_FILE>]
                [-w] <COMPONENT> 
       am profile <PROCESS> [start <PROF_FILE>|stop]

       INTENT is described with:
                [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
                [-c <CATEGORY> [-c <CATEGORY>] ...]
                [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
                [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
                [-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
                [-n <COMPONENT>] [-f <FLAGS>] [<URI>]
Run Code Online (Sandbox Code Playgroud)