1. 程式人生 > >Android 判斷是開發debug模式,還是釋出release模式

Android 判斷是開發debug模式,還是釋出release模式

  1. publicclass LogUtils {  
  2.     publicstaticboolean APP_DBG = false// 是否是debug模式
  3.     publicstaticvoid init(Context context){  
  4.         APP_DBG = isApkDebugable(context);  
  5.     }  
  6.     /** 
  7.      * 但是當我們沒在AndroidManifest.xml中設定其debug屬性時: 
  8.      * 使用Eclipse執行這種方式打包時其debug屬性為true,使用Eclipse匯出這種方式打包時其debug屬性為法false. 
  9.      * 在使用ant打包時,其值就取決於ant的打包引數是release還是debug. 
  10.      * 因此在AndroidMainifest.xml中最好不設定android:debuggable屬性置,而是由打包方式來決定其值. 
  11.      *  
  12.      * @param context 
  13.      * @return 
  14.      * @author SHANHY 
  15.      * @date   2015-8-7 
  16.      */
  17.     publicstaticboolean isApkDebugable(Context context) {  
  18.         try {  
  19.             ApplicationInfo info= context.getApplicationInfo();  
  20.                 return (info.flags&ApplicationInfo.FLAG_DEBUGGABLE)!=0;  
  21.         } catch (Exception e) {  
  22.         }  
  23.         returnfalse;  
  24.     }  
  25. }  

專案開發中,我們根據debug屬性來輸出日誌。

但是有些時候我們想在給公司的測試機上安裝的release版本也輸出日誌,那麼這個時候我們到 AndroidManifest.xml 中的application 標籤中新增屬性強制設定debugable即可,如下:

  1. <applicationandroid:debuggable
    ="true"tools:ignore="HardcodedDebugMode"
  2. ....  
  3. .... />

init 方法在客戶端的第一個Activity的onCreate方法中執行一下即可。