我需要创建一个可启动新应用程序的android应用程序。新应用程序需要在与orig应用程序不同的进程上运行,需要具有不同的程序包名称,它必须是图形的(因此,我认为排除了服务,除非我弄错了,并且服务可以是图形的)。需要与第一个安装相同的apk文件。它不会进入android市场,所以我不在乎市场问题。
今天我看到了一个完全可以满足我需要的应用程序,它在程序包名称下的某个进程上运行,并在“ {orig.app.packgename}:remote”下打开了一个新进程。
谁能告诉我该怎么做?
如上所述,单个APK只能容纳一个应用。
您总是可以建议您的用户安装另一个应用程序,但是我知道这不是您想要的。
因此,这是一个小技巧,可以将您的目标(接受不同的软件包名称,没有办法做到)包装在单个APK中:
首先:将android:process标签添加到您的独立活动中:
<activity android:name=".StandAloneActivity"
android:process=":MyNewProcess">
这将通知Android该活动应在名为“ MyNewProcess”的单独进程上执行。您可以添加标记为“:MyNewProcess”的其他组件(活动,服务..)。它们都将在同一进程上执行。
然后:为独立活动和应用程序的主要活动创建一个“ action.MAIN”意图过滤器:
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".StandAloneActivity"
android:process=":MyNewProcess" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
这将通知Android,您需要为您的应用创建两个不同的主屏幕图标,每个MAIN活动(现在在单独的进程上运行)都需要创建一个。
不用说,标准方法调用不会从一个进程传递到另一个进程。您将需要使用Intents,AIDL接口或您的小心脏想要的任何其他IPC机制
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句