开发者社区> walb呀> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android开发者指南(8) —— What is Android?

简介:
+关注继续查看

Android是什么? (What is Android?)

Android是一个针对于移动设备的软件栈,它包括操作系统,中间件和关键应用程序。Android SDK提供了在Android平台使用Java编程语言进行开发应用程序的必要的工具和API

特性(Features)

应用程序框架(Application framework)  可重用并可替换的组件

Dalvik虚拟机(Dalvik virtual machine) 为移动设备而优化

集成浏览器(Integrated browser) 基于开源的WebKit引擎

优化的图形处理(Optimized graphics) 以定制的2D图形库和基于OpenGLES 1.0规范的3D图形(可选的硬件加速)为基础

SQLite结构化数据存储

媒体支持(Media support) 通用音频、视频,还有图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

GSM电话(GSM Telephony) (依赖硬件)

蓝牙(Bluetooth), EDGE, 3G, and WiFi (依赖硬件)

照相机,GPS,指南针,加速感应器(Camera, GPS, compass, and accelerometer) (依赖硬件)

丰富的开发环境(Rich development environment) 包括设备模拟器,调试工具,内存和性能分析工具和用于Eclipse IDE的插件

Android架构(Android Architecture)

         下图展示了Android操作系统的主要组件。每个组件在下面有更详细的描述。

         

应用程序(Applications)

         Android将配备一系列核心应用程序,包括电子邮件客户端,短信程序,日历,地图,浏览器,通讯录等。所有的应用程序都是使用Java编程语言。

应用框架(Application Framework)

         通过提供一个开放的开发平台,Android提供给开发者建立极其丰富和创新应用的能力。开发者自由地享有硬件设备的优势,访问本地信息,运行后台服务,设置警示,向状态栏添加通知等。

         开发人员可以使用和核心应用程序使用的完全相同的API框架。应用程序架构的设计的目的是为了简化组件的重用;任何应用程序都可以发布它的功能,其他的应用程序可能会利用到这些功能(需遵守框架提供的安全约束)。依靠同样的机制,组件可以被用户所取代。

         底层的所有的应用程序是一组服务和子系统,包括:

一组丰富并且可扩展的view,这组view可以被用来构建一个应用程序,包括列表,表格,文本框,按钮,甚至可嵌入的Web浏览器。

一组Content Providers,可以使应用程序访问其它应用程序的数据(比如通讯录),或者共享自己的数据。

一个资源管理器(Resource Manager),提供对非代码资源的访问,比如本地化的字符串,图形和布局文件。

一个通知管理(Notification Manager),可以使所有的应用程序在状态栏显示定制的提醒。

一个Activity管理(Activity Manager),它管理的应用程序的生命周期,并且提供了一个通用的后台切换栈。

如需了解一个应用程序的详细信息和具体示例,请参考Notepad代码示例(Notepad Tutorial)

(Libraries)

         Android包括了一套C/C++库,这套库被Android系统的各个组件使用。通过Android的应用框架,这些功能被开放给开发者。其中的一些核心库如下:

系统C(System C library) - 一个继承自BSD的标准C系统实现(libc),被调整成面向基于linux的嵌入式设备。

媒体库(Media Libraries) - 基于PacketVideo的的OpenCore;该库支持回放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4H.264MP3AACAMRJPGPNG格式。

Surface管理器(Surface Manager) - 管理显示子系统,并能无缝地组合多个应用的2D3D图像层。

LibWebCore - 一个流行的Web浏览器引擎,它对Android浏览器和嵌入式Web视图具有良好的支持。

SGL - 底层的2D图形引擎。

FreeType - 位图和矢量字体渲染。

SQLite - 所有的应用程序使用并且强大而轻量级的关系型数据库引擎。

运行时(Android Runtime)

         Android包括一个核心库的集合,她们提供了Java编程语言的核心库中的绝大多数功能。

         每一个Android应用都在她自己的进程中运行,该进程也属于某个Dalvik虚拟机的实例。Dalvik被设计成能让设备高效地运行多个虚拟机。 Dalvik虚拟机执行的是.dex结尾的Dalvik可执行文件格式,该格式被优化为最小内存使用。虚拟机是基于寄存器的,并且运行那些Java编程语 言所编译的类,这些类被内置的dx工具转换为.dex格式。

         Dalvik虚拟机依赖Linux内核来提供底层的功能,比如线程和低级内存管理。

Linux内核(Linux Kernel)

         Android依赖Linux 2.6来提供核心系统服务,比如安全、存储管理、进程管理、网络栈和驱动模型。该内核同时扮演着介于硬件和软件栈的其余部分之间的一个抽象层。

本文转自博客园农民伯伯的博客,原文链接:Android开发者指南(8) —— What is Android?,如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Code For Better 谷歌开发者之声——Android 中的 Volley 库
Volley是一个HTTP 库,它使 Android 应用程序的网络变得非常简单和快速。它由 Google 开发并在 2013 年 Google I/O 期间推出。它的开发是因为 Android SDK 中缺少能够在不影响用户体验的情况下工作的网络类。尽管 Volley 是 Android 开源项目 (AOSP) 的一部分,但 Google 在 2017 年 1 月宣布 Volley 将迁移到一个独立的库。它管理网络请求的处理和缓存,并节省开发人员一次又一次编写相同的网络调用/缓存代码的宝贵时间。Volley不适合大型下载或流式操作,因为 Volley 在解析期间将所有响应保存在内存中。
0 0
全面复盘Android开发者容易忽视的Backup功能(2)
全面复盘Android开发者容易忽视的Backup功能(2)
0 0
全面复盘Android开发者容易忽视的Backup功能(1)
全面复盘Android开发者容易忽视的Backup功能(1)
0 0
Android 13 亮相谷歌I/O大会,OPPO 首批推出开发者预览版
Android 13 亮相谷歌I/O大会,OPPO 首批推出开发者预览版
0 0
开发者曝 Android 13 “彩蛋”功能!虚拟化支持运行 Windows 11 和桌面版 Linux
开发者曝 Android 13 “彩蛋”功能!虚拟化支持运行 Windows 11 和桌面版 Linux
0 0
微软正式发布 Windows 11,支持 Android 应用,面向开发者友好
微软正式发布 Windows 11,支持 Android 应用,面向开发者友好
0 0
面向Android开发者的Dart学习教程
近日Google发布了Flutter2.0, 使用Flutter开发的App可以在不做修改的情况下发布到更多的主流平台;再加上早些时候Fuchsia也宣布将Dart作为主要的UI开发语言,如果未来你想
0 0
Android开发者值得深入思考的几个问题,薪资翻倍
Android开发者值得深入思考的几个问题,薪资翻倍
0 0
为开发者总结了Android ADB 的常用十种命令
ADB的全称为Android Debug Bridge,就是起到调试桥的作用。ADB是一个 客户端-服务器端的程序, 其中客户端是你用来操作的电脑, 服务器端是Android设备。ADB 是Android SDK里的一个工具,用这个工具可以直接管理Android模拟器或者真实的Android设备 。
0 0
【广告接入】Android 应用接入有米广告积分墙 ( 注册有米云账号 | 首次登录设置开发者信息 | 添加应用 )
【广告接入】Android 应用接入有米广告积分墙 ( 注册有米云账号 | 首次登录设置开发者信息 | 添加应用 )
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android插件化:从入门到放弃
立即下载