3

3 つのアプリを作成しましたが、1 つの apk ファイル (1 つのインストール) で出荷したいと考えています。「ラッパー アプリ」の起動時に、ユーザーは実行するアプリを決定する必要があります。

ここまでは順調ですが、問題は、各アプリがアプリケーション ファイルのグローバル定数を使用していることです。各アプリが独自のアプリケーション ファイルを使用する 1 つに 3 つのアプリを構築する方法はありますか?

ありがとう!

混乱を避けるために、短い例を追加します。

アプリ 1:

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

アプリ 2:

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

アプリ 3:

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

3 に答える 3

2

わかりました、私が考えているアイデアは明らかに実現可能ではないので、次の回避策を思いつきました:

  1. 新しいプロジェクトでアプリケーション クラスを作成しました

    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());
    

これが臭いコーディングかどうかはわかりませんが、動作します!

于 2012-08-27T15:54:16.787 に答える
1

おそらく、起動できる3つのアクティビティが必要です。マニフェストに次のようなものを追加します。

<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>

このようにして、ユーザーはクリックする3つのアイコン(アクティビティ)を使用できます。

于 2012-08-27T08:02:17.750 に答える
0

3 つの異なる apk とそれぞれのコード ベースを統合して単一の apk で実行することはできません。3 つのコード ベースすべてを 1 つのアプリケーションに統合し、3 つすべてを異なるモジュールとして分割して、ユーザーの選択に応じて実行することはできません。

于 2012-08-27T08:14:41.077 に答える