如何使用Gradle工具在Android中使用不同的数据库构建不同的APK文件?

时间:2015-12-06 10:45:20

标签: android gradle

我们有一个用SQLITE数据库说SHAKESPEARE.DB阅读诗歌的平台。 我们还有另一首诗歌说Wordsworth.DB。 因此,对于每个诗歌数据库,我们都想创建一个单独的应用程序,如Shakespeare.apk和wordsworth.apk。

在构建期间,我们想提及数据库,并提及APK的名称。

我们如何通过gradle在android构建期间更改数据库并部署不同的APK 我想使用Gradle创建和部署特定于数据库的APK?

1 个答案:

答案 0 :(得分:2)

步骤1:使用在应用程序中嵌入数据库的一致方法。对于这个答案,我假设您是using SQLiteAssetHelper,数据库在words.db中打包为assets/

步骤2:在app/模块的build.gradle文件中为您的应用创建两种产品口味。对于这个答案,我将称之为vanillachocolate

productFlavors {
    vanilla {
        applicationId "com.commonsware.android.gradle.hello.vanilla"
    }

    chocolate {
        applicationId "com.commonsware.android.gradle.hello.chocolate"
    }
}

(将applicationId值替换为与您的项目更相关的值)

步骤3:为每种风格创建一个源集(app/src/vanillaapp/src/chocolate/)。

步骤4:在words.db的{​​{1}},assets/中添加app/src/vanilla/assets/words.db个不同的app/src/chocolate/assets/words.db

现在,当您构建vanilla时,它将使用vanilla版本words.db。在构建chocolate时,它将使用chocolatewords.db。不需要更改Java代码。您还可以在这些特定于特定的源集中放置不同的资源,用于不同的图标,标签等。因为您具有不同的applicationId值,所以两种风格可以同时安装在您的测试设备上,并且两种风格都可以通过Play商店等应用分销渠道进行分发。