什么是Android?
Android 是一个专门针对移动设备定制的软件堆栈,包括一个操作系统,中间件和一些重要的应用程序。本节对 Android SDK 的大致介绍提供了使用 JAVA 编程语言在 Android 平台上开发应用程序的工具链和必要的 API 接口。
Android 特性
·应用程序框架 支持组建的重用与替换
·Dalvik虚拟机 专门为移动设备做了优化
·内部集成浏览器 该浏览器基于开源的WebKit 引擎
·优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选)
·#SQLite 用作结构化的数据存储
·多媒体支持 包括常见的音频、视频和静态印象文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
·GSM电话 (依赖于硬件)
·蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)
·照相机,GPS,指南针,和加速度计 (依赖于硬件)
·丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
Android 架构
下图显示的是Android操作系统的主要组件。每一部分将会在下面具体描述。
Android 应用程序
Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。
Android 应用程序框架
开发者也完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组建可以被用户替换。
以下所有的应用程序都由一系列的服务和系统组成,包括:
·一个可扩展的视图(Views )可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器
·内容管理器(Content Providers )使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
·一个资源管理器 (Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件( layout files )。
·一个通知管理器 (Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
·一个活动类管理器 (Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考 写一个 Android 应用程序 部分。
Android 程序库
Android 包括一个被 Android 系统中各种不同组件所使用的 C/C++ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:
系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ),专门为基于 embedded linux 的设备定制。
媒体库 - 基于 PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。
Surface Manager - 对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore - 一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。
SGL - 一个内置的2D图形引擎
3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
FreeType - 位图(bitmap)和向量(vector)字体显示。
SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系行数据库引擎。
Android 运行库
Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。
Linux 内核
Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。
相关阅读 android studio如何导入项目 android studio导入项目教程android studio怎么删除项目 android studio删除项目方法android studio怎么生成apk android studio打包apk教程android studio如何导入jar包 android studio导入jar包教程android studio快捷键如何设置 android studio快捷键设置方法android studio快捷键大全 android studio有哪些快捷键android8.1新特性有哪些 android8.1新特性介绍android8.0和ios11哪个好 android8.0和ios11功能对比评测
热门文章 电视盒子怎么看百度云迅雷9怎么关闭右侧 迅迅雷99.99下载不完怎么网易云音乐怎么上传歌
最新文章
2022支付宝万能福扫福微信迎新春状态怎么设
微信小老虎头像怎么设置 微信ID后面设置小老抖音压岁钱卡怎么获得2022 抖音压岁钱获取方微博隐私保护怎么设置 微博隐私保护功能完善今日头条2022年集卡活动开启时间 今日头条2
人气排行 智学网怎么登录 智学网怎么查分数 智学网统教你怎么写电子邮箱格式?以163和QQ邮箱为例腾讯大王卡用了后悔怎么办 腾讯大王卡值得办缺少或丢失xinput1_3.dll解决方法,xinput1应用程序无法正常启动0xc000007b解决方法快播关闭怎么办?快播不能用了怎么看片将pdf文件转换为word文件的最简单方法如何破解QQ空间密码和权限
查看所有0条评论>>