Android系统启动-->应用启动-->界面的展示(一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android系统启动-->应用启动-->界面的展示(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3212字,纯文字阅读大概需要5分钟。
内容图文
ramdisk.img:在启动时将被 Linux 内核挂载为只读分区,它包含了 /init 文件和一些配置文件。它用来挂载其他系统镜像并启动 init 进程。即在源码\system\core\init\init.c文件system.img:包含了 Android OS 的系统文件,库,可执行文件以及预置的应用程序,将被挂载为根分区。userdata.img:将被挂载为 /data,包含了应用程序相关的数据以及和用户相关的数据。
"--setgid=1000",
"--setgroups=1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,3001,3002,3003",
"--capabilities=130104352,130104352",
"--runtime-init",
"--nice-name=system_server",
"com.android.server.SystemServer",
1
2
3
4
5
6 | public static final void init2() { Slog.i(TAG, "Entered the Android system server!" ); Thread thr = new ServerThread(); thr.setName( "android.server.ServerThread" ); thr.start(); } |
ServerThread.run(){.....Looper.prepare();//一大堆的服务和ManagerActivity ManagerPackage Manager://扫描系统中所有的apk(耗时的操作)
}
Android平台是为手持内嵌设备而设计的,并且大部分手持设备都使用电池工作,其本身拥有的资源非常有限。
所以,手持设备要求内嵌系统平台必须提供一个高效的运行环境,一方面提高设备资源的利用率,另一方面尽可能地加长设备的使用时间。
Android手机用户与设备的交互无非总结为:打开应用以及切换到下一个应用;
为了能有效的减少系统负担,Android在启动新进程(打开新应用)采用了Zygote(孵化)进程。
Init进程是系统启动后运行在用户空间的首个进程,init进程启动完系统运行所需要的各种守护进程后,启动Zygote进程;
Zygote进程启动后,Android的服务与应用程序都有该进程启动运行。
下面是一个模拟器的进程启动情况,zygote的进程号是33,它的父进程号是1(init进程);
下面的应用的父进程号都是33,说明所有的应用都是由zygote进程生成的。
Zygote是Android系统的一个主要特征,通过COW(copy on write)方式对运行在内存中的进程实现了最大程度的复用,并通过库共享有效降低了内存的使用量。
下面来对Zygote进程孵化新进程的过程做进一步了解:
Zygote进程调用fork( )函数创建出Zygote‘子进程,子进程Zygote‘ 共享父进程Zygote的代码区与连接信息。
如下图所示,Fork()橙色箭头左边是Zygote进程,右边是创建出的Zygote‘子进程;
然后Zygote‘子进程将执行流程交给应用程序A,Android程序开始运行。
新生成的应用程序A会使用已有Zygote父进程的库与资源的连接信息,所以运行速度很快。
另外,对于上图,Zygote启动后,初始并运行DVM,而后将需要的类与资源加载到内存中。
随后调用fork( )创建出Zygote‘ 子进程,接着子进程动态加载并运行应用程序A。
运行的应用程序A会使用Zygote已经初始化并启动运行的DVM代码,通过使用已加载至内存中的类与资源来加快运行速度。
以上只是一个抽象的流程,没有具体到代码层的实现,大家如果想分析这部分源代码的话,给大家推荐《Android框架揭秘》这本书。
应用启动-->界面的展示(一)' ref='nofollow'>Android系统启动-->应用启动-->界面的展示(一)
原文:http://blog.csdn.net/kkopopo/article/details/42126657
内容总结
以上是互联网集市为您收集整理的Android系统启动-->应用启动-->界面的展示(一)全部内容,希望文章能够帮你解决Android系统启动-->应用启动-->界面的展示(一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。