在安卓的系統中,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);