🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
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--服务是否在后台执行。