Android群英傳讀書筆記(第九章)
本章主要介紹的是Android系統信息與安全機制。由于本章內容大多和開發無關,只記錄少量內容。
## 1.Android Apk應用信息獲取之PackageManager
### Android系統提供了PackageManager來負責管理所有已安裝的App。其中封裝的信息如下
* ActivityInfo:Mainfest文件中<activity></activity>和<receiver></receiver>之間的所有信息,包括name、icon、label、launchmode等。
* ServiceInfo:封裝了<service></service>之間的所有信息。
* ApplicationInfo:封裝了<application></application>之間的信息,不過特別的是,Application包含很多Flag,FLAG_SYSTEM表示為系統應用,FLAG_EXTERNAL_STORAGE表示為安裝在SDCard上的應用等,通過這些Flag,可以很方便的判斷應用類型。
* PackageInfo:PackageInfo與前面三個Info類似,都是用于封裝Mainfest文件的相關節點信息,而它包含了所以Activity、Service等信息。
* ResolveInfo:封裝的是包含<intent>信息的上一級信息,所以它可以返回ActivityInfo,ServiceInfo等包含<intent>的信息,它經常用來幫助我們找到那些包含特定Intent條件的信息,如帶分享功能、播放功能的應用。
### PackageManager常用方法如下
* getPackageManager:通過調用這個方法返回一個PackageManager對象。
* getApplicationInfo:以ApplicationInfo的形式返回指定包名的Application。
* getApplicationIcon:返回指定包名的Icon。
* getInstallApplication:以ApplicationInfo的形式返回安裝的應用。
* getInstalledPackages:以PackageInfo的形式返回安裝的應用。
* queryIntentActivities:返回指定intent的ResolveInfo對象、Activity集合。
* queryIntentServices:返回指定intent的ResolveInfo對象、Service集合。
* resolveActivity:返回指定Intent的Activity。
* resolveService:返回指定Intent的Service。
## 2.Android Apk應用信息獲取之ActivityManager
ActivityManager可以獲得在運行的應用程序信息。其中封裝的信息如下
* ActivityManager.MemoryInfo:MemoryInfo有幾個非常重要的字段,availMem--系統可用內存,totalMem--總內存,threshold--低內存的閾值,即區分是否低內存的臨界值,lowMemory--是否處于低內存。
* Debug.MemoryInfo:ActivityManager.MemoryInfo用于統計全局的內存信息,而Debug的用于統計進程下的內存信息。
* RunningAppProcessInfo:進程相關的信息,processName--進程名,pid--進程pid,uid--進程uid,pkgList--該進程下的所有包。
* RunningServiceInfo:包含一些服務進程的信息,同時還有一些其他信息。activeSince--第一次被激活的時間、方式,foreground--服務是否在后臺執行。