美文网首页
Package Manager

Package Manager

作者: gbmaotai | 来源:发表于2018-10-23 09:29 被阅读0次

    PackageInstaller

    PackageInstaller是安卓上默认的应用程序,用它来交互式地安装普通包文件。 PackageInstaller提供了用户界面来管理应用或者包文件。PackageInstaller调用一个叫 InstallAppProgress的activity来获取用户发出的指令。InstallAppProgress会请求Package Manager Service,然后通过indalld来安装包文件。源码提供在/packages/apps/PackageInstaller上。

    Installd

    这个系统守护程序的首要角色是获取来自Package Manager Service的请求,而该请求是通过Linux套接字/dev/socket/installed获得的。
    Installd使用管理员权限执行一系列的步骤来安装APK。

    Package Manger

    Package Manger是一个实际上管理应用程序安装、卸载和升级的API。当我们安装APK文件 时,Package Manager会解析APK包文件和显示确认信息。当我们点击OK按钮后,Package Manger会调用一个叫“InstallPackage”的方法,这个方法有四个参数,也就是uri、installFlags、observer和 installPackagename。Package Manger请求服务。
    Package Manger服务运行在系统服务进程中,而安装守护程序(installd)作为一个本地进程运行着,他们都在系统启动时开始运行。

    Package Manger Serivce

    等待;
    添加一个包文件到安装进程的队列中;
    确定合适的地方来安装包文件;
    复制apk文件到一个给定的目录下;
    确定应用的UID;
    请求installd守护程序进程;
    创建应用目录和设置权限;
    提取dex代码到缓存目录中;
    解析packages.list、system、data和packages.xml的最新状态;
    向系统发送广播消息,消息带有安装完成效果的名字Intent.ACTION_PACKAGE_ADDED:如果是更新,会带有新的(Intent.ACTION_PACKAGE_REPLACED)。
    

    相关文章

      网友评论

          本文标题:Package Manager

          本文链接:https://www.haomeiwen.com/subject/dljozftx.html