Video-No.01 Android基础视频教程

1、Android体系结构

技术分享

底层:Linux kernel(linux内核) --> libraries(C封装的对底层linux内核操作库) --> android runtime(android运行时,android dalvik虚拟机以及核心lib包,通过JNI调用C代码操作硬件)--> Application framework(google andriod sdk)--> applications(andriod应用程序代码)

注:Android中的Java代码需要运行在Java虚拟机中,而Java虚拟机通过JNI调用底层C代码操作硬件。Java lib操作google封装的调用底层的C代码

2、Dalvik虚拟机和JVM虚拟机的区别

  •  Dalvik基于寄存器,在虚拟机里面的虚拟CPU中分配了多个寄存器,而JVM基于栈,dalvik直接访问寄存器,而不需要访问堆栈,速度更快

  • JVM编译完成后生成一个个的class字节码文件,在使用的时候加载到内存中。而dalvik编译后将所有class文件转换为一个dex文件,这个文件包含了所有的类。当编译器将java文件编译成class文件后,dalvik虚拟机将class文件重新将class文件编译为dex字节码文件,并删除class文件。常量池保存了所有类中的常量信息。这样减少文件个数i/o操作,提交类查询的速度,引入的常量池等概念,提高查询速度,执行的效率更高

  • dalvik支持在有限的内存中运行多个虚拟机实例,并且每一个dalvik虚拟机应用作为一个独立的linux进程处理,这样防止在某一个虚拟机崩溃导致所有的程序都关闭

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。