Non*_*ate 5 android proguard buildconfig
我遇到了以下几行proguard示例:
# Keep the BuildConfig
-keep class com.example.BuildConfig { *; }
Run Code Online (Sandbox Code Playgroud)
我已经运行了带有和不带有这一行的应用程序(当然,带有我的包),并且没有发现任何差异。我还查看了generate /.../ BuildConfig.java,也没有任何变化。
我需要什么来将BuildConfig保留在ProGuard中?
谢谢!
BuildConfig 包含许多在编译时设置的有用值。具体这些:
boolean DEBUG – if the build is debuggable.
int VERSION_CODE
String VERSION_NAME
String APPLICATION_ID
String BUILD_TYPE – name of the build type, e.g. "release"
String FLAVOR – name of the flavor, e.g. "paidapp"
Run Code Online (Sandbox Code Playgroud)
您还可以设置您自己的配置值,例如用于测试和生产的不同 url,并从 BuildConfig 文件中检索它们而不是维护您自己的 Config.java 文件。这可以通过将 buildConfigFields 添加到您的 gradle buildTypes 来完成,如下所示:
buildTypes {
debug {
buildConfigField "boolean", "SOME_VAR", "true"
}
release {
buildConfigField "boolean", "SOME_VAR", "false"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,要回答您的问题,据我所知,您不必保留该文件,但这样做并使用它来满足您的配置需求是一种很好的做法。
与任何其他类一样,-keep如果您通过反射间接访问该类,则需要该类,这样 ProGuard 就不会混淆它或将其优化为未使用的。
大多数情况下,访问模式BuildConfig都是直接的,没有反射,因此在这些情况下,让 ProGuard 处理您的BuildConfig也很好。
| 归档时间: |
|
| 查看次数: |
2052 次 |
| 最近记录: |