AndroidManifest.xml檔案部分屬性配置解析,以及如何在代碼中擷取指定配置值。
1)manifest-->package
應用的包名,每一個應用的唯一標識;每個應用都必須給定該值,系統通過該值來區別和尋找不同的應用。
擷取該屬性的代碼:
/** * 擷取應用的包名 (apk的包名,不是類所在的報名) * @param conext 程式中的Activity, Application的執行個體都可以 */public static String getAppPackageName(Context context){if(context != null){return context.getPackageName();}return "";}
2)manifest-->versionCode
當前app的版本號碼,用於app的升級,versionCode小的apk可以升級為versionCode大的apk,但是versionCode小的apk無法覆蓋versionCode大的安裝,必須先卸載。
擷取該屬性的代碼:
/** * 擷取程式版本號碼 * @param conext 程式中的Activity, Application的執行個體都可以 * @return -1擷取失敗 */public static int getAppVersionCode(Context context) { try{ PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); return pi.versionCode; } catch (Exception e) { e.printStackTrace(); GoogleAnalyticsTool.getInstance().sendException(1, e); } return -1; }
3)manifest-->versionName
當前app的版本名
擷取該屬性的代碼:
/** * 擷取程式版本名稱 * @param conext 程式中的Activity, Application的執行個體都可以 */public static String getAppVersionName(Context context){ String versionName = ""; try{ PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0); versionName = pi.versionName; } catch (Exception e) { e.printStackTrace(); GoogleAnalyticsTool.getInstance().sendException(1, e); } return versionName; }
4)manifest-->application-->debuggable
是否開啟debug模式;該屬性可以不設定。
true:為debug 模式,可以通過工具調試該應用,可以打斷點。
false:為非debug模式,不可以通過調試工具調試應用,打的斷點無效。
擷取該屬性的代碼:
/** * 擷取是否為debug mode * @param conext 程式中的Activity, Application的執行個體都可以 */public static boolean isDebugMode(Context context){if(context == null){Log.e("Utils::isDebugMode", "context is null");return false;}ApplicationInfo info = context.getApplicationInfo();return (0!=((info.flags) & ApplicationInfo.FLAG_DEBUGGABLE));}
轉載請註明出處,jiese1990。