一个Android应用中的多个应用文件

时间:2012-08-27 07:34:47

标签: java android-manifest android

我制作了三个应用程序,我现在想要在一个apk文件中发布(一个安装)。在启动“包装器应用程序”时,用户应决定运行哪个应用程序。

到目前为止,非常好,但问题是,每个应用程序都使用应用程序文件中的全局常量。有没有办法将三个应用程序合二为一,每个应用程序都使用自己的应用程序文件?

谢谢!

为避免混淆,我添加了一个简短的例子:

应用1:

public class AApplication extends Application {
    public static String CONSTANT_1 = "aaa";
}

App 2:

public class BApplication extends Application {
public static String CONSTANT_1 = "bbb";
}

应用3:

public class CApplication extends Application {
    public static String CONSTANT_1 = "ccc";
}

3 个答案:

答案 0 :(得分:2)

好的,既然我的想法显然无法实现,我提出了以下解决方法:

  1. 我在新项目中创建了一个Apllication类

    public class NewApplication extends OldSuperApplication {}
    
  2. 我添加了一个方法

    public static void setApplication(RGCApplication a) {
        CONSTANT_1 = a.CONSTANT_1;
        ...
    } 
    
  3. 选择所需的"子应用程序"在这种情况下的应用程序" A"我打电话给

    NewApplication.setApplication(new AApplication());
    

    NewApplication.setApplication(new BApplication());
    
  4. 我不确定这是否是有臭味的编码,但它确实有效!

答案 1 :(得分:1)

您可能想要启动三项活动。在清单中添加如下内容:

<activity
        android:name=".Activityone"
        android:label="First Activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

<activity
        android:name=".Activitysecond"
        android:label="Second Activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

<activity
        android:name=".Activitythree"
        android:label="Third Activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

通过这种方式,用户可以点击三个图标(活动)。

答案 2 :(得分:0)

你无法集成3个不同的apk及其各自的代码库来运行单个apk,或者在单个应用程序中集成所有3个代码库,并根据用户的选择将所有3个分成不同的模块运行。