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--服务是否在后台执行。