Android开发第一步:认识Android

译文
移动开发 Android
Android现在越来越流行,也越来越吸引开发者,开发Android应用的第一步是应该对这个平台有所认识,这篇文章从开发者的层面对Android进行介绍。

什么是Android?

Android是一个移动设备的软件套件,它包括一个操作系统、中间件和关键应用。Android SDK提供必需的工具和API,并基于java语言开发。

特征

  • 应用程序框架  组件的重用和自定义
  • Dalvik虚拟机  为移动设备优化
  • 一体化浏览器  基于开源的webkit内核
  • 图形优化 提供一个定制的2D图形库,3D图形基于OpenGL(硬件加速可选)
  • SQLite 结构化数据存储
  • 多媒体支持 对通用的音频、视频、图像提供支持
  • GSM技术 (依赖于硬件)
  • 蓝牙,EDGE网络,3G和WiFi (依赖于硬件)
  • 摄像头、GPS、方向和速度传感器 (依赖于硬件)

Android结构示意图

自带应用程序

Android包含一套核心应用程序,如email客户端、SMS程序、日历、地图、浏览器、通讯录以及其它。所有程序都是用java语言编写。

应用程序框架

在Android平台上,开发者可创建华丽而创新的应用。可发挥出硬件能力,利用地理位置信息、后台服务、警告和程序栏通知,以及更多。

开发者与核心应用程序对API享用同样权限。应用程序结构被设计成简化组件重用,应用程序可以开放其功能供其他程序调用(在框架的安全限制内),此机制也允许用户自定义组件。

下列服务和系统享有高优先级:

  • 一系列视图(Views),包括列表、网格、文字框、按钮、甚至是可嵌入的浏览器。
  • 内容提供器(Content Providers),让程序可以连接其他程序或者共享数据。
  • 资源管理器(Resource Manager),提供对非代码的资源的连接,比如局域字符串、图像和布局文件。
  • 通知管理器(Notification Manager),使程序可以展现自定义通知。
  • 活动管理器(Activity Manager),管理程序生命周期并提供通用导航返回栈。

更多细节参见Notepad Tutorial

类库

Android包括一系列C/C++库,这些库被用于很多Android系统组件,它们也能够通过框架被程序调用。

  • 系统C语言库 由BSD衍生的标准C语言系统库,为基于Linux的设备所调整。
  • 多媒体库 基于PacketVideo的OpenCORE框架。支持回放、录制等多媒体功能。
  • 外观管理器(Surface Manager) 管理访问显示子系统和从多模块应用中无缝整合2D和3D的图形
  • LibWebCore 现代浏览器引擎 为浏览器和嵌入式视图提供支持
  • SGL 高优先级的2D图形引擎
  • 3D类库 OpenGL ES API的一个衍生,支持硬件加速和软件优化加速
  • FreeType 位图和矢量字体渲染
  • SQLite 一个轻量的关系型数据库

Android运行时

Android包括Java的一个精简的核心类库,可实现java的多数功能。

每个Android应用程序都有独自的进程和虚拟机,设备可以同时运行多个Dalvik虚拟机,Dalvik虚拟机执行后缀为.dex的文件,这种文件为最小内存占用而优化,此虚拟机是基于寄存器的,运行被dx工具编译为.dex文件的类。

Dalvik依赖于Linux核心,以确保一些高优先级的功能,如线程处理和低级别内存管理。

Linux核心

Android依赖于Linux版本2.6,以提供核心系统服务,如安全、内存管理、进程管理、网络栈和驱动模型。此核心也在硬件和其他程序之间提供一个抽象层。

责任编辑:徐川 来源: 51CTO
相关推荐

2015-10-28 22:25:45

SwiftAndroid应用开发

2021-01-15 18:17:06

网络协议分层

2015-11-03 15:02:23

技术周刊

2009-01-18 08:49:04

Java入门JDK

2012-07-11 16:43:14

飞视美

2015-06-02 11:42:00

Cloud FoundAzure

2018-02-10 11:24:39

Python数据程序

2021-08-24 05:07:25

React

2019-11-20 10:54:46

无密码身份验证网络安全

2020-11-17 14:55:36

亚马逊云科技迁移

2009-06-30 14:44:54

JSP虚拟空间

2012-09-21 10:14:05

Java项目Java开发

2011-07-25 14:17:46

BSMIT运维北塔

2010-07-01 13:44:12

2010-01-21 10:29:54

java认证

2012-08-30 11:14:11

云计算虚拟化

2020-07-22 22:10:34

互联网物联网IOT

2009-06-16 16:31:08

绿色IT数据中心游龙科技

2011-08-31 09:38:36

网络营销MSN社交网络

2020-11-11 07:09:05

隔离直播系统
点赞
收藏

51CTO技术栈公众号