一个apk从开始安装启动,系统做了哪些事情?请从AMS,WMS,PMS的角度考虑,以及进程是如何启动的?

     应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。APK是AndroidPackage的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

Android应用安装有如下四种方式

1.系统应用安装――开机时完成,没有安装界面

2.网络下载应用安装――通过market应用完成,没有安装界面

3.ADB工具安装――没有安装界面。

4.第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。

应用安装的流程及路径   应用安装涉及到如下几个目录:

system/app  系统自带的应用程序,无法删除

data/app       用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录

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

Data/dalvik-cache      将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之                                       一)

安装过程:复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。

卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。

AMS,WMS,PMS原理分析

1、AMS:ActivityManagerService

ActivityManagerService mActivityManagerService=mSystemServiceManager.startService(ActivityManagerService.Lifecycle.class).getService();这是通过SystemServiceManager这样一个模板类来创建运行在SystemServer中的Framework服务;并将创建的服务统一保存在队列管理,会涉及到多用户切换。

《一个apk从开始安装启动,系统做了哪些事情?请从AMS,WMS,PMS的角度考虑,以及进程是如何启动的?》

参考资料详解:http://www.cnblogs.com/sunkeji/articles/7650482.html

2、PMS:PackageManagerService

      了解了Android系统的启动过程的读者应该知道,Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中。SystemServer进程在启动时,通过创建一个ServerThread线程来启动所有服务,本文主要介绍Android服务中PackageManagerService服务启动过程。首先介绍一些PackageManagerService服务下的相关类关系图:


《一个apk从开始安装启动,系统做了哪些事情?请从AMS,WMS,PMS的角度考虑,以及进程是如何启动的?》

参考资料详解:http://www.cnblogs.com/sunkeji/articles/7651925.html

3、WMS:WindowManagerService

      

    原文作者:孙科技
    原文地址: https://www.jianshu.com/p/0cd5cb9af856
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞