美文网首页
android APK安装卸载过程简介

android APK安装卸载过程简介

作者: Android刘东 | 来源:发表于2020-04-07 17:17 被阅读0次

APK打包过程:

1.javac工具将*.java文件进行转换,转换后通常得到一个*.class文件;

2.dx工具对*.class文件进行转换,转换后通常得到一个*.dex文件;

3.通过aapt工具打包所有的资源文件打包得到*.ap_文件;

4.通过apkbuilder工具把前两步得到的*.dex、*.ap_文件打包生成apk。

APK的打包,签名,验证和安装卸载机制

apk编译过程总体概述

1)编译资源文件,生成R.java文件

2)编译AIDL文件(包含java静态库文件),生成相应的.java文件

3)编译java源文件,生成.class文件

4)将.class转换为dex文件

5)编译资源文件,生成.ap_包

6)将dex文件添加到apk包

7)将JNI动态库添加到apk包中

8)对apk文件进行签名

9)对apk包的存储优化

安装方式:

1.系统安装:开机的时候,没有安装界面.

2.adb 命令安装:通过abd命令行安装,没有安装界面(adb install /pm install )

3.应用市场安装,这个要视应用的权限,有系统的权限无安装界面(例如MUI的小米应用商店)

4.第三方安装,有安装界面,通过 packageinstaller.apk来处理安装及卸载的过程的界面

应用安装涉及到的目录:

/system/app:系统自带的应用程序,获得adb root 权限才能删除

/data/app:用户程序安装的目录.安装时把apk文件复制到此目录

/data/data:存放应用程序的数据

/data/dalvik-cache:将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,当然,ART模式的可执行文件格式为.aot,启动ART时,系统会执行dex文件转换至aot文件)

/data/system目录:

(1)packages.xml文件.类似于Window的注册表,该文件是解析apk时由writeLP()创建的,记录了系统的permissons,以及解析apk的AndroidManifest获取的应用name,codePath,flag,ts,version,userid等信息,解析完apk后将更新信息写入这个文件并保存到flash,下次开机的时候直接从里面读取相关信息并添加到内存相关列表中.当有apk升级,安装或删除时会更新这个文件。

(2)package.list:指定应用的默认存储位置/data/data/com.xx.xx;package.xml中包含了该应用申请的权限,签名和代码所在的位置等信息系,并且两者都有同一个userld.

每个应用都要一个userId的原因?

因为Android在系统设计上把每个应用当做Linux系统上的一个用户对待,这样就可以利用已有的Linux用户管理机制来设计Android应用,比如应用目录/应用权限/应用进程管理等.

原文链接:https://blog.csdn.net/hanfengzqh/article/details/82790896

相关文章

网友评论

      本文标题:android APK安装卸载过程简介

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