web-dev-qa-db-ja.com

2つのアプリをインストールする1つの.apkファイル

これは、Android 2つの異なる.apkを持つアプリケーション(または1つの.apkファイルに含まれる2つのアプリ)に関する質問です。

まったく異なることをするが関連している2つのアプリがあります。たとえば、1つは標準ユーザーアプリで、もう1つは管理アプリです。ただし、ユーザーはユーザーと管理者の両方になることができます。電話に2つのアプリケーションをインストールする1つの.apkファイルを作成することは可能ですか?そして、私はこれについてどうやって得たのでしょうか?

ありがとう、マット

14
MattTheHack

それはあなたの「アプリケーション」の定義に依存します。 <application>には1つのmanifest.xmlしか含めることができないため、より公式な定義を使用する場合、2つのアプリケーションをインストールすることはできません。

manifest.xmlでいくつかのアクティビティを定義でき、それらは別々のことを行うことができるので、そのようにして、1つのAPKで人が「アプリケーション」と表現する2つのことを行うことができます。

複数のアクティビティを定義し、それらをオプションとして定義して使用するだけですが、「アプリケーション」の定義によって異なりますが、この場合は機能すると思います

6
Nanne

同じマニフェストファイルに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 "設定|アプリ"の下のアプリのリストに、アプリケーションタグの属性によって定義された名前とアイコンが表示されます。アプリのリストでこのエントリに「アンインストール」を選択すると、両方の「アプリ」がデバイスから削除されます。

12
user1364368

2つのAPKをビルドする必要があります APK拡張ファイル

ところで、これはセキュリティ対策です。

1
shkschneider

はい、1つのアプリをインストールするだけで複数のアプリをインストールできます。
Manifest.xml内 enter image description here

プロジェクト構造:

enter image description here

1
Roshan Mehta

番号。

2番目のアプリが既にインストールされているかどうかを確認し、答えが「いいえ」の場合は、 this postを使用して2番目のアプリのインストール要求を求めることができます。

0
thepoosh