我需要构建两个版本的Android应用程序-一个用于测试人员(开发模式开启)和一个为用户(开发模式关闭)。怎么做?现在我有了清单中的元数据值,并在代码中使用它,但是在生成之前必须手动更改这个值。有可能通过gradle改变这一点吗?
清单
<meta-data android:name="developer.mode" android:value="true" />代码
public class App extends Application {
public static boolean DEVELOPER_MODE = false;
...
private void loadMetaData() {
try {
ApplicationInfo ai = ctx.getPackageManager().getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
DEVELOPER_MODE = ai.metaData.getBoolean("developer.mode");
} catch (PackageManager.NameNotFoundException e) {
}
}
}
...
if(App.DEVELOPER_MODE) { ... }发布于 2015-04-10 07:26:00
这是一个常见的情况有这样的转变。您可以使用元标记和清单合并来实现这一点,但我认为大多数开发人员都是为此目的使用BuildConfig的。您可以用自己的值扩展它:
buildTypes {
debug {
buildConfigField "boolean", "DEV_MODE", "true"
}
release {
buildConfigField "boolean", "DEV_MODE", "false"
}
}或者检查已经由android插件提供的默认插件。
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.stackoverflow.question.debug";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "flavor1";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "v1.0.1";
// Fields from build type: debug
public static final boolean DEV_MODE = true;
}然后,您可以从应用程序java代码中引用此值。
if (BuildConfig.DEV_MODE) {
// do developer things
}BuildConfig是自动生成的文件,它将在每个构建变体组装任务上重新创建。
https://stackoverflow.com/questions/29555455
复制相似问题