これは、Android 2つの異なる.apkを持つアプリケーション(または1つの.apkファイルに含まれる2つのアプリ)に関する質問です。
まったく異なることをするが関連している2つのアプリがあります。たとえば、1つは標準ユーザーアプリで、もう1つは管理アプリです。ただし、ユーザーはユーザーと管理者の両方になることができます。電話に2つのアプリケーションをインストールする1つの.apkファイルを作成することは可能ですか?そして、私はこれについてどうやって得たのでしょうか?
ありがとう、マット
それはあなたの「アプリケーション」の定義に依存します。 <application>
には1つのmanifest.xml
しか含めることができないため、より公式な定義を使用する場合、2つのアプリケーションをインストールすることはできません。
manifest.xml
でいくつかのアクティビティを定義でき、それらは別々のことを行うことができるので、そのようにして、1つのAPK
で人が「アプリケーション」と表現する2つのことを行うことができます。
複数のアクティビティを定義し、それらをオプションとして定義して使用するだけですが、「アプリケーション」の定義によって異なりますが、この場合は機能すると思います
同じマニフェストファイルに2つのアクティビティ要素を含めることができます。これらの要素には、action = MAINとの両方のインテントフィルターがあります。 category = LAUNCHER。さらに、両方のアクティビティ要素に属性 "Android:taskAffinity"を使用する必要もあります( ここ も参照)。
<application Android:allowBackup="true"
Android:icon="@drawable/main_icon"
Android:label="@string/main_name"
Android:theme="@style/AppTheme" >
<activity Android:name="com.foobar.MyActivity2"
Android:taskAffinity="com.foobar.MyActivity2"
Android:icon="@drawable/icon1"
Android:label="@string/name1" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name="com.foobar.MyActivity2"
Android:taskAffinity="com.foobar.MyActivity2"
Android:icon="@drawable/icon1"
Android:label="@string/name2" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
このマニフェストを含むAPKファイルをデバイスにインストールすると、ホーム画面に2つのアイコンが作成されます。これらのアイコンのタイトルは属性Android:labelから取得され、アイコンは属性から取得されます)Android:icon。 "設定|アプリ"の下のアプリのリストに、アプリケーションタグの属性によって定義された名前とアイコンが表示されます。アプリのリストでこのエントリに「アンインストール」を選択すると、両方の「アプリ」がデバイスから削除されます。
2つのAPKをビルドする必要があります APK拡張ファイル 。
ところで、これはセキュリティ対策です。
番号。
2番目のアプリが既にインストールされているかどうかを確認し、答えが「いいえ」の場合は、 this postを使用して2番目のアプリのインストール要求を求めることができます。