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. JavaWeb——使用会话维持状态2

    在这次的例子里面,将完成一类似购物车的功能,在客户访问网站的时候,会选中自己将要购买的商品,而购物车将始终维持着商品的状态,会话将联系起选择第一个商品(第一个请求),选择其他商品(其他请求)以及付款等 ...

  2. 链表:如何实现LRU缓存淘汰算法?

    缓存淘汰策略: FIFO:先入先出策略 LFU:最少使用策略 LRU:最近最少使用策略   链表的数据结构: 可以看到,数组需要连续的内存空间,当内存空间充足但不连续时,也会申请失败触发GC,链表则可 ...

  3. ABAP_增强点查找

    *&---------------------------------------------------------------------* *& Report Z_FIND_EN ...

  4. 6个美观的纯CSS渐变背景代码分享(亲测有效)

    样式1 background-image: linear-gradient(160deg, #b100ff 20%,#00b3ff 80%); 样式2 background-image: linear ...

  5. 垂直渐变的Button

    public partial class RoundButton : Button { Rectangle r; private Brush _myBrush = null; , , ); , , ) ...

  6. python匿名函数的介绍及用途

    匿名函数 用lambda能够创建一个匿名函数,这中函数得名于省略了用def声明函数的标准步骤. 语法 lambda [arg1 [,arg2,.....argn]]:expression 如何使用 我 ...

  7. 实测win10 efi启动及centos7双系统引导顺序修改

    安装win10 安装win10过程中,系统自动建立esp分区,分区格式为FAT16,目录如下 1,EFI/Boot文件夹保持不动 删除 EFI/Microsoft/boot/ 文件夹下面除BCD文件外 ...

  8. 【记忆化搜索】掷骰子 hpuoj

    B. 掷骰子 单点时限: 2.0 sec 内存限制: 512 MB 骰子,中国传统民间娱乐用来投掷的博具,早在战国时期就已经被发明. 现在给你 n 个骰子,求 n 个骰子掷出点数之和为 a 的概率是多 ...

  9. maven出现:Failed to execute goal on project ...: Could not resolve dependencies for project ...

    项目结构是一个父项目,多个子项目目录: 例如: common --------------(父项目) fristDemo    ------------(子项目) 如果在子项目中调用了父项目,而对(子 ...

  10. SSH开发模式——Struts2(第三小节)

    struts2框架的知识点,虽然分了几个小节,感觉内容还是挺多的,但是你仅仅是入门了而已,想要进一步地提升自己,你得有一颗持之以恒的学习的心,最后的内容我都将在这篇博客中讲到,所以篇幅可能会有点长,希 ...