PMS系列3⃣️—PackageInstallerActivity到PMS

本文详细解析了Android应用安装过程,从用户点击确认安装开始,跟踪到PackageInstallerActivity的InstallInstalling子步骤,包括onCreate()和onResume()方法,以及InstallingAsyncTask如何将apk信息写入Session并调用commit()。接着,文章概述了Session.commit()在SystemServer进程中的处理,最终如何触发PMS(包管理服务)的installStage()进行后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PackageInstallerActivity:

在这里插入图片描述

从上一篇文章中,我们分析到用户安装apk的点击确认安装和取消安装界面,这个界面还可以选择apk的权限,下面从确定安装的点击事件开始分析:点击确定后会调用startInstall()

    private void startInstall() {
   
        // Start subactivity to actually install the application
        Intent newIntent = new Intent();
...
        newIntent.setClass(this, InstallInstalling.class);
        startActivity(newIntent);
        finish();
    }

InstallInstalling:

点击确认安装后会进入,会启动InstallInstalling这个activity;

InstallInstalling.onCreate()
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
...
        setContentView(R.layout.install_installing);
...
        mSessionId = getPackageManager().getPackageInstaller().createSession(params);
    }

在onCreate中主要是创建了一个Session对象,并且返回了一个对应的SessionId;

InstallInstalling.onResume()
    protected void onResume() {
   
        super.onResume();

        // This is the first onResume in a single life of the activity
        if (mInstallingTask 
在Android源码中,应用程序的安装是由PackageManagerService (PMS) 负责实现的。PackageManagerService是Android系统中的一个系统服务,负责管理应用程序的安装、卸载、更新和权限控制等操作。 具体而言,应用程序的安装过程涉及到以下几个关键的类和组件: 1. PackageManagerService (PMS):PMS是系统服务的实现类,负责处理应用程序的安装、卸载、更新等操作。它通过解析APK文件获取应用程序的信息,然后将相关信息记录在系统的包管理器中。 2. PackageInstaller:PackageInstaller是一个应用程序安装器,用于处理用户通过界面(如Google Play商店或系统文件管理器)安装应用程序的请求。它与PMS进行通信,并将安装请求传递给PMS进行处理。 3. PackageParser:PackageParser是一个APK解析器,用于解析APK文件并提取其中的信息,如应用程序的包名、版本号、权限等。PMS使用PackageParser来解析APK文件并获取相关信息。 4. PackageInstallerActivityPackageInstallerActivity是一个系统界面组件,用于显示应用程序安装的界面。当用户通过界面触发应用程序安装时,PackageInstallerActivity会调用PackageInstaller来处理安装请求。 总结起来,应用程序的安装是由PackageManagerService负责实现的,它通过与PackageInstaller和PackageParser等组件的协作,完成解析APK文件、记录应用程序信息和处理安装请求等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值