`
weishuwei
  • 浏览: 322179 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

什么是 Android

阅读更多

  译文如下: 有些术语和一些模棱两可的地方就不翻译了, 不过我尽量做到通俗易懂, 希望大家多多支持.

什么是 Android?

Android 是一组用于移动设备的软件套件, 它包含了一个操作系统, 一些中间件和关键的应用. Android SDK 提供了基于工具和API 来是开发人员通过使用java 来开发基于Android 平台的应用程序.

功能(Features):
(1)
应用程序框架可以复用并且可以自己写组件来替换默认组件
(2)
针对移动设备而优化的Dalvik 虚拟机(Dalvik virtual machine)
(3)
整合了基于开源的WebKit 引擎的浏览器
(4)
通过定制的2D 图像库提供了强劲的图像处理能力,3D 图像处理基于OpenGL ES 1.0 规范( 硬件加速可选)
(5)
通过SQLite 来提供结构化的数据存储.
(6)
多媒体支持( 常见音频, 视频和一些图片格式,MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
(7)GSM
电话( 依赖于硬件)
(8)
蓝牙,EDGE,3GWiFi 支持( 依赖于硬件)
(9)
照相机,GPS 定位系统, compass, accelerometer 加速计支持( 依赖于硬件)
(10)
丰富的开发环境, 包括一个设备仿真器, 调试工具, 内存和性能检测工具和基于Eclipse 的插件工具.

Android 架构(Android Architecture):

以下的图片展示了Android 操作系统的主要组件, 每一环节都会在后面详细解释.

Android System Architecture

应用程序(Applications):

Android 搭载了一组核心应用, 包括邮件客户端, 短信程序, 日历, 地图, 浏览器, 通讯簿和其它一些常见的应用, 所有的这些应用都是基于java 开发的.

应用程序框架(Application Framework):

开发人员可以全面存取通过核心应用开发的框架, 该架构被设计的更加简单并且方便组件重用, 任何一个应用可以发布它的功能, 并且其它应用程序有可以使用这些功能( 框架对于权限安全方面已经做了限定) 这个相同的机制允许用户使用自己的组件替换原来的组件

以下所有的应用是一组服务和系统, 包括:

  • 一些用于创建应用的丰富的可扩展的视图Views, 包括 列表lists, 网格 grids, 文本框text boxes, 按钮buttons, 甚至是可嵌入的web 浏览器.
  • 内容提供者Content Providers 使应用可以通过其它应用程序获取数据( 比如通讯簿等), 或者共享它们自己的数据
  • 资源管理器Resource Manager , 提供访问本地非程序的资源的能力, 比如本地化字符串, 图片, 和布局文件
  • 消息通知管理器Notification Manager 使所用的应用程序可以在状态栏显示定制的警告信息
  • 作业活动管理器Activity Manager 管理着应用程序的生存周期, 并且提供了 返回操作 的导航操作

更多的详情and a walkthrough of an application, see the Notepad Tutorial .

(Libraries):

Android 包含了了一组用于各种各样组件的C/C++ 的库, 这些能力通过Android 框架曝露给了开发人员, 下面列出了一些核心的类库:

  • 系统CSystem 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 包含了一组核心类库, 并且提供了许多可用的功能.

每一个Android 应用都携带者他自己的Dalvik 虚拟机以进程方式单独运行.Dalvik 被设计出来就是满足设备可以高效的运行多个虚拟机的需求. Dalvik 虚拟机执行在Dalvik 中的 *.dex 格式的文件which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.

The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

Linux 内核(Linux Kernel):

Android 依赖于linux2.6 版本, 通过linux2.6 来实现核心系统服务, 例如安全, 内存管理, 进程管理, 网络堆栈, 和驱动模型. 该内核还在硬件和应用软件间作为一个衔接的桥梁.

分享到:
评论

相关推荐

    新版Android开发教程.rar

    什么是 Android? Android? Android? Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 ...

    [14本经典Android开发教程]-3-Android SDK 中文开发文档

    什么是 Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的 Android SDK 提供了在Android 平台上使用JaVa语言进行Android应用开发必须的工具和API接口。 ...

    Android SDK中文开发文档 pdf 

    Android开发教程:Android SDK中文开发文档 pdf版电子书下载,介绍什么是 Android?Android特性及架构,Android应用程序框架和程序库,Android 运行库和Linux内核,如何安装配置Android SDK、建立应用程序签名、移植...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    什么是 Android? Android是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 ...

    免费下载-Android SDK 中文开发文档

    什么是Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的Android SDK 提供了在Android 平台上使用JaVa语言进行Android应用开发必须的工具和API接口。 ...

    Android框架揭秘.pdf

    《Android框架揭秘》通过对Android系统源代码的分析,主要介绍Android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了Android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成...

    Android组件设计思想

    这样就可以在组件再次需要使用时,原地满血复活,就像什么都没发生过一样。这种设计思想非常适合内存较小的移动设备。理解Android组件设计思想,对Android应用程序架构会有更好的认识。这一节讲Android组件化设计的...

    Android串口通信(Android Studio)

    Android串口通信(Android Studio) serial Port 简单的demo 好久之前整的

    android应用开发范例精解

    第2篇为应用开发篇,通过实例介绍了Android UI布局、Android人机界面、手机硬件设备的使用、Android本地存储系统、Android中的数据库、多线程设计、Android传感器、Android游戏开发基础、Android与Internet,以及...

    Android BLE蓝牙例子(包括android版Lightblue)实例源码

    源码里面有Bluetooth4_3/BLEDemo/Android_Lightblue.apk三个.前两个是BLE的demo。BLEDemo这个功能较Bluetooth4_3多一些,有兴趣的可以都看下。Android_Lightblue.apk是Android版的lightblue,在进行ble开发的时候用...

    Android 7.1.1 (API 25) SDK Platform 下载

    # mv /opt/android-sdk/platforms/android-25/android-7.1.1/* /opt/android-sdk/platforms/android-25/ # rm -rf /opt/android-sdk/platforms/android-25/android-7.1.1 官网下载地址:...

    android source 2.2(android-8)

    android-2.2 source文件 eclipse中绑定android源码的方法 1.下载android-2.2 source 2.解压放在android.jar所在目录的sources里即可(注意是sources而非source)。 比如我android.jar所在目录为 D:\android-sdk...

    Android Studio实战 快速、高效地构建Android应用

    《Android Studio实战 快速、高效地构建Android应用 全面涵盖关于Android Studio及其庞大工具生态系统的内容,包括Git和Gradle:除了介绍Android Studio与Git(用于源代码管理)和Gradle(一款构建及测试工具)的无缝...

    Android support.v7包

    Android support.v7包

    Android扫雷游戏(基于Android Studio)

    基于Android平台的扫雷小游戏,使用Android Studio开发,附有简单注释,适用于初步掌握Android技术的程序猿们!

    Android 8.0.0 (API 26) SDK Platform

    使用: export ANDROID_HOME="/opt/android-...# mv /opt/android-sdk/platforms/android-8.0.0 /opt/android-sdk/platforms/android-26 官网下载地址:https://dl.google.com/android/repository/platform-26_r01.zip

    android Gridview分页实现

    android Gridview分页实现的一个小例子

    Android40个经典源码

    1 Android PDF 阅读器源码 2 Android Txt文本阅读器源码 3 Android SqliteManager 源码 4 Android 个人记账程序源码 5 android 多点触控实例源码 6 android 画图程序 7 Android 手电筒源码 8 Android 天气预报加...

    Android BLE开发之Android手机与BLE终端通信 程序文件

    Android 4.3才开始支持BLE API,所以请各位客官把本文代码运行在蓝牙4.0和Android 4.3及其以上的系统,另外本文所用的BLE终端是一个蓝牙4.0的串口蓝牙模块。 PS:我的i9100刷了4.4系统后,竟然也能跟BLE蓝牙模块通信...

    JS调用Android方法,向Android方法传递json数据

    JavaScript调用Android方法,向Android方法传递json数据。

Global site tag (gtag.js) - Google Analytics