Значение по умолчанию для Android "debuggable"

Я пытаюсь получить значение атрибута отладки приложения из кода:

packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);           
int flags = packageInfo.applicationInfo.flags;
isDebugMode = (flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;

И я заметил, что когда отлаживаемый атрибут не указан в манифесте, этот код определяет его как истинный. И документация говорит, что она по умолчанию неверна.

Что не так?

Ответ 1

Из SDK Tools: (SDK Tools, версия 8 (декабрь 2010))

Поддержка подлинной сборки отладки. Разработчикам больше не нужно добавлять android:debuggable атрибут <application> в манифесте - средства сборки автоматически добавляют атрибут. В Eclipse/ADT, все предполагается, что инкрементные построения debug builds, поэтому инструменты вставляются android:debuggable="true". когда экспортируя подписанную версию релиза, инструменты не добавляют атрибут. В Ant команда a ant debug автоматически вставляет android: debuggable = "true" , а ant release - нет. Если андроид: debuggable = "true" вручную set, то ant release будет действительно делать сборку отладки, а не выпуск построить.