gpt4 book ai didi

android - buildConfigField、resValue 和 manifestPlaceholders 之间有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:11 24 4
gpt4 key购买 nike

我了解“如何”使用它们,但想知道“何时”使用它们。对于像为不同环境使用单独的 KEY 这样的情况,我们可以使用所有提到的三个。所以,我很想知道为什么要用三件事情来做同样的事情,以及它们是否适用于不同的用途。谢谢!

enter image description here

最佳答案

使用 buildConfigField将在您的应用生成的 BuildConfig 中生成一个实际的 Java 常量类(class)。所以对于你的例子,你会有这样的事情:

public static class BuildConfig {
public static final String BASE_URL = "xxxxxxxxxx";
}

使用 resValue将生成您在应用程序的 res 中指定类型的资源(资源)目录。因此,对于字符串,您可以使用 @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" />

为了记录,applicationId会自动添加为 list 占位符,因此无需自己定义,但这只是一个示例。

基本上,这取决于您在哪里需要它。如果 XML 资源(布局、菜单等)需要它,resValue是你想要的。如果需要直接从 Java 代码访问它,buildConfigField会成功的。对于 list 中的替换,manifestPlaceholders是你想要的。

关于android - buildConfigField、resValue 和 manifestPlaceholders 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42725299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com