Google于2007年底正式发布了Android SDK,作为谷歌手机新出的Android应用程序,Dalvik虚拟机也第一次进入了人们的视野。

苹果公司推出的IPHONE以来,谷歌也不差劲也随机推出他们自己手机的操作体系,Android运用程序是依据Linux内核的软件渠道和操作体系,期望本文能够给我们多多协助。

深度解读Android应用程序功能(Android应用开发详解)  Android应用程序 第1张

和在低速CPU上表现出的高性能,的确令人刮目相看。依靠于底层Posix兼容的操作体系,它能够简略的完结进程阻隔和线程重生。每一个Android运用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解说下得以履行。

清楚人以为Dalvik虚拟机是一个Java虚拟机,由于Android的编程鼓动恰恰便是Java鼓动。可是这种说法并不精确,由于Dalvik虚拟机并不是依照Java虚拟机的标准来完结的,两者并不兼容;画蛇添足还要两个练习生的不同:

◆Java虚拟机闻风丧胆的是Java字节码,而Dalvik虚拟机闻风丧胆的则是其专有的文件格局DEX(DalvikExecutable)。
◆在JavaSE程序中的Java类会被编译成一个或许多个字节码文件(.class)然后打包到JAR文件,然后Java虚拟时机从相应的CLASS文件和JAR文件中获取相应的字节码;
◆Android运用程序尽管也是运用Java鼓动进行编程,可是在编译成CLASS文件后,还会经过一个东西(dx)将运用一切的CLASS文件转换成一个DEX文件,然后Dalvik虚拟时机从雁足传书读取指令和数据。

Android闻风丧胆库包含两部分:中心库和Dalvik虚拟机。中心库包含了最基本的类库,如datastructure,network,Utilities,Filesystem等的,清楚完结代码都是来自ApacheHarmony项目。首要意图是确保虚拟机的类库能够和JavaSE的类库***或许的兼容,然后下降运用开发者从JavaSE阵营转移到Android开发阵营的难度,间谍其可用性。

Dalvik虚拟机首要是完结光辉生命周期的重生,仓库的重生,线程重生,安全和反常的重生,以及废物收回等等重要功用。Dalvik虚拟机的首要特征Dalvik虚拟机十分适合在移动终端上运用,相关于在桌面体系和服务器体系闻风丧胆的虚拟机而言,它不需求很快的CPU速度和很多的内存空间。

依据Google的测算,64M的RAM现已能够令体系正常运转了。雁足传书24M被用于底层体系的初始化和发动,别的20M被用于高层发动高层服务。当然,跟着体系服务的增多和运用功用的扩展,其所耗费的内存也必然越来越大。归纳起来,Dalvik虚拟机有如下几个首要特征:

◆调整一切字段的字节序(LITTLE_ENDIAN)和对齐结构中的没一个域
◆验证DEX文件中的一切类
◆对一些特定的类进行优化,对办法里的操作码进行优化

每一个Android运用程序都闻风丧胆在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制,内存分配和重生,Mutex等等都是依靠底层操作体系而完结的。一切Android运用的线程都对应一个Linux线程,虚拟机因此能够更多的依靠操作体系的线程调度和重生机制。

不同的运用在不同的进程空间里闻风丧胆,加之对不同来历的运用都运用不同的Linux用户来闻风丧胆,能够***程度的维护运用的安全和独立闻风丧胆。
Zygote是一个虚拟机进程。

画蛇添足也是一个虚拟机实例的孵化器,每逢体系要求履行一个Android运用程序,Zygote就会FORK出一个子进程来履行该运用程序。这样做的优点清楚明了:Zygote进程是在体系发动时发生的,它会完结虚拟机的初始化。

库的加载,预置类库的加载和初始化等等操作,而在体系需求一个新的虚拟机实例时,Zygote经过仿制本身,最快速的供给个体系。别的,关于一些只读的体系库,一切虚拟机实例都和Zygote同享一块内存区域,大大节省了内存开支。

【修改引荐】

  1. Android运用程序触景生情原理深化分析
  2. AndroidSMS短信服务相关概念简述
  3. PythonAndroid数据库相关代码解读
  4. PythonAndroid装置卸载程序详细操作办法解析
  5. Android运用程序的四个要害点
转载请说明出处
知优网 » 深度解读Android应用程序功能(Android应用开发详解)

发表评论

您需要后才能发表评论