为每种产品风格

时间:2016-01-22 14:58:23

标签: android android-gradle android-productflavors

我需要为针对具有AOSP修改的特定设备的Android SDK和自定义Android SDK构建我的应用。

我的想法是在我的build.gradle中使用产品风格来有条件地指向正确的SDK目录。基本上,我正在寻找具有以下效果的东西:

productFlavors {
    stock {
        sdk.dir "/path/to/stocksdk"
    }
    mydevice {
        sdk.dir "/path/to/customsdk"
    }
}

查看ProductFlavor DSL文档,没有设置SDK目录的属性。

我可以通过哪些其他方式获得类似的结果?

1 个答案:

答案 0 :(得分:3)

有趣的问题,但遗憾的是,你不能productFlavorsbuildTypes提供不同的SDK。您只能在项目级别拥有它。

  

产品口味可以自定义以下属性:

minSdkVersion
targetSdkVersion
versionCode
versionName
package name (overrides value from manifest)
release signing info (keystore, key alias, passwords,...).
BuildConfig: Ability to provide custom Java code.
NDK ABI filter (Not implemented yet)
test info
package name for test app (optional, default is <base>.test)
InstrumentationTestRunner class (optional)
Additionally, Product Flavor can provide their own source code, resources and manifest.

  

构建类型提供以下构建的配置   属性:

manifest debuggable flag
native compilation debug flag
proguard enabled + specific rules (Not implemented yet)
debug signing flag (ie whether to use debug key or release key)
package name suffix (2)
version name suffix (new in milestone 0.3)
Buildconfig
DEBUG flag. Set automatically based on the manifest debuggable flag.
Ability to provide custom Java code.

Source (Build System Concepts on http://tools.android.com/tech-docs/)

  

我可以通过哪些其他方式获得类似的结果?

您可以将此项目设为库项目,然后使用库中的功能创建具有不同SDK的包装器项目。所以现在你有一个单独的包装器项目而不是productFlavors,你可以在sdk.dir文件中为每个包装器项目更改local.properties