English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서는 Android 개발에서 시스템에 설치된 프로그램 정보를 얻는 방법을 설명하는 예제입니다. 여러분과 공유하고 참고하기 위해 다음과 같이 작성되었습니다:
public class AppInfoParser { private static String tag = "AppInfoParser"; public static List<AppInfo> getAppInfos(Context context){ //먼저 패키지 관리자를 가져옵니다 PackageManager packageManager = context.getPackageManager(); //모든 설치된 패키지를 가져옵니다 List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0); ArrayList<AppInfo> appInfos = new ArrayList<>(); for (PackageInfo installedPackage : installedPackages) { AppInfo appInfo = new AppInfo(); //프로그램 패키지 이름 String packageName = installedPackage.packageName; appInfo.setPackageName(packageName); //아이콘을 가져옵니다 Drawable icon = installedPackage.applicationInfo.loadIcon(packageManager); appInfo.setIcon(icon); //앱의 이름을 가져옵니다 String appName = installedPackage.applicationInfo.loadLabel(packageManager).toString(); appInfo.setAppName(appName); //설치된 패키지의 경로를 가져옵니다 String sourceDir = installedPackage.applicationInfo.sourceDir; File file = new File(sourceDir); //설치된 apk의 크기를 가져옵니다 long apkSize = file.length(); //apk的大小을 포맷화합니다 appInfo.setApkSize(Formatter.formatFileSize(context,apkSize)); int flags = installedPackage.applicationInfo.flags; //현재가 시스템 앱인지 확인합니다 if((flags & ApplicationInfo.FLAG_SYSTEM) !=0){ //그렇다면 시스템 앱입니다 appInfo.setUserApp(false); } //그렇다면 사용자 앱입니다 appInfo.setUserApp(true); } if((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){ //그렇다면 현재 설치된 것이 SD 카드입니다 appInfo.setSD(true); } //그렇다면 휴대폰 메모리입니다 appInfo.setSD(false); } appInfos.add(appInfo); } return appInfos; } }
public class AppInfo { //애플리케이션 아이콘 private Drawable icon; //애플리케이션 이름 private String appName; //애플리케이션의 크기 private String apkSize; //사용자 프로그램을 나타냅니다 private boolean isUserApp; //저장 위치. private boolean isSD; private String packageName; public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; } public Drawable getIcon() { return icon; } public void setIcon(Drawable icon) { this.icon = icon; } public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } public String getApkSize() { return apkSize; } public void setApkSize(String apkSize) { this.apkSize = apkSize; } public boolean isUserApp() { return isUserApp; } public void setUserApp(boolean isUserApp) { this.isUserApp = isUserApp; } public boolean isSD() { return isSD; } public void setSD(boolean isSD) { this.isSD = isSD; } @Override public String toString() { return "AppInfo{" + "appName='" + appName + '\'' + ", apkSize='" + apkSize + '\'' + ", isUserApp=" + isUserApp + ", isSD=" + isSD + } } }
Android와 관련된 더 많은 내용에 관심이 있는 독자는 본 사이트의 특辑을 확인할 수 있습니다: 《Android 개발 입문 및 고급 교본》、《Android 디버깅 기술 및 일반 문제 해결 방법 요약》、《Android 기본 구성 요소 사용 요약》、《Android 뷰 View 기술 요약》、《Android 레이아웃 layout 기술 요약》 및 《Android 컨트롤러 사용 요약》
본 문서에서 설명한 내용이 모두 여러분의 Android 프로그램 설계에 도움이 되길 바랍니다.
선언: 본 문서의 내용은 인터넷에서 가져왔으며, 저작권자는 모두 소유자입니다. 이 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 본 사이트는 소유권을 가지지 않으며, 인공 편집을 거치지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용을 발견하시면, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com에 이메일을 보내시면, #을 @으로 변경하여 신고하시고 관련 증거를 제공하시면, 해당 저작권 침해 내용이 즉시 삭제됩니다.