Android ApplicationInfo 應用程序信息的詳解
Android ApplicationInfo 應用程序信息
1、簡述
1 ApplicationInfo是android.content.pm包下的一個實體類,用于封裝應用的信息,flags是其中的一個成員變量public int flags = 0;用于保存應用的標志信息。 2 ApplicationInfo 通過它可以得到一個應用基本信息。 這些信息是從AndroidManifest.xml的< application >標簽獲取的 3 ApplicationInfo對象里保存的信息都是<application>標簽里的屬性值 4 ApplicationInfo與ResolveInfo比較:前者能夠得到Icon、Label、meta-data、description。后者只能得到Icon、Label
2、獲取ApplicationInfo
2.1 、獲取手機上安裝所有程序?qū)?ApplicationInfo
/** * 獲取手機上安裝的所有的程序?qū)?ApplicationInfo * 它是通過解析AndroidManifest.xml的< application>標簽中得到的,所以它能得到所有的app * * 獲取手機上的所有的安裝的應用程序信息 * 參數(shù)為 標識 一般為 PackageManager.GET_UNINSTALLED_PACKAGES */ List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
2.2 、獲取指定包名對應的 ApplicationInfo
/**
* 獲取指定應用程序 ApplicationInfo
* 參數(shù)一對應應用程序的包名
* 參數(shù)二 應用程序?qū)臉俗R 通常為 0
*/
ApplicationInfo applicationInfo = packageManager.getApplicationInfo("com.androidlongs.contactsapplication", 0);
3、通過ApplicationInfo來獲取應用程序的 基本信息
3.1 、獲取應用程序?qū)陌?、應用名稱
//獲取應用圖標 Drawable drawable = applicationInfo.loadIcon(packageManager); //獲取應用程序的 包名 String appPackageName = applicationInfo.packageName; //獲取應用名 //參數(shù) packageManager 是應用管理者對象 String appName =applicationInfo.loadLabel(packageManager).toString();
3.2 、獲取應用程序?qū)獢?shù)據(jù)的目錄以及占用的空間大小
//獲取應用存放數(shù)據(jù)目錄
String dir = applicationInfo.sourceDir;
Log.d("app ","應用存放數(shù)據(jù)目錄 " +dir);
//獲取應用數(shù)據(jù)大小
ong length = new File(dir).length();
//轉(zhuǎn)換為 M
float size = length*1f/1024/1024;
Log.d("app ","應用數(shù)據(jù)大小 " +length+"\t"+size);
3.3 、判斷是否安裝在外置儲存空間存
//判斷是否安裝在外存
int flags = applicationInfo.flags;
if((flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)==ApplicationInfo.FLAG_EXTERNAL_STORAGE){
Log.d("app "," 安裝在 外置存儲空間 ");
}else {
Log.d("app "," 安裝在 內(nèi)置存儲空間 ");
}
3.4 、判斷應用程序是否是系統(tǒng)應用
//判斷是否是系統(tǒng)應用
if((flags&ApplicationInfo.FLAG_SYSTEM)==ApplicationInfo.FLAG_SYSTEM){
Log.d("app "," 是系統(tǒng)應用 ");
}else{
Log.d("app "," 不是系統(tǒng)應用 ");
}
3.5 、manageSpaceActivityName
/**
* 從”android:manageSpaceActivity“屬性得到
* 用于指定一個Activity來管理數(shù)據(jù),
* 它最終會出現(xiàn)在設(shè)置->應用程序管理中,
* 默認為按鈕為”清除數(shù)據(jù)”,指定此屬性后,該按鈕可點擊跳轉(zhuǎn)到該Activity, 讓用戶選擇性清除哪些數(shù)據(jù)。若不設(shè)置則為null.
*/
String activityName = applicationInfo.manageSpaceActivityName;
Log.i("applicationInfo", "activityName: " + activityName);
3.6 、獲取應用程序運行的進程
/**
* 從”android:process“屬性得到,注明應用運行的進程名。或不設(shè)置則默認為應用包名。
*/
String processName = applicationInfo.processName;
Log.i("applicationInfo", "processName: " + processName);
3.7 、其他配置信息簡述
// 配置文件中的android:backupAgent屬性值,用于備份
String backupAgentName = applicationInfo.backupAgentName;
Log.i("applicationInfo", "backupAgentName: " + backupAgentName);
// 獲取繼承Application類的對象,維護全局的Application狀態(tài)
//但一般都不用繼承的方式,可以通過Context.getApplicationContext()方法得到
String className = applicationInfo.className;
Log.i("applicationInfo", "className: " + className);
/**
* 可選項,訪問當前應用所有組件需要聲明的權(quán)限,從”android:permission“屬性得到。
*/
String permisson = applicationInfo.permission;
Log.i("applicationInfo", "permisson: " + permisson);
// 創(chuàng)建對象時,傳入的是GET_SHARED_LIBRARY_FILES該屬性才有值
String[] files = applicationInfo.sharedLibraryFiles;
Log.i("applicationInfo", "files: " + files);
// 存放數(shù)據(jù)的路徑 應用數(shù)據(jù)目錄。
String dataPath = applicationInfo.dataDir;
Log.i("applicationInfo", "dataPath: " + dataPath);
// 本地路徑 JNI本地庫存放路徑。
String nativePath = applicationInfo.nativeLibraryDir;
Log.i("applicationInfo", "nativePath:" + nativePath);
// 公共資源路徑
String punlicSourcePath = applicationInfo.publicSourceDir;
Log.i("applicationInfo", "punlicSourcePath: " + punlicSourcePath);
// 資源路徑 應用APK的全路徑
String sourcePath = applicationInfo.sourceDir;
Log.i("applicationInfo", "sourcePath: " + sourcePath);
/**
* 當前應用所有Activity的默認task密切性。
* 可以參考ActivityInfo的taskAffinity,從”android:taskAffinity“屬性得到。
* 具體taskAffinity是怎么影響到Activity在task的啟動, 后面會在Activity啟動模式中細講
*/
String taskAffinity = applicationInfo.taskAffinity;
Log.i("applicationInfo", "taskAffinity: " + taskAffinity);
// 如果是false,代表application里的所有組件都禁用
boolean enable = applicationInfo.enabled;
Log.i("applicationInfo", "enable: " + enable);
// 表述資源文件的標識
int descriRes = applicationInfo.descriptionRes;
Log.i("applicationInfo", "descriRes: " + descriRes);
int flag = applicationInfo.flags;
Log.i("applicationInfo", "flag: " + flag);
// 指定smallest screen width的值,超過這個值,就要開啟屏幕兼容
int compatibleWidth = applicationInfo.compatibleWidthLimitDp;//android:compatibleWidthLimitDp屬性
Log.i("applicationInfo", "compatibleWidth: " + compatibleWidth);
// 同上,只是這時候用戶無法禁止屏幕兼容模式,說明是強制啟動屏幕兼容
int largestWidth = applicationInfo.largestWidthLimitDp;//android:largestWidthLimitDp屬性
Log.i("applicationInfo", "largestWidth: " + largestWidth);
// 所需屏幕空間的最短尺寸,
int samllestWidth = applicationInfo.requiresSmallestWidthDp;//android:requiresSmallestWidthDp屬性
Log.i("applicationInfo", "samllestWidth: " + samllestWidth);
// 應用所需的最小sdk版本
int sdkVersion = applicationInfo.targetSdkVersion;
Log.i("applicationInfo", "sdkVersion: " + sdkVersion);
int theme = applicationInfo.theme;
Log.i("applicationInfo", "theme: " + theme);//android:theme=
int uid = applicationInfo.uid;
Log.i("applicationInfo", "uid: " + uid);
// 配置文件中的uiOptions屬性的值
int uiOptions = applicationInfo.uiOptions;
Log.i("applicationInfo", "uiOptions: " + uiOptions);
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android獲取apk程序簽名信息代碼示例
- Android實現(xiàn)獲取應用程序相關(guān)信息列表的方法
- Android開發(fā)之在程序中時時獲取logcat日志信息的方法(附demo源碼下載)
- 如何判斷軟件程序是否聯(lián)網(wǎng) 聯(lián)網(wǎng)狀態(tài)提示信息Android實現(xiàn)
- Android實現(xiàn)整理PackageManager獲取所有安裝程序信息
- Android編程實現(xiàn)捕獲程序異常退出時的錯誤log信息功能詳解
- Android編程獲取APP應用程序基本信息輔助類【APP名稱、包名、圖標,版本號等】
- Android獲取手機型號/系統(tǒng)版本號/App版本號等信息實例講解
- Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法
相關(guān)文章
Android開發(fā)筆記之:消息循環(huán)與Looper的詳解
本篇文章是對Android中消息循環(huán)與Looper的應用進行了詳細的分析介紹,需要的朋友參考下2013-05-05
Android React-Native通信數(shù)據(jù)模型分析
這篇文章主要介紹了Android React-Native通信數(shù)據(jù)模型分析的相關(guān)資料,需要的朋友可以參考下2016-10-10
Android SQLite數(shù)據(jù)庫版本升級的管理實現(xiàn)
這篇文章主要介紹了Android SQLite數(shù)據(jù)庫版本升級的管理實現(xiàn)的相關(guān)資料,這里提供實現(xiàn)代碼幫助大家掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09
Flutter實現(xiàn)資源下載斷點續(xù)傳的示例代碼
在項目開發(fā)中,特別是C端的產(chǎn)品,資源下載實現(xiàn)斷點續(xù)傳是非常有必要的。今天我們不講過多原理的知識,分享下簡單實用的資源斷點續(xù)傳2022-07-07
Android自定義View實現(xiàn)圓形環(huán)繞效果
這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)圓形環(huán)繞效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01

