美文网首页
安卓apk包安装过程

安卓apk包安装过程

作者: 人活一世 | 来源:发表于2020-02-04 22:27 被阅读0次

APK安装涉及到的几个常用目录

system/app : 系统自带的应用程序,获得root权限才能删除
data/app : 用户程序安装目录,安装时会把apk文件复制到此目录下
data/data : 存放应用程序的数据
data/dalvik-cache : 将apk中的dex文件安装到该目录下(dex文件是dalvik虚拟机的可执行文件,大小约为原始apk的四分之一)

APK安装的四大步骤
(1)拷贝apk到指定的目录
默认情况下,用户安装的apk首先会拷贝到/data/app下,用户有访问/data/app目录的权限(系统出厂的apk文件会被放到/system分区下,括/system/app,/system/vendor/app,以及/system/priv-app等。该分区需要
root权限的用户才能访问)
(2)加载apk、拷贝文件、创建应用的数据目录
为了加快APP的启动速度,apk在安装的时候,会首先将APP的可执行文件(dex)拷贝到/data/dalvik-cache目录下,缓存起来。再在/data/data/目录下创建应用程序的数据目录(以应用包名命名),用来存放应用的数据库、xml文件、cache、二进制的so动态库等。
(3)解析apk的AndroidManifest.xml文件
在安装apk的过程中,会解析apk的AndroidManifest.xml文件,将apk的权限、应用包名、apk的安装位置、版本、userID等重要信息保存在/data/system/packages.xml文件中。这些操作都是在PackageManagerService中完成的。
(4)显示icon图标
应用程序经过PMS中的逻辑处理后,相当于已经注册好了,如果想要在Android桌面上看到icon图标,则需要Launcher将系统中已经安装的程序展现在桌面上。

APK安装的预备知识点
(1)PackageManagerService是由SystemServer启动,PMS负责应用的安装、卸载、权限检查等工作
(2)在/system/app和/data/app目录下的apk文件,PMS在启动过程中,都会扫描安装
(3)每次开机时,PMS都会在构造函数中对指定目录下的apk进行扫描,没有安装的apk就会触发安装。
(4) 本文的源码是基于Android6.0

相关文章

  • 安卓apk包安装过程

    APK安装涉及到的几个常用目录 system/app : 系统自带的应用程序,获得root权限才能删除data/a...

  • 安卓逆向学习笔记(0x00)

    (注:根据网上所看博文整理而成) 何为APK? APK全称:AndroidPackage,即安卓应用安装包; 一个...

  • mac系统下安装安卓apk包

    最近做了一款应用,需求方发了设计稿给我,具体跳转逻辑,交互等参看安卓现有包,于是直接甩给我一个安卓apk包,安装自...

  • adb实用命令

    截屏: windows批处理命令: linux(MAC)命令: 安装APK: 卸载apk: 清理app缓存: 安卓...

  • Android APK 反编译实践

    apk是安卓工程打包的最终形式,将apk安装到手机或者模拟器上就可以使用APP。反编译apk则是将该安卓工程的源码...

  • 安卓逆向系列教程(二)APK 和 DEX

    安卓逆向系列教程(二)APK 和 DEX 作者:飞龙 APK APK 是 Android 软件包的分发格式,它本身...

  • APK逆向工程

    APK APK(android Application PacKage)文件是安卓app的安装文件,其实就是一个z...

  • 锁软件的更新指南

    1.在安卓手机上安装BlueXBleOta的apk 在微信上收到apk可能无法直接点击安装(有些手机可以,这里以华...

  • 教程 安卓提取 apk 安装包

    第一种方式 首先确定apk软件已安装完成, 打开文件管理器,选择路径 data/app/,在此目录中都是已经被安装...

  • adb 命令

    安卓APP检查点: aapt dump badging {{文件.apk}} 可以看包名package name、...

网友评论

      本文标题:安卓apk包安装过程

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