5

我有两个已完成的项目,一个用于显示书籍列表,另一个是用于阅读书籍的查看器应用程序。但由于用户必须下载书单应用程序,下载后他必须下载查看器应用程序,我想让它在开始时下载并安装。当我尝试在书单应用程序中包含查看器应用程序时,两者都安装了,但是当我制作 apk 然后使用 apk 时,只安装了书单应用程序。谁能告诉我是什么问题?有没有办法将两个 apk 捆绑在一起?或者我应该怎么做?

4

2 回答 2

3

您可以将它们组合成一个项目。

创建一个具有基本包名称的包名称的项目。例如,如果您当前的应用程序是com.package.booklistcom.package.bookreader使用 package 创建一个项目com.package。现在将书籍列表中的所有代码复制到com.package.booklist子包中,并将书籍阅读器中的所有代码复制到com.package.bookreader.

现在您需要结合 AndroidManifests。您可以将所有等元素复制<activity>到新项目的清单中。现在,您需要为阅读器中的所有类添加前缀.bookreader,在书单中添加前缀.booklist。因此,您将拥有一个类似于以下内容的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.package"
    android:versionCode="1"
    android:versionName="1" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity android:name=".booklist.BookListActivity" >
            <intent-filter>
                <category android:name="android.intent.category.LAUNCHER" >
                </category>

                <action android:name="android.intent.action.MAIN" >
                </action>
            </intent-filter>
        </activity>

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

                <action android:name="android.intent.action.MAIN" >
                </action>
            </intent-filter>
        </activity>
    </application>

</manifest>

去除:

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

                <action android:name="android.intent.action.MAIN" >
                </action>
            </intent-filter>

来自您不希望在启动器中的 Activity 的意图过滤器。

于 2013-03-01T04:01:43.970 回答
1

一个 APK 中不能有两个 APK。

但是,您可以在清单中拥有两个处理意图 android.intent.category.LAUNCHER 的活动。然后它们都将出现在启动器中。

有关更多详细信息,请参阅此帖子

于 2013-03-01T04:00:34.190 回答