AndroidManifest 属性解析以及 代码动态获取属性值
AndroidManifest.xml文件部分属性配置解析,以及如何在代码中获取指定配置值。
<manifest package="com.jiese.test" android:versionCode="1" android:versionName="1.0" > <application android:debuggable="false" > </application> </manifest>
应用的包名,每一个应用的唯一标识;每个应用都必须给定该值,系统通过该值来区别和查找不同的应用。
获取该属性的代码:
/** * 获取应用的包名 (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。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。