1
我有一個使用的付費和免費版本相同的代碼庫的應用程序..如何在只包含我的應用的高級版本中包含庫項目而不包含免費版本?
的刪節build.gradle
列出了
android {
....
defaultConfig {
applicationId "com.myco.myapp"
....
}
buildTypes {
....
release {
....
}
}
productFlavors {
free {
applicationIdSuffix ".free"
buildConfigField "boolean", "PREMIUM", "false"
buildConfigField "boolean", "FREE", "true"
}
premium {
applicationIdSuffix ".premium"
buildConfigField "boolean", "PREMIUM", "true"
buildConfigField "boolean", "FREE", "false"
}
}
dependencies {
....
compile project(path: ':LVL')
}
我打電話的LVL許可的結構的想法onCreate
如下: -
if (BuildConfig.PREMIUM) {
String deviceId = Settings.Secure.ANDROID_ID;
Log.i(TAG, "Device Id: " + deviceId);
mHandler = new Handler();
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
// Construct the LicenseChecker with a Policy.
mChecker = new LicenseChecker(
getApplicationContext(), new ServerManagedPolicy(this,
new AESObfuscator(SALT, getPackageName(), deviceId)),
BASE64_PUBLIC_KEY // Your public licensing key.
);
doCheck();
}
的LVL庫不叫或在myapp
的「免費」版本所需。我的問題是: - ?我應該怎麼構建我的項目/ build.gradle
,使LVL庫不包含在免費版本的APK(但包含在高級版
謝謝。這確實回答了我的具體問題。但是,我已經決定實施虛擬「LVL」類或將MainActivity重新安排爲「免費」和「高級」以免從「免費」版本中刪除對LVL的調用,這是不值得的,所以我會在LV中加入LVL因爲開銷相對較小。 – SimonH