APP 封装类
AppBean.java
package com.outsider.autojump;
import java.text.DecimalFormat;
import android.graphics.drawable.Drawable;
public class AppBean {
private Drawable appIcon;
private String appName;
private int appSize;
private boolean isSd = false;
private boolean isSystem = false;
private String appPackageName;
private String appSizeM;
public String getApkPath() {
return apkPath;
}
public void setApkPath(String apkPath) {
this.apkPath = apkPath;
}
private String apkPath;
public String getAppPackageName() {
return appPackageName;
}
public void setAppPackageName(String appPackageName) {
this.appPackageName = appPackageName;
}
public Drawable getAppIcon() {
return appIcon;
}
public void setAppIcon(Drawable appIcon) {
this.appIcon = appIcon;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public int getAppSize() {
return appSize;
}
public void setAppSize(int appSize) {
this.appSize = appSize;
DecimalFormat df = new DecimalFormat("#.##");
double temp = appSize / 1024.0;
if (temp > 512) {
this.appSizeM = df.format(temp / 1024.0)+"M";
} else {
this.appSizeM = df.format(temp)+"K";
}
}
public boolean isSd() {
return isSd;
}
public void setSd(boolean sd) {
isSd = sd;
}
public boolean isSystem() {
return isSystem;
}
public void setSystem(boolean system) {
isSystem = system;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return appName;
}
public String getAppSizeM() {
return appSizeM;
}
public void setAppSizeM(String appSizeM) {
this.appSizeM = appSizeM;
}
}
获取应用信息
public ArrayList<AppBean> getAllApk() {
ArrayList<AppBean> appBeanList = new ArrayList<AppBean>();
AppBean bean = null;
//此处的this指的是MainActivity.this,即上下文
PackageManager packageManager = this.getPackageManager();
List<PackageInfo> list = packageManager.getInstalledPackages(0);
for (PackageInfo p : list) {
bean = new AppBean();
bean.setAppIcon(p.applicationInfo.loadIcon(packageManager));
bean.setAppName(packageManager.getApplicationLabel(p.applicationInfo).toString());
bean.setAppPackageName(p.applicationInfo.packageName);
bean.setApkPath(p.applicationInfo.sourceDir);
File file = new File(p.applicationInfo.sourceDir);
bean.setAppSize((int) file.length());
int flags = p.applicationInfo.flags;
// 判断是否是属于系统的apk
if ((flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
bean.setSystem(true);
} else {
bean.setSd(true);
}
appBeanList.add(bean);
}
return appBeanList;
}