华为手机里的Android Services Library是什么程序
来源:蜘蛛抓取(WebSpider)
时间:2020-09-19 04:13
标签:
安装360卫士里面有卸载,尤其是系统文件360卫士有备份,卸载后可以恢复试试吧。 查看原帖>>
PackageManagerService主要是一个包的管理服务在开機的时候会解析以前保存的一些安装包的相关数据,android运行过程中新安装的apk也会保存到PackageManagerService的相关变量中也会写到相关的文件中永久保存。
首先看一下它的总体流程
它的启动过程主要涉及以下几个方面
这个可执行文件的代码在/framework/base/cmds/installd目录下面比较简单,主要是监听socket上是否有数据来囿的话解析数据,执行相应的命令
在packagemanageservice中则会连接到相应这个socket然后有需要的操作时,把相应的操作代码发到installd由其进行解析操作
新建了一個HandlerThread的线程,并在其run函数中新建了一个Looper,把它设为PackageHandler然后就可以利用它进行消息的处理
perm);给一些底层用户分配一些权限,如shell授予各种permission把一个权限赋予一个uid,当apk使用这个uid运行时就具备了这个权限系统增加的一些应用需要link的扩展的jar库,系统每增加一个硬件都要添加相应的featrue,将解析結果放入mAvailableFeatures
6、启动AppDirObserver线程往中监测/system/framework,/system/app,/data/app/data/app-private目录的事件,主要监听add和remove事件对于目录监听底层通过innotify机制实现,inotify是一种文件系统的变化通知机制如文件增加、删除等事件可以立刻让用户态得知它为用户态监视文件系统的变化提供了强大的支持,当有add
ObserverThread中有一段静态程序块(当一个类需要在被载入时就执行一段程序这样可以使用静态程序块)
看一下这几个native函数
init比较简单,直接调用inotify_init返回一个句柄标识
对于以上几个上目录下的apkg逐个解析主要是解析每个apk的AndroidManifest.xml文件,处理asset/res等资源文件建立起每个apkr 配置结构信息,
8、将解析出的Package的相关信息保存到相关全局变量还有文件(上面已经提及)
a、 查找该apk依赖的库是否存在
c、 判断该包是否已经存在,存在的话需要做一些处理
d、 查看它的Setting结构是否存在不存在则创建咜
这样,PackageManagerService就基本上完成了他的任务后面如果我们运行的过程中要安装apk,也会进行相类似的处理