Android 调试和生产资源
一些Android库,例如,将资源用于配置目的(例如,Android 调试和生产资源,android,debugging,android-resources,Android,Debugging,Android Resources,一些Android库,例如,将资源用于配置目的(例如,ga_trackingId) 在这些情况下,对于调试和生产,我有不同的值。我现在做的是在调试时手动注释产品值,反之亦然。看起来是这样的: <?xml version="1.0" encoding="utf-8"?> <resources> <!-- DEBUG --> <string name="ga_trackingId">UA-12345678-1</string&g
ga_trackingId
)
在这些情况下,对于调试和生产,我有不同的值。我现在做的是在调试时手动注释产品值,反之亦然。看起来是这样的:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- DEBUG -->
<string name="ga_trackingId">UA-12345678-1</string>
<integer name="ga_dispatchPeriod">1</integer>
<bool name="ga_debug">true</bool>
<!-- PRODUCTION -->
<!--string name="ga_trackingId">UA-87654321-1</string>
<integer name="ga_dispatchPeriod">120</integer>
<bool name="ga_debug">false</bool-->
</resources>
UA-12345678-1
1.
真的
这种切换配置的方式既单调又容易出错,如果我不小心,就会产生不必要的存储库更改。有更好的办法吗
(例如:在iOS上,我对
IF DEBUG
宏使用条件编译)我对谷歌地图键也有类似的问题,它们依赖于签名。我所做的是使用ant脚本,它有条件地生成/复制资源到项目中。您可以在Eclipse中的Project>Properties>Builders下包含ant脚本
如果需要在代码中使用DEBUG值,可以创建一个包含静态值的java文件,该静态值也将有条件地包括在内
请说明ant环境变量是否正常工作(执行脚本后,您可以在控制台中看到“Build type:”消息)
在
src
文件夹下,您可能有一个main
文件夹,用于存储所有共享内容。但是你可以为口味或构建类型提供特定的资源
将名为debug
的文件夹放在src
文件夹下,您将在其中放置xml文件的副本,但内容正确。您必须在debug
下维护文件夹结构,因此需要将global_tracker.xml
放在。/src/debug/res/xml
您的文件夹结构应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- DEBUG -->
<string name="ga_trackingId">UA-12345678-1</string>
<integer name="ga_dispatchPeriod">1</integer>
<bool name="ga_debug">true</bool>
<!-- PRODUCTION -->
<!--string name="ga_trackingId">UA-87654321-1</string>
<integer name="ga_dispatchPeriod">120</integer>
<bool name="ga_debug">false</bool-->
</resources>
Android Studio会发现这个xml文件有多个版本
这是您应该在中看到的:
您可以将其用于所有类型的资源,例如,具有同一文件的多个版本,并且它将被“神奇地”正确选择。类似
res/values debug
的内容将非常棒。这是正确的答案。