原生android(一)

1、移动APP的几种类型

一、Native APP:基于智能手机操做系统,并使用原生程序编写运行的应用程序,有IOS,Android,Windows Phone8等系统java

二、Web APP:运行在智能手机浏览器上的应用程序,主要采用HTML5,CSS和JavaScript开发android

三、Hibrid APP:介于Native APP和Web APP之间的混合移动应用,经常使用开发框架:PhoneGap,AppCan,Rexsee编程

四、Light APP:在已有手机APP上开发的插件或服务,也叫作微应用或轻应用,例如,百度轻应用,UC网页应用,微信公众号浏览器

2、Android平台架构

        Android系统的底层创建在Linux系统之上,该平台由操做系统、中间件、用户界面和应用软件4层组成,它采用一种被称为软件叠层(software Stack)的方式进行构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。其本质就是在标准的Linux系统上增长了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建一个java application framework,全部的应用程序都是基于java的application framework之上。安全

Android平台的架构图以下:性能优化

从图中能够看出,Android系统是由五大部分组成的:服务器

一、应用程序层(APPLICATIONS)微信

    Android系统将包含系列的核心应用程序,包括电子邮件客户端,SMS程序,日历,地图,浏览器,联系人等。这些应用程序都是用java编写的。网络

二、应用程序框架(APPLICATION FRAMEWORK)架构

    当开发应用Android应用程序时,就是面向底层的应用框架进行的。从这个意义上来看,Android系统之上的应用程序时彻底平等的,无论Android系统提供的程序,仍是普通开发者提供的应用程序,均可以访问Android提供的API框架。

三、函数库(LIBRARIES)

    Android包含一套被不一样组件所使用的C/C++库的集合。通常来讲,android应用开发者不能直接调用这套C/C++库,但能够经过上面的应用程序框架来调用这些库。

四、Android运行时(ANDROIDRUNTIME)

    Android运行时由两部分组成:Android核心库集合(Core Libraries)和Dalvik虚拟机(Dalvik Virtual Machine)。其中核心库集提供了java语言核心库所能使用的绝大部分功能,而虚拟机则负责运行Android应用程序。每一个Android应用程序都运行在单独的dalvik虚拟机内(即每一个Android应用程序对应一条Dalvik进程),Dalvik专门针对同事高效运行多个虚拟机进行优化,所以Android系统很方便实现对应用程序进行隔阂。

    因为Android应用程序的编程语言是java,所以有些人会把Dalvik虚拟机和JVM搞混,但实际上两者存在区别:Dalvik并不彻底遵照JVM规范,二者也不兼容。实际上,JVM虚拟机运行的是Java字节码(一般是.class文件),但dalvik运行的是其专有的dex(Dalvik Executable)文件。JVM直接从.class文件或者JAR包中加载字节码而后运行;而Dalvik则没法直接从.class文件或JAR包中加载字节码,它须要经过DX工具将应用程序的全部.class文件编译成.dex文件,Dalvik则运行的是该.dex文件

    Dalvik虚拟机很是适合在移动终端上使用,相对在PC或者服务器上运行的虚拟机而言,Dalvik虚拟机不须要很快的CPU计算速度和大量的内存空间,它主要有以下两个特色:

    (1)运行专有的.dex文件。专有的.dex文件减小了.class文件中冗余信息,并且会把全部.class文件整合到一个文件中,从而提升运行性能;并且DX工具还会对.dex文件进行一些性能优化。

    (2)基于寄存器实现。大多数虚拟机(包括JVM)都是基于栈的,而Dalvik虚拟机则是基于寄存器的。通常来讲,基于寄存器的虚拟机具备更好的性能表现,但硬件通用性上略差。

五、Linux内核(Linux kernel)

    Android系统创建在Linux 2.6之上的,Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此以外,Linux内核也是系统硬件和软件叠层之间的抽象层。

相关文章
相关标签/搜索