1、提供应用程序框架(Framework)

开发者可以遵照这些框架搭建应用程序读者可以结合J2SE平台的Applet框架或J2ME平台的移动信息设备套件框架来理解Android平台的应用程序框架。

每个开发者估计都纠结过平台和框架的概念,特别是对新手而言,平台和框架似乎总是前辈们口头上惯用的、玄而又玄的名词。实际上,读者可以把平台理解为舞台,其强调了事物的支持特性,有如舞台具有支撑舞者在其上进行表演的特性。同样,Android平台具有支持Android应用程序运行的特性,具体表现在运行时(Runtime)环境和接口,API常见的平台还有Windows平台、Linux平台等。框架可以理解为骨架,其强调了事物的可重用性。众所周知,人类无论高矮胖瘦、美丑强弱,其骨架都是相似的。反之,使用一个人类的骨架模型,可以塑造出不同的人体模型。

同样,在软件开发过程中,使用框架可以开发出界面各异的、某一类应用程序。例如,使用微软公司的MFC框架可以快速地开发出一套运行于Win32平台的应用程序。框架的具体表现为一组协同工作的类,如界面组件类、事件处理类、网络通信类等。比较流行的框架有.Net、Qt、MFC、VCL等,借助这些框架,开发者可以高效地开发出应用程序。简而言之,框架帮助android应用程序的开发,平台支持应用程序的运行,框架建立在平台之上。

2、定制的Dalvik虚拟机

读者可以结合J2SE平台的Java虚拟机(Java Virtual Machine,ⅣM)和J2ME平台的千字节虚拟机(Kilo—bytes Vh-tual Machine,KVM)来理解Dalvik虚拟机。其所遵照的技术规范可能与一般意义上的Java虚拟机不同。Dalvik虚拟机所支持的字节码(Byte Code)是“dex”文件(Dalvik Executable),也就是说Dalvik不支持通常的Java类文件(class文件)字节码。

3、集成了基于Webkit开源项目的浏览器

Webkit是一个开源项目,其主要由K桌面环境(K DesktopEnvironment,Ⅺ)E)的KHTML修改而来,并且包含了一些来自苹果公司的一些组件。传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaCore,它们分别对应的是KDE的KHTML和KJS。不过,随着Java引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分。GooSe公司开发的网页浏览器产品Google Chrome就是基于WebKit开源代码,并自行开发出称为“V8”的高性能Java引擎。读者可以将Android平台的浏览器视为C11rome的移动设备版本。

4、2D和3D图形引擎

2D图形引擎基于SGL,3D图形引擎基于OpenGL ES 1.0规范。Skia图形库是一套用于绘制文本、几何图形和图片的完整的2D图形库。OpenGL ES 1.0是基于OpenGL 1.3规范来定义的,同时增强了软件渲染和基本的硬件加速功能。

Android开发教程:开发框架基本原理的更多相关文章

  1. Android开发教程大全介绍

    Android是由谷歌在2007年推出的一个开放系统平台,主要针对移动设备市场,目前版本为Android 4.0.Android基于Linux,开发者可以使用Java或C/C++开发Android应用 ...

  2. ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView

    原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...

  3. ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map

    原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...

  4. ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置

    原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...

  5. ArcGIS Runtime for Android开发教程V2.0(1)基本概念

    原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csd ...

  6. 【Android 开发教程】动态添加Fragments

    本章节翻译自<Beginning-Android-4-Application-Development>,如有翻译不当的地方,敬请指出. 原书购买地址http://www.amazon.co ...

  7. 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。

    AndroidDevTools Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具.An ...

  8. [Android开发教程]Android官网developer training中文版教程 - 1.1.1 创建一个Android项目

    本系列持续更新中.转载请注明来源. 前言:近期打算系统学习一下Android开发,发现Android官网上的developer training也是个非常好的学习资料,于是想到一边学习一边写一个中文版 ...

  9. Android开发教程AnimationDrawable逐帧播放动画

    下面我们一起来看篇Android开发AnimationDrawable控制逐帧播放动画实现过程,希望文章对各位朋友带不一些帮助. 当我们点击按钮时,该图片会不停的旋转,当再次点击按钮时,会停止在当前的 ...

  10. Android开发教程之【环境搭建及HelloWorld】(转载)

    引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始A ...

随机推荐

  1. springmvc异步处理

    好久没有写过博客了,都是看大牛的文章,略过~~ 突然感觉成长在于总结!废话不多说,开干 由于是公司项目,所以不方便给出代码,看图操作 在项目util目录下创建工具类TaskExecutorConfig ...

  2. 发布一个自己的jar包给全球人使用

    目录 项目准备 sonatype 注册 申请sonatype工单 gpg配置 项目配置 依赖oss-parent 自定义配置 pom配置 全局settings配置 发布 验证 maven 项目对于我们 ...

  3. 《机器学习基石》---VC维

    1 VC维的定义 VC维其实就是第一个break point的之前的样本容量.标准定义是:对一个假设空间,如果存在N个样本能够被假设空间中的h按所有可能的2的N次方种形式分开,则称该假设空间能够把N个 ...

  4. https理论及实践

    什么是https协议? http协议以明文的方式在网络中传输,安全性难以保证,https在http协议的基础上加入SSL/TLS层.TLS是SSL协议的最新版本,SSL使用SSL数字证书在通信两端建立 ...

  5. LD_PRELOAD和ld --wrap

    前言 LD_PRELOAD和ld --wrap都能实现不修改原始代码,替换指定函数的实现.通常我们会使用这些方法,替换如malloc)()/free().read()/write()等函数,并在替换函 ...

  6. Go语言-基本的http请求操作

    Go发起GET请求 基本的GET请求 //基本的GET请求 package main import ( "fmt" "io/ioutil" "net/ ...

  7. 给定n个十六进制正整数,输出它们对应的八进制数。

    问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转 ...

  8. 原生js之Math对象

    1.比较方法(常用) Math.min() //求一组数中的最小值 不能是数组,和对象等等. Math.max() //求一组数中的最大值eg:Math.min(5,3,5) // 3 2.取整(常用 ...

  9. 2. Sentinel源码分析—Sentinel是如何进行流量统计的?

    这一篇我还是继续上一篇没有讲完的内容,先上一个例子: private static final int threadCount = 100; public static void main(Strin ...

  10. 特殊字符处理 java-jsp

    public String dealStr(String name){ String newStr=""; if(name != null && name.leng ...