Welcome to Android!

android

一、什么是Android

Android 平台可以说是为移动设备提供的整体软件解决方案,它包括一个操作系统,中间件和应用程序。开发者可以通过Android SDK,用JAVA为Android开发应用程序,应用程序运行在Dalvik上。Dalvik是一个基于Linux内核的虚拟机,专门为嵌入式应用而设计。

二、Android特性

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE 直接复制了Android文档,因为比较简单,我就不翻译了。

三、Android体系构架

Android architecture

四、应用程序

Android自带一组核心应用程序,比如邮件客户端、SMS、日历、地图、浏览器、名片夹等。我们也可以自己开发,开发语言为JAVA。

五、应用程序框架

框架被设计为可以简便的重用组件。比如说,A程序的功能可以被B程序使用,反之亦然。同样道理,程序组件也能够被用户替换为其他组件。 从根本来说,所有的程序都是一套服务和系统组成,包括:

  • 一系列完整的和可扩展的 Views,用于程序开发;有列表,栅格,文本框,按钮和可潜入的web浏览器;
  • Content Providers 让程序访问其他程序(名片夹)的数据或者共享自己的数据;
  • 一个 Resource Manager,用于访问本地资源,比如字符串,图片和版面布局文件;
  • 一个 Notification Manager使程序可以在状态栏显示自定义的通知;
  • 一个 Activity Manager用于管理程序的生命周期和提供一个通用的访问序列栈。

六、库

Android 包含一套 C/C++ 库,这里列出一些核心库:

  • System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
  • Media Libraries - based on PacketVideo’s OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
  • LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
  • SGL - the underlying 2D graphics engine
  • 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • FreeType - bitmap and vector font rendering
  • SQLite - a powerful and lightweight relational database engine available to all applications

直接复制了Android文档,因为比较简单,我就不翻译了。

七、Android Runtime

每个Android程序都有自己的进程,运行在自己的一个Dalvik 虚拟机实例上。Dalvik VM 可执行文件的格式是Dalvik Executable (.dex)。通过“dx”工具将编译后的java classes转换为.dex格式。

八、Linux Kernel

Android 使用Linux 2.6作为核心的系统服务,比如安全,内存管理,进程管理,网络堆栈,驱动模块等。Linux 2.6也作为一个硬件和软件之间的抽象层。