对于手持装置的开发者来说,「Android」是个先进的平台。平台上的应用程序可相容于各种型号的 Android 手机,免去为各种不同手机机型开发的困扰。「Android」平台支援各种先进的网路、绘图、3D 处理能力,可以用来提供更好的使用者体验。[4]
对于使用者来说,「Android」是一个用于手机的操作系统。使用者只要先申请一个免费的 Google 帐户,当使用者想换一台手机时,就可以在不同厂牌,同样使用「Android」操作系统平台的手机之间选择,并且很容易地将如联络簿等个人资料转换到新手机上。[4]
Android 在 Linux 核心的基础上,提供了各种合用的函式库,和一个完整的应用程序框架。并采用较符合商用限制的 Apache 版权。在 Linux 核心的基础上提供 Google 自制的应用程序运行环境 (称作 Dalvik,与 Sun 的 J2ME 不同),并提供基于 Eclipse 整合开发环境(IDE)的免费、跨平台(Windows、Mac OS X、Linux)开发工具(SDK),便于应用程序开发者学习、使用。[4]
android的开发不单单只是android手机应用的开发。
如图2。1-1首先从最上面看:application 分为两种,一种时我们系统自带的应用程序,电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置;另外一种就是互联网公司以及其他公司开发的自定义的应用程序,开发上层的界面应用程序也就是我们最熟悉的可以直接在手机看到的应用程序,他的开
图2。1-1 Android框架
发语言使用的时JAVA语言进行的开发,大部分开发人员使用的开发工具:集成ecplise adt-bundle另外一款就是比较新的android studio两款工具进行开发。
第二层开发时 application framework 框架层,他也是使用java语言进行的开发,他的开发基本都是一些手机厂商定制自己的一些功能与组件 。
第三层开发就是C库的开发主要的作用就是对 在这里厂商比较多的开发就是书写一些自己的算法库,还有就在3层与4层之间许多厂商为了避免自己的程序遵循开源协议自是视频,音频的优化等功能,比如openGL 2D 3D引擎库等。定义的一层叫做HAL层 简称hardware abstract layer 这一层时驱动层的抽象,定制一些自己写的驱动对上层提供接口的功能。
Android运行环境:Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是。dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。 大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以将 Java 。class 转换成 。dex 格式。一个dex文件通常会有多个。class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。 Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。
Linux Kernel:Android基于Linux 2。6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。 如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(ServiceAccess Point),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解Linux Kernel层。[5] 基于Android平台开发的音乐播放器设计(3):http://www.youerw.com/jisuanji/lunwen_86820.html