一、背景

最近在了解插件化技术:把未安装的插件apk 集成到 宿主App中,以取得减少宿主APK包体积等优点。也就是说,一个完整的APK 虽然不经过安装过程,但使用了插件化技术后却可以在宿主中使用其功能。

那么对应的,一个APK的完整安装过程是怎样的呢?用户通常能体验到的安装过程有两种:

  1. 在手机厂商的应用市场中 选择目标App自动安装;

先下载APK,然后是安装过程,过程中没有跳转到其他页面,可以说是一键安装

  1. 浏览器、QQ、抖音等 应用里面下载的APK包,点击后用户确认安装:

这种通常是用户下载一个APK文件,然后手动点击,跳转到安装页面,提示这个APK的下载信息等,然后是安装包详情页面,展示 版本号、所需权限 等一些信息,最后是安装中的页面。我使用的是小米手机,对应的Activity信息如下,这其中PermissionInfoActivity是点击“应用权限”的权限详情页面。

com.miui.packageinstaller/com.miui.packageInstaller.NewPackageInstallerActivity: +220ms
2com.miui.packageinstaller/com.miui.packageInstaller.NormalInstallReadyActivity: +97ms
3com.miui.packageinstaller/com.android.packageinstaller.miui.PermissionInfoActivity: +97ms
4com.miui.packageinstaller/com.miui.packageInstaller.InstallProgressActivity: +99ms

发现整个安装过程是执行在小米系统miui的"com.miui.packageinstaller"中,那么可想而知在原生Android系统也有对应的Activity。

APK包体越大,安装时间就越长,因为需要解析和校验的越多。无论哪种方式,安装完成后都会通知到 桌面应用Launcher,Launcher在桌面上添加一个App图标。这就是用户感受到的安装过程。

好了,APK安装过程 就讲完了!

—— 并没有

一文带你搞懂APK安装过程相关推荐

  1. 一文带你搞懂从动态代理实现到Spring AOP

    摘要:本文主要讲了Spring Aop动态代理实现的两种方式. 1. Spring AOP Spring是一个轻型容器,Spring整个系列的最最核心的概念当属IoC.AOP.可见AOP是Spring ...

  2. 一文带你搞懂C#多线程的5种写法

    一文带你搞懂C#多线程的5种写法 1.简介 超长警告! 在学习本篇文章前你需要学习的相关知识: 线程基本知识 此篇文章简单总结了C#中主要的多线程实现方法,包括: Thread 线程 ThreadPo ...

  3. RPC框架:一文带你搞懂RPC

    RPC是什么(GPT答) ChatGPT回答: RPC(Remote Procedure Call)是一种分布式应用程序的编程模型,允许程序在不同的计算机上运行.它以一种透明的方式,将一个程序的函数调 ...

  4. 如何查询你电脑的IP地址?一文带你搞懂IP地址

    上一章介绍了数据链路层--以太网数据帧的报文格式(你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它),本章介绍下网络层--IP地址. 大家都知道计算机都会有一个IP地址,只有配置了IP地址 ...

  5. RPC框架:从原理到选型,一文带你搞懂RPC

    大家好,我是华仔,RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理.对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型,下面是文章内容目录: RPC 什么 ...

  6. ipv6单播地址包括哪两种类型_IPV6中为啥没有ARP了呢?一文带你搞懂NDP邻居发现协议...

    前言 前面我们介绍了ICMPv6协议 除了提供ICMPv4常用的基本功能之外,还有邻居发现(ND)的功能.一文带你看懂ICMPv6和ICMPv4的区别 那么究竟什么是邻居发现协议(ND)呢? 邻居发现 ...

  7. 一文带你搞懂什么是测试开发!

    需要说明的是,原文发表于作者的公众号中,文章篇幅虽长,但内容朴实.且能帮助读者进一步理解测试开发工作,请读者耐心品完~ 01 开始前说点什么 1. 自我反省 公众号开通了也有两年多了,除了刚开通的那段 ...

  8. 【MDX】一文带你搞懂SQL Server Analysis Services 的安装和使用

    目录 Step 1: Install developer and management tools 安装 new stand-alone SQL Server installation or add ...

  9. 秒杀系统架构分析与实战,一文带你搞懂秒杀架构!

    作者丨猿码道 jianshu.com/p/df4fbecb1a4b 1.秒杀业务分析 正常电子商务流程 (1)查询商品: (2)创建订单: (3)扣减库存: (4)更新订单: (5)付款: (6)卖家 ...

最新文章

  1. 剑指offer 40.最小的 K 个数 python代码
  2. 语义分割源代码_综述 | 基于深度学习的实时语义分割方法:全面调研
  3. react-native项目打包速度优化
  4. TypeScript 原来可以这么香?!
  5. 重磅 | 边缘计算核心技术辨析
  6. nginx正则表达式
  7. 北理工在线作业计算机的主要特点是( ),北理工18秋《计算机组成原理》在线作业【答案】...
  8. php 多态有什么用,php面向对象多态的介绍与优势
  9. java限制金额控制_JavaMail 限额管理
  10. 【免费】某平台3980元大数据课程免费下载,仅此1次
  11. document.body和document.documentElement的区别
  12. opencv-Mat数据类型及位数总结
  13. Android context.getSystemService的简单说明
  14. 学会忘记其实是一种美德
  15. 华硕X370 Pro更新BIOS后黑屏自救记录
  16. 全国计算机缴费时间江苏,2018年3月江苏全国计算机等级考试报名时间
  17. tpc-c 测试结果 tpc-c
  18. 测试进阶必备,这5款http接口自动化测试工具简直不要太香~
  19. 光猫虚拟服务器无法使用,光猫怎么配置虚拟服务器
  20. js中appendChild()用法

热门文章

  1. 【正点原子FPGA连载】第五十六章 双目OV5640摄像头HDMI显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  2. getParameter方法的用法
  3. 深入浅出理解kNN(k近邻算法)
  4. 盘点一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列
  5. 10JavaScript
  6. 惠普:云计算不适合SAP这样的应用程序
  7. 龙头股情绪周期教程php,《龙头股情绪周期教程》全集 第9讲:题材情绪周期反包阶段(低吸、反包板)...
  8. 刑事案件不追究刑事责任的情形,办案机关发现后应如何处理?
  9. linux批量解压zip文件
  10. Centos7 下 安装 Redis6.0.8