在這裏找到一篇好文章:http://tekeye.biz/2013/android-debug-vs-release-build。
也測試過了。如果我們強迫android:debuggable="false"
或android:debuggable="true"
清單上的應用,它會發出警告:
Avoid hardcoding the debug mode; leaving it out allows debug and release builds to automatically assign one less...
It's best to leave out the android:debuggable attribute from the manifest. If you do, then the tools will automatically insert android:debuggable=true when building an APK to debug on an emulator or device. And when you perform a release build, such as Exporting APK, it will automatically set it to false.
If on the other hand you specify a specific value in the manifest file, then the tools will always use it. This can lead to accidentally publishing your app with debug information.
我可以得出結論,在默認情況下ApplicationInfo.FLAG_DEBUGGABLE
通過改變android:debuggable
,這是不是明智的行爲一樣BuildConfig.DEBUG
,除非覆蓋。
與BuildConfig.DEBUG
相比,ApplicationInfo.FLAG_DEBUGGABLE
是一種更可靠的檢查調試版本的方法,因爲在較低的依賴模塊下,它不能訪問父模塊的BuildConfig.DEBUG
,並且可能具有不同的值。
例如應用程序使用MyLib模塊。應用的BuildConfig.DEBUG
可能是錯誤的,但MyLib BuildConfig.DEBUG
可能是真實的。因此,最好使用ApplicationInfo.FLAG_DEBUGGABLE
Debuggable爲false時調試的用途是什麼? – Elye
我不能提醒這種情況,對不起。 – azizbekian