【问题标题】:Android Instrumentation Test concerns: debug vs. release modeAndroid Instrumentation 测试关注点:调试与发布模式
【发布时间】:2013-03-08 23:46:04
【问题描述】:

为了自动化测试,我们正在考虑使用 Android 仪器测试。但是,我们担心如果将单元测试置于调试模式,性能可能会有很大差异。经过一番搜索,似乎没有明确的答案。因此,我们需要对以下几点进行澄清。

  1. 无论是处于调试模式还是发布模式,Eclipse/ADT 是否使用相同的编译器优化选项编译项目?

  2. Eclipse/ADT 生成的 apk 始终处于调试模式(无论是“运行方式”还是“调试方式”)。构建发布版本的建议方法是通过导出向导。唯一的区别是生成的 AndroidManifest.xml 中的属性“android:debuggable='true'”。如果未启用 proguard,则生成的大小似乎相同。假设没有编译器优化,这个属性是否会导致或显着改变运行时的 JIT 优化?

  3. 我们使用调试密钥对 apk 进行签名,它似乎可以工作。生成的 apk 是否真的是发布版本(我们认为是因为“android:debuggable="true" 已删除)?

谢谢。

【问题讨论】:

    标签: android performance debugging release jit


    【解决方案1】:

    1) 是与否,即使优化相同,应用程序运行速度也会变慢,因为它会有很多子进程监控它。

    2) AFAIK 这并不重要,但会影响您应用的性能。

    3) 可以,但不推荐,您应该尝试在此处阅读 SDK http://developer.android.com/tools/publishing/app-signing.html

    【讨论】:

    • 对于 1),你的意思是选项是相同的,所以运行时执行应该是相同的,但是调试版本会运行得更慢,因为它被其他一些子进程监控?对于2),它会影响性能的原因是因为1)中提到的监控子流程?只要不启用调试跟踪,差异应该不会很大,对吗?对于 3),我们处于性能评估阶段,尚未公开发布。因此,一种快速制作发布版本进行测试的方法就足够了。
    • 1) 是的,因为它不断受到监控,应用程序运行速度会变慢。 2) 是的,但即使删除属性 android:debuggable,只要您不使用 eclipse 中的导出安装它,您的应用程序仍将受到监控。至于3)创建自己的密钥需要2分钟,这样你就可以确定没有任何与调试相关的东西
    • 您的回答很有帮助!尽管如此,我想更深入地研究监控过程。我以为是DDMS。还有什么或者你能给我一些参考吗?谢谢。
    • 对不起,我不知道你还能在哪里寻找监控!
    • 如果您认为我做得很好,请点击我的回答为正确。否则,告诉我我还能搜索什么。
    猜你喜欢
    • 2012-07-24
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 2011-04-02
    • 1970-01-01
    相关资源
    最近更新 更多