关于Android的详细信息,如果你英文很好的话,建议直接去看它的SDK文档。现在我也是根据SDK来总结下,它的一些基本概念。

Android的主要依赖Linux内核。Linux内核应该来说是一个广泛认可并且稳定的。那么Linux充当Android的后勤部长的角色。也就是为Android提供了硬件抽象层,这样便于将Android移植到更多的平台上。

从内部上看,Android使用Linux完成其内存管理、进程管理、网络和其他操作系统服务工作。最近有信息表明Google已经有开发Android手机了。这样也加大了Android的宣传。在这里我就不将Android的系统构架图链接过来了,想了解的直接去google上面搜索下吧.

接下来再看看Android的一些库,下面的库是本机库

Linux内核层上面的一层中包含了Android的本机库。这些共享库都是使用C或C++语言编写的,并且针对电话使用的特定硬件架构进行了编译,并已由手机制造商预先安装到手机中。

1. 界面管理器(Surface Manager)。Android使用与Visita或Compiz类似的组合窗口管理器,但是它要更简单一些。它并不是将显示内容直接绘制到屏幕缓冲区中,而是将绘制命令传递给屏幕外的位图,然后将该位图与其他位图组合起来,形成用户看到的显示内容。这种方法允许系统实现所有有趣的效果。

2. 2D和3D图形。 使用Android时候,二维和三维元素可结合到一个用户界面中。

3. 媒体编解码。 Android可播放视频内部,并可用各种格式录制和播放音频,兼容的格式有:AAC、AVC(H.264)、H.263、MP3和MPEG-4.
4. SQL数据库。 Android提供了轻量级的SQLite数据库引擎,使用该引擎可在应用程序中持续存储。

5. 浏览器引擎。为了保证快速显示HTML内容,Android使用了WebKit库。Google Chrome浏览器、苹果的Safari浏览器等。

大家都知道Java有JVM,那么Android运行呢?
在Linux内核层上面还有一个Android运行时的层,该层包括Dalvik虚拟机以及Java核心库。
Dalvik虚拟机是Google的Java的实现(就像Sun的JVM一样),专门针对移动设备进行了优化。为了Android编写的所有代码使用的都是Java语言,这些代码都在虚拟机中运行。

下面看看Dalvik和JVM的不同之处。
1. Dalvik VM 运行.dex文件,即编译时会将标准的.class和.jar文件转换为.dex文件。.dex文件比类文件更加紧凑并且更高效,这是针对运行Android的设备内存有限且通过电池供电的特点所作出的重要的改进。

2. Android附带的Java核心库与Java SE库和J2ME库不同。但是,它们之间很大一部分还是一样的。

Android应用程序框架

位于本机类库和运行时上面的是应用程序框架层。该层提供了在创建应用程序时需要使用的各种高级构建块。该框架已随Android一起安装,开发人员也可以根据需要使用自己的组件扩展该框架。该框架最重要的部分有以下5部分:
1. 活动管理器。 该管理器控制应用程序的生命周期,同时维护一个公共的“后退栈”供用户导航。
2. 内容提供者。 这些对象封装需要在应用程序之间共享的数据
3. 资源管理器。 资源是程序中涉及的任何非代码内容。
4. 位置管理器。 Android手机始终知道目前所处的位置
5. 通知管理器。 像收到短信、临近预约时间、临近状态报警、异常入侵等等时间都可以通过友好的方式通知用户。

不过Android有一个不同一般的系统认识的地方。那就是进程不等于应用程序

从内部看,每个用户界面窗口都是通过一个Activity类表示的,而每个活动activity都有其自己的生命周期。一个应用程序就是一个或者多个活动加上包含这些活动的Linux进程。
注意:在Android中,你kill一个进程,但是相应的应用程序可能还是"live"。
也就说,活动的生命周期与进程的生命周期没有关系。进程只是各种活动的一个随意使用的一个容器。这一个点和其他的系统中的情况不大应用。因此大家要注意。有时间在好好看看Android应用程序生命周期。



更多相关文章

  1. 在代码中实现android:tint效果
  2. 《Android(安卓)Dev Guide》系列教程1:什么是Android?
  3. Android(安卓)NDK 入门
  4. android SQLite 使用实例
  5. Android判断网络状态是否断开+Android完全关闭应用程序+ 本文讲
  6. Android动画机制与使用技巧
  7. 【Android】Android中shape的使用
  8. Android中的Shape和Selector的结合使用实例
  9. android:shape的使用

随机推荐

  1. 简述修改logo以及文字
  2. 关于Android锁屏的问题
  3. android中的数据库操作
  4. Android学习指南基础--第一讲:Android开发
  5. Android
  6. 腾讯面试官:了解Java Binder中的系统服务
  7. Android控制文字水平间距android:letterS
  8. 【Android布局】在程序中设置android:gra
  9. [置顶] Android(安卓)开发资源
  10. [Android(安卓)Develop_003]-Android(安