一个安装两个应用程序的.apk文件

Mat*_*ack 14 android android-widget apk android-layout

这是一个关于Android应用程序的问题,有两个不同的.apks(或一个.apk文件中包含两个应用程序)

我有两个应用程序完成不同的事情,但它们是相关的,比如一个是标准用户应用程序,一个是管理员应用程序.但用户既可以是用户,也可以是管理员.我想知道是否可以创建一个.apk文件,将两个应用程序安装到手机上?我怎么会这样呢?

谢谢,马特

use*_*368 12

您可以在同一个清单文件中包含两个活动元素,这两个活动元素同时具有action = MAINcategory = LAUNCHER的intent过滤器.此外,您还必须为两个活动元素使用属性" 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>
Run Code Online (Sandbox Code Playgroud)

当具有此清单的APK文件安装在设备上时,它将在主屏幕上创建两个图标.这些图标的标题将取自android:label属性,图标将取自android:icon属性.在"设置|应用"下的应用列表中,您将看到由应用标记的属性定义的名称和图标.当您在应用列表中为此条目选择"卸载"时,将从设备中删除这两个"应用".


Nan*_*nne 6

这取决于您对"应用程序"的定义.如果使用更多的官方定义,则无法安装2个应用程序,因为你只能有1个<application>在你的manifest.xml

你可以在你manifest.xml的身上定义几个活动,他们可以做单独的事情,这样你就可以把一个人称为"应用程序"的两件事放在一起APK

只需定义多个活动并使用那些可以定义为一个选项,但这取决于你对'应用程序'的定义,但在这种情况下,我会说它会起作用