如果Android应用程序与debuggable一起发布会发生什么?

时间:2011-01-02 21:25:41

标签: android debugging

黄金法则是在将Android应用程序发布给公众之前将debuggable选项设置为off。

如果我离开(忘记关闭)此选项会怎样?我的意思是,它会如何向用户显示?

我测试过并没有看到任何区别。

5 个答案:

答案 0 :(得分:73)

  
    

它如何向用户显示?

  

普通用户不会注意到差异。

顺便说一下:

  
    

Support for a true debug build。开发人员不再需要将android:debuggable属性添加到清单中的标记 - 构建工具会自动添加属性。在Eclipse / ADT中,假设所有增量构建都是调试构建,因此工具插入android:debuggable =“true”。导出已签名的发布版本时,工具不会添加该属性。在Ant中,ant debug命令会自动插入android:debuggable =“true”属性,而ant release则不会。如果手动设置android:debuggable =“true”,那么ant release实际上会进行调试构建,而不是发布构建。

  

答案 1 :(得分:17)

在禁用USB调试的标准手机上,它将允许任何应用程序调试应用程序。这将有效地允许任何恶意应用程序获得对该应用程序的完全访问权。

有关此问题的详细说明,请参阅https://labs.mwrinfosecurity.com/blog/2011/07/07/debuggable-apps-in-android-market/

答案 2 :(得分:7)

它可能会降低他们的移动设备速度,特别是如果你的应用程序中有很多调试语句。恶意用户也可能会更多地了解您希望他们使用的应用程序的内部工作方式。

关于黄金法则,你是绝对正确的。为了安全起见,关闭它是个好主意。

答案 3 :(得分:6)

  

恶意用户也可能会更多地了解您希望他们使用的应用内部工作方式。

一个好的做法是将调试模式专门链接到您的唯一设备ID。

答案 4 :(得分:4)

@askmo:您可以使用SDK中的一些工具来检查APK是否具有调试值。请检查以下链接:

http://lulachronicles.blogspot.com/2011/04/how-to-check-if-apk-has-flag.html

BR,

伊格纳西奥