本章主要介绍的是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
--服务是否在后台执行。
后面书中还介绍了一些安全机制和反编译就不做记录了!
网友评论