Android Launch Process(安卓系统启动过程)

所需积分/C币:50 2018-12-25 15:01:05 3.03MB PDF
0
收藏 收藏
举报

Android的系统启动流程,从开机到打开桌面的大概流程。
Android基于 Linux system 在 Linux中,所有的进程都是由int进程直接或者是间接 fork出来的。 所以,当 Android手机开机的时候, Linux的内核在加载完 成之后也会启动一个叫init的进程。 与in不同的是, Android会在加载完之后,从n进程fork 出一个 zygote进程 StUdio zygote是什么?有什么作用? 在 Android中,每一个App都是 一个单独的 Art/ Dalvik虚拟机 一个单独的进程 为了实现资源共用和更快的启动速度, Android系统开启新进 程的方式,是通过ok第一个xgte进程实现的。所以 说,除了第一个zse进程,其他应用所在的进程都是 2yste的子进程,这就是为什么这个进程叫受精卵。因为 就像是一个受精卵一样,它能快速的分裂,并且产生遗传物质 样的细胞! StUdio init is a root process. It has two responsibilities, mount directories like/sys, /dev, /proc and runs the init. rc script that starts, among other things, native daemons like Service Manager, Media Server etc Zygote is a special Android os process that enables shared code across Dalvik/Art in contrast with Java VM where each instance has its own Cop Py or core brang class nles and heap objects System Server s the frst process started by zygote. After it starts, it lives on as an entirely separate process from its parent. It starts initializing each system service it houses and registering them with the previously started Service Manager. It also starts the Activity Manager Activity Manager is responsible for a new Activity thread process creation, maintenance of the Activity lifecycle and managing the Activity stack. By the end of its startup it also executes an Intent to start a Home Launcher over which it receives on Click events to start new apps from icons on the home screen StUdio Kernel Bootloader Launcher Init. env. to run C code Click Initialize RAM Init itself Init kernel subsystems 4+ Put basic HW in quiescent state Register onClick() handlers Init all drivers Load kernel and ram disk -Mount root FS - Jump to kernel startActivityO Start "init process Activity Manager Init itself Init Send intent. CatEgorY HOme Set up env. variables Create mount points Mount fses Set up FS perms. Zygote System Server Set oom adi Register Zygote socket 「 or each service. Start native daemons Preload all Java classes Init service Preload resources Reg. w/ Service Manager Start System Server Open socket Incl. start Activity Manager Native daemons Listen for connections servicemanager old netd debugged rild Android runtime app_ process-XZygote Start a Dalvik vM mediaserver all Zygotes main() New app bootanimation bluetooth dbus-daemon install keystore adb StUdio Sustem server ◆ Activity Manger service ◆ PowerManger service ◆ DisplauMangerService 4 Package Manger Service WindowManger Service StUdio Launcher是什么?什么时候启动的? 当我们点击手机桌面上的图标的时候,APP就由 Launcher开始 启动了。但是, Launcher到底是一个什么东西? anhe本质上也是一个应用程序,和我们的AP样 Launcher实现了点击、长按等回调接口,来接收用户的输入。 StUdio ActivityManger service 简称AM,服务端对象,负责系统中所有Actt的生命周期 其实服务器客户端的概念不仅仅存在于Web开发中,在 Android的 框架设计中,使用的也是这一种模式。服务器端指的就是所有AP 共用的系统服务,比如我们这里提到的 Activity Manager Service, 和前面提到的 PackageManager Service、 WindowManagerService 等等,这些基础的系统服务是被所有的ApP公用的,当某个APP想 实现某个操作的时候,要告诉这些系统服务,比如你想打开一个 AP,那么我们知道了包名和MmAc的类名之后就可以打开。 StUdio 我们的APP和AMs( SystemServer进程)还有2ote进 程分属于三个独立的进程 点击APP图标之后会通过一系列的调用,最后还是告诉 AMs说:“我要打开这个APP,我知道他的住址和名字, 你帮我打开吧!所以是AM5来通知xt进程来fork 一个新进程,来开启我们的目标APP的。这就像是浏览器想 要打开一个超链接一样,浏览器把网页地址发送给服务器, 然后还是服务器把需要的资源文件发送给客户端的。 AP与AMS通过 Binder进行PC通信,AMS ( oystemServer进程)与2gte通过 Socke进行PC通信。 StUdio

...展开详情
试读 16P Android Launch Process(安卓系统启动过程)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    Android Launch Process(安卓系统启动过程) 50积分/C币 立即下载
    1/16
    Android Launch Process(安卓系统启动过程)第1页
    Android Launch Process(安卓系统启动过程)第2页
    Android Launch Process(安卓系统启动过程)第3页
    Android Launch Process(安卓系统启动过程)第4页

    试读结束, 可继续读1页

    50积分/C币 立即下载 >