Jav*_*ean 9 android build.gradle android-gradle-plugin
我理解它们是如何使用的,但是想知道它们何时被使用.对于在不同环境中使用单独的KEY的情况,我们可以使用上面提到的所有三个.所以,我很想知道为什么有三件事要做同样的事情,如果它们是针对不同的用法.谢谢!
kco*_*ock 20
使用buildConfigField将在应用程序生成的BuildConfig类中生成实际的Java常量.所以对于你的例子,你会有这样的东西:
public static class BuildConfig {
public static final String BASE_URL = "xxxxxxxxxx";
}
Run Code Online (Sandbox Code Playgroud)
使用resValue将生成您在应用程序res(资源)目录中指定的类型的资源.因此,对于字符串,您可以通过XML @string/base_url或使用XML来引用它getResources().getString(R.string.base_url).
使用manifestPlaceholders允许您添加替换AndroidManifest.xml.因此,例如,GCM要求您具有<uses-permission>名称设置为的标记X.permission.C2D_MESSAGE,其中X是您的应用程序ID.因此,如果您有多个具有不同应用程序ID的构建版本,则可以使用manifestPlaceholders标记,然后在AndroidManifest.xml将其替换为正确值的位置使用它,例如:
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
Run Code Online (Sandbox Code Playgroud)
对于记录,applicationId会自动添加为清单占位符,因此不需要自己定义,但这只是一个示例.
基本上,它取决于您需要它的位置.如果需要XML资源(布局,菜单等),resValue那就是你想要的.如果需要直接从Java代码访问它,那就可以buildConfigField了.对于清单中的替换,manifestPlaceholders是你想要的.
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |