
Google终于放出了Android SDK (http://code.google.com/android)。YouTube上放了几段录像,有一个叫做Androidology的,分为3个部分,介绍了整个Android系统的架构、应用程序的生命周期等,非常详细。还有一段录像是Andorid的开发团队做的简单介绍。Android是Danger公司的研发成果,这家公司在2005年被Google买了下来。
Android使用了Linux作为内核,原因之一是Linux已经被证明对于硬件的驱动支持的很好,可以方便得移植到不同的硬件平台上。在内核层之上,是Library层,这一层主要是由C/C++编写的核心库程序,包括了:
- Surface Manager, 维护所有界面的管理程序
- OpenGL/ES,支持3D界面的渲染,根据介绍,在Android上运行的应用程序可以同时使用2D和3D效果渲染。
- SGL,支持2D渲染,这也是应用程序使用的最最最多的渲染方式。
- Media Framework,这是由开放手机联盟中的一家公司支援的媒体框架,可以支持mpeg,mp4等解码。
- FreeType,貌似是字体的支持
- SSL,不用说了,安全连接协议
- SQLite,Android的许多核心数据都是通过这个来保存的。
- WebKit,开放的浏览器核心,Mac上的Safari也是从这发展起来的。
- libc,接触过Linux的都久仰大名
同Library层并列的是Android Runtime (也就是所谓的运行时环境,这个“常见”的中文译名总是令初学者满脑子问号……)。Runtime包括了Dalvik VM和Core Libraries。Android平台上应用程序的开发是以Java为工具,最终编译为dex文件安装到移动设备上。之所以不直接采用class/JAR文件,肯定是出于效率的考量。为了提高字节码的运行速度,Android提供了自己的字节码解释器,针对运行效率做了很大的优化。所有的应用程序都在编译期间转化为dex格式。
再往上走是由Google或是其它公司提供的Application Framework (应用程序框架),这里开始就完全是Java的世界了:
Google共享了相当多的类库,下载的SDK中可以看到不少com.google.android开头的class,从Package Manager的列表中可以窥其一斑。
- Activity Manager
Activity主要是提供了一个用户动作的接口,实际上可以理解为一个UI,例如,一个Email程序可以分解为3个主要的activity——邮件列表,单个邮件和邮件回复窗口。 - Package Manager
主要提供了Andorid系统中安装的所有程序的管理 - Window Manager
顾名思义,就是管理窗口的咯。 - Telephony Manager
移动设备的基本功能就是TAPI,这里主要就是实现了电话的功能 - Content Provider
根据设计,许多程序可以在context范围内共享数据,例如通讯录、名片就是可以作为content被管理的,可以被多个应用程序访问。 - Resource Manager
所有应用程序的外部资源,如图片、国际化文字等,都被它管理。 - View System
不详…… - Location Manager
支持Map Service的 - Notification Manager
Andorid手机顶部出现notification,所有的incoming short message、voice mail都以统一的格式出现在这里。 - XMPP Service
只要是android的用户就可以通过这项服务知道对方的位置。
Google共享了相当多的类库,下载的SDK中可以看到不少com.google.android开头的class,从Package Manager的列表中可以窥其一斑。
最高一层就是Applications,即应用层。所有的主要入口,包括Home、Contacts、Phone等都在这里。程序员自己开发的程序也大部分都集中在这里。
Google提供的SDK甚至包括了Eclipse Plugin。兴奋ing~SDK的目录结构很简单,主要包括了src, tools和doc三个文件夹,见名知意。tools无疑是最吸引人的:
有时间慢慢研究一把,今天只玩了emulator,贴几张图瞅瞅。
> dir android_sdk_windows_m3-rc20a\tools
- aapt.exe
- acp.exe
- adb.exe
- aidl.exe
- emulator.exe
- mksdcard.exe
- activityCreator.bat
- ddms.bat
- dx.bat
有时间慢慢研究一把,今天只玩了emulator,贴几张图瞅瞅。
评论