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。