java如何使Android应用程序自动配置w/debug vs.release值?
我正在开发一款Android应用程序,特别是一款使用Facebook Android SDK的应用程序。在开发模式下,我正在使用一个ID的测试Facebook应用程序。然而,在发布模式下,该应用程序将使用另一个ID的Facebook应用程序
我想知道这里的大多数Android(或者Java可能是一个足够合适的知识领域)开发人员是如何让他们的应用程序自动生成调试值还是发布值的。理想的解决方案不需要在构建之前手动切换(例如:将public static final DEBUG = false;
切换到true
)
# 1 楼答案
在EclipseADT17.0及更高版本中,有一个新特性可以实现这一点。检查BuildConfig。使用代码自动生成的调试
有关更多信息,请参见http://developer.android.com/sdk/eclipse-adt.html
# 2 楼答案
你问我已经有一段时间了,但我想我应该分享一下我是怎么做的
正如塞巴斯蒂安暗示的那样,Ant脚本可以为您处理这种变化,并生成您正在寻找的静态最终常量。您可以配置IntelliJ或Eclipse,使其几乎无缝
我试图详细说明我采取的不同步骤,如果有帮助,请告诉我。我知道在发布之前我从来不用做任何手动更改,这是一种很好的解脱
# 3 楼答案
我不能推荐IMEI方法。。。它的主要问题是,并不是所有的安卓设备都会有iMIS。更好的方法是检查用于签名的签名。阿普克
# 4 楼答案
通常,您将仅使用1或2台设备进行调试。所以你可以根据设备设置调试开关?所以你可以简单地使用IMEI
向项目中添加一个新的
Application
类,并让它初始化该字段(可能需要将其放入Const类中)在应用程序onCreate方法中,调用
Const.setupDebug(getApplicationContext());
像这样实现setupDebug
public class Const {
}
从常量字段切换到常量方法
康斯特。isDebug()
# 5 楼答案
使用Eclipse,我在工作区中创建了3个项目:
这是一个图书馆项目 包含所有源代码 在值/参考中。我添加的xml
使用ApplicationProject 覆盖AndroidManifest和其他xml文件 特定于开发的配置 在值/参考中。我添加的xml
使用ApplicationProject 覆盖AndroidManifest和其他xml文件 特定于生产的配置 在值/参考中。我添加的xml
我从这个项目中签了APK,把它放在商店里
# 6 楼答案
我使用了一种稍微平淡一点的方法(以防你仍然对解决方案感兴趣)
在应用程序启动时,我的应用程序检查是否存在存储在/sdcard/中的文本文件。我使用的每个应用程序都会寻找一个特定的文件,比如“applicationdebug.txt”。如果文件存在,那么应用程序将进入调试模式,并开始使用日志语句和我的调试Facebook密钥等详细信息
然后,我只需将文件删除(或重命名)到设备上,以查看应用程序在发布模式下的性能