在安卓的系统中,App分为两种类型,系统级App与非系统级App
系统级App:指的是在android系统中,被硬件厂商内置的一些应用,一般用户如果不借助其他工具,是无法做到卸载这类App的。
非系统级App:指的是用户在应用商店中下载或者其他途径安装的App
通过以下方法可以判断是否是系统级App
public boolean isSystemApp(Context context,String packageName) {
PackageManager pm = context.getPackageManager();
ApplicationInfo applicationInfo=null;
boolean isSystemApp=false;
try {
if (packageName == null || "".equals(packageName))
return false;
applicationInfo =pm.getApplicationInfo(packageName, 0);
if(applicationInfo!=null&&(applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0){
isSystemApp=true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return isSystemApp;
}
在对系统进行升级的过程中,可以直接用adb install -r xxx 安装来升级,因为该执行语句可以实现覆盖安装,具体java执行代码如下:
command = "su -c pm install -r " + TempFilePath + "\n";
process = Runtime.getRuntime().exec(command, envp);