Android群英传读书笔记(第九章)

上一章

本章主要介绍的是Android系统信息与安全机制。由于本章内容大多和开发无关,只记录少量内容。

1.Android Apk应用信息获取之PackageManager

Android系统提供了PackageManager来负责管理所有已安装的App。其中封装的信息如下

  • ActivityInfo:Mainfest文件中之间的所有信息,包括nameiconlabellaunchmode等。
  • ServiceInfo:封装了之间的所有信息。
  • ApplicationInfo:封装了之间的信息,不过特别的是,Application包含很多Flag,FLAG_SYSTEM表示为系统应用,FLAG_EXTERNAL_STORAGE表示为安装在SDCard上的应用等,通过这些Flag,可以很方便的判断应用类型。
  • PackageInfo:PackageInfo与前面三个Info类似,都是用于封装Mainfest文件的相关节点信息,而它包含了所以Activity、Service等信息。
  • ResolveInfo:封装的是包含信息的上一级信息,所以它可以返回ActivityInfo,ServiceInfo等包含的信息,它经常用来帮助我们找到那些包含特定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--服务是否在后台执行。

后面书中还介绍了一些安全机制和反编译就不做记录了!

下一章

你可能感兴趣的:(Android群英传读书笔记(第九章))