当前位置: 移动技术网 > 移动技术>移动开发>Android > Android系统原理

Android系统原理

2020年08月14日  | 移动技术网移动技术  | 我要评论
整理一些系统原理的知识点:Dalvik虚拟机与JVM有什么区别1.Dalvik 基于寄存器,而 JVM 基于栈。2.基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。3.Dalvik执行.dex格式的字节码,而JVM执行.class格式的字节码。class和dex1.dvm执行的是dex格式文件,jvm执行的是class文件,android程序编译完之后生产class文件。然后dex工具会把class文件处理成dex文件,然后把资源文件和.dex文件等打包成ap

整理一些系统原理的知识点:

Dalvik虚拟机与JVM有什么区别

1.Dalvik 基于寄存器,而 JVM 基于栈。

2.基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

3.Dalvik执行.dex格式的字节码,而JVM执行.class格式的字节码。

class和dex

1.dvm执行的是dex格式文件,jvm执行的是class文件,android程序编译完之后生产class文件。然后dex工具会把class文件处理成dex文件,然后把资源文件和.dex文件等打包成apk文件。

2.dvm是基于寄存器的虚拟机,而jvm执行是基于虚拟栈的虚拟机。寄存器存取速度比栈快的多,dvm可以根据硬件实现最大的优化,比较适合移动设备。

3.class文件存在很多的冗余信息,dex工具会去除冗余信息,并把所有的class文件整合到dex文件中。减少了I/O操作,提高了类的查找速度

APP从启动到主页显示经历了哪些过程

1.点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求;

2.system_server进程接收到请求后,向zygote进程发送创建进程的请求;

3.Zygote进程fork出新的子进程,即App进程;

4.App进程,通过Binder IPC向sytem_server进程发起attachApplication请求;

5.system_server进程在收到请求后,进行一系列准备工作后,再通过binder IPC向App进程发送scheduleLaunchActivity请求;

6.App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送LAUNCH_ACTIVITY消息;

7.主线程在收到Message后,通过发射机制创建目标Activity,并回调Activity.onCreate()等方法。

8.到此,App便正式启动,开始进入Activity生命周期,执行完onCreate/onStart/onResume方法,UI渲染结束后便可以看到App的主界面。

 

本文地址:https://blog.csdn.net/wzj_what_why_how/article/details/107956821

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网