zoukankan      html  css  js  c++  java
  • android系统架构之虚拟机

                   android系统架构之虚拟机

    1.android的系统架构:

       1 application

      2.Application Framework()

      3.Library(android操作系统基础类库,android核心的包,DVM)

      4 Linux(Linux内核)/

    2.两种虚拟机的不同:(jvm虚拟机和dalvik vm)

      1.编译后的文件格式:

        jvm:  .java--->.class-->.jar

        dalvik vm: .java-->.class--->.dex--->.odex

      2.基于的架构:

        jvm:   基于栈架构

          JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

          Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够"一次编译,到处运行"的原因。

        dalvik vm: 基于寄存器

          其实在Android 4.2以前,安卓手机系统的应用程序均在Dalvik Java的虚拟机上运行,这种运行模式是还要依靠一个编译器来实现与应用程序的沟通。应程序每次运行时,都需要将程序内的代码即使转变为机器码才能运行,这无形中多附加了一道手续,这就造成了耗电相对较快、占用内存大、即使是旗舰机用久了也会卡顿严重的现象.相比较而言ART模式就很好的解决了这个问题,通过在安装应用程序时,自动对程序进行代码预读取编译,让程序直接编译成机器语言,免去了Dalvik模式要时时转换代码,实现高效率、省电、占用更低的系统内存、手机运行流畅。但凡事总有正反两面,ART在解决了该问题的同时,同时也有如:会占用略高一些的存储空间、安装程序时要相比普通Dalvik模式要长一些时间来实现预编译.

     3.android系统:

        在android系统中的一些核心类库,都是原生类的C++写的。例如:SQLite(数据库),Webkit(浏览器引擎),OpenGl(跨平台的接口,提供二维,三维的图像).

      这一层的类库要被上层调用,就必须通过JNI的导出相应的接口函数。(JNI是JAVA平台的一部分,它允许JAVA语言和其他语言进行交互)。

        一般来说android项目是基于SDK来搞的,但是当有了NDK(原生)。NDK的出现意外着最上层的应用的内容,可以穿越JAVA部署的框架,直接和底层暴露出来。

    或者自行开发的C++库进行对话。当然在这些库中要包含JNI的接口。

        MASH_UP思想:就是把应用搞成积木,要出效果的时候就东一块西一块 的拼起来,在这中有两个重要的点,一个是模块化:就是一个应用的功能要明确的被分封成

    一个个边界明确的功能。每一个功能就像是一个黑盒,由预先定义的规则来描述其交互方式。二个是动态性:就是这些模块在独立运行的时候按照需求描述连接在一起,共同完成某项更大的功能。

  • 相关阅读:
    Visual C#核心编程之泛型
    Visual C#核心编程之枚举器
    标准的非托管资源的销毁模式
    Visual C#核心编程之LINQ
    Visual C#核心编程之数组和集合
    ACCPSQL第四章上机六
    Visual C#2008核心编程之类型
    一月一代码 3月 kmp 领悟代码
    [转] 技巧 如何统一设置 windows live writer 的 图片大小
    understanding the linux virtual memory management 图序
  • 原文地址:https://www.cnblogs.com/cliuwei/p/5249076.html
Copyright © 2011-2022 走看看