gpt4 book ai didi

android - 从 1 个 apk 文件启动两个 android 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:29 25 4
gpt4 key购买 nike

我需要创建一个启动新应用程序的 android 应用程序。新的应用程序需要在与原始应用程序不同的进程上运行,需要有不同的包名称,它需要是图形的(所以我认为这排除了服务,除非我弄错了,服务可以是图形的)并且它需要安装与第一个相同的apk文件。它不会进入 android 市场,所以我不关心市场问题。

我今天看到一个应用程序完全符合我的需要,它在其包名下的进程上运行,并在“{orig.app.packgename}:remote”下打开了一个新进程。

任何人都可以告诉我如何才能完成这样的事情?

最佳答案

如上所述,一个 APK 只能容纳一个应用。

你总是可以建议你的用户安装另一个应用程序,但我了解这不是您想要的。

所以,这里有一个小技巧可以实现您的大部分目标(接受不同的包名,没办法做到这一点)包裹在单个 APK:

首先:在您的独立 Activity 中添加一个 android:process 标签:

<activity android:name=".StandAloneActivity" 
android:process=":MyNewProcess">

这将通知 Android 此 Activity 应该在单独的进程上执行其名称为“MyNewProcess”。您可以添加标记为“:MyNewProcess”的附加组件( Activity 、服务..)。它们都将在同一个进程上执行。


然后:为您的独立 Activity 创建一个“action.MAIN” Intent 过滤器以及您应用的主要 Activity :

<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 Activity 一个(现在在单独的进程上运行)。

不用说,标准方法调用不会从一个过程到另一个。您将需要使用 Intents , AIDL interfaces或任何一个您的小心脏想要的其他 IPC 机制

关于android - 从 1 个 apk 文件启动两个 android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24536258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com