目前,我在清單中使用debuggable屬性,它最初並未在文件中設置,因爲Eclipse在此上皺眉。然後,在我的ant腳本中,我創建了一個custom_rules.xml,其中我根據目標手動設置清單中的屬性,如果釋放並且如果調試版本爲true,則爲false。
<target name="-set-debug-files" depends="-set-mode-check">
.....
<!-- alter the app manifest to reflect the testing state -->
<property name="match.start" value="android:debuggable="/>
<property name="match.end" value=">"/>
<replaceregexp file="AndroidManifest.xml"
match="${match.start}.*${match.end}"
replace="${match.start}"true"${match.end}">
</replaceregexp>
<echo level="info">${ant.project.name}
setting manifest debug state to true</echo>
</target>
<target name="-set-release-mode" depends="-set-mode-check">
......
<property name="match.start" value="android:debuggable="/>
<property name="match.end" value=">"/>
<replaceregexp file="AndroidManifest.xml"
match="${match.start}.*${match.end}"
replace="${match.start}"false"${match.end}">
</replaceregexp>
<echo level="info">${ant.project.name}
setting manifest debug state to false</echo>
</target>
然後在代碼中我放置在我的自定義應用程序類中,我創建了一個靜態我可以參考我的活動。
DEBUG = (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
然後,當我需要隱藏/顯示的東西,我用:
if (MyApplication.DEBUGGABLE) {
...show stuff
} else {
...hide stuff
}
來源
2013-07-18 19:45:36
JPM