关于Android的详细信息,如果你英文很好的话,建议直接去看它的SDK文档。现在我也是根据SDK来总结下,它的一些基本概念。
Android的主要依赖Linux内核。Linux内核应该来说是一个广泛认可并且稳定的。那么Linux充当Android的后勤部长的角色。也就是为Android提供了硬件抽象层,这样便于将Android移植到更多的平台上。
从内部上看,Android使用Linux完成其内存管理、进程管理、网络和其他操作系统服务工作。最近有信息表明Google已经有开发Android手机了。这样也加大了Android的宣传。在这里我就不将Android的系统构架图链接过来了,想了解的直接去google上面搜索下吧.
接下来再看看Android的一些库,下面的库是本机库
Linux内核层上面的一层中包含了Android的本机库。这些共享库都是使用C或C++语言编写的,并且针对电话使用的特定硬件架构进行了编译,并已由手机制造商预先安装到手机中。
[b]1. 界面管理器(Surface Manager)。[/b]Android使用与Visita或Compiz类似的组合窗口管理器,但是它要更简单一些。它并不是将显示内容直接绘制到屏幕缓冲区中,而是将绘制命令传递给屏幕外的位图,然后将该位图与其他位图组合起来,形成用户看到的显示内容。这种方法允许系统实现所有有趣的效果。
[b]2. 2D和3D图形。[/b] 使用Android时候,二维和三维元素可结合到一个用户界面中。
[b] 3. 媒体编解码[/b]。 Android可播放视频内部,并可用各种格式录制和播放音频,兼容的格式有:AAC、AVC(H.264)、H.263、MP3和MPEG-4.
[b] 4. SQL数据库。[/b] Android提供了轻量级的SQLite数据库引擎,使用该引擎可在应用程序中持续存储。
[b]5. 浏览器引擎。[/b]为了保证快速显示HTML内容,Android使用了WebKit库。Google Chrome浏览器、苹果的Safari浏览器等。
大家都知道Java有JVM,那么Android运行呢?
在Linux内核层上面还有一个Android运行时的层,该层包括Dalvik虚拟机以及Java核心库。
Dalvik虚拟机是Google的Java的实现(就像Sun的JVM一样),专门针对移动设备进行了优化。为了Android编写的所有代码使用的都是Java语言,这些代码都在虚拟机中运行。
下面看看Dalvik和JVM的不同之处。
[b]1. Dalvik VM 运行[/b].dex文件,即编译时会将标准的.class和.jar文件转换为.dex文件。.dex文件比类文件更加紧凑并且更高效,这是针对运行Android的设备内存有限且通过电池供电的特点所作出的重要的改进。
[b]2. Android附带的Java核心库与Java SE库和J2ME库不同[/b]。但是,它们之间很大一部分还是一样的。
[b]Android应用程序框架[/b]
位于本机类库和运行时上面的是应用程序框架层。该层提供了在创建应用程序时需要使用的各种高级构建块。该框架已随Android一起安装,开发人员也可以根据需要使用自己的组件扩展该框架。该框架最重要的部分有以下5部分:
[b]1. 活动管理器。[/b] 该管理器控制应用程序的生命周期,同时维护一个公共的“后退栈”供用户导航。
[b]2. 内容提供者。[/b] 这些对象封装需要在应用程序之间共享的数据
[b]3. 资源管理器。[/b] 资源是程序中涉及的任何非代码内容。
[b]4. 位置管理器。 [/b]Android手机始终知道目前所处的位置
[b]5. 通知管理器。[/b] 像收到短信、临近预约时间、临近状态报警、异常入侵等等时间都可以通过友好的方式通知用户。
不过Android有一个不同一般的系统认识的地方。那就是[b]进程不等于应用程序[/b]。
从内部看,每个用户界面窗口都是通过一个Activity类表示的,而每个活动activity都有其自己的生命周期。一个应用程序就是一个或者多个活动加上包含这些活动的Linux进程。
[b]注意:在Android中,你kill一个进程,但是相应的应用程序可能还是"live"。[/b]
也就说,活动的生命周期与进程的生命周期没有关系。进程只是各种活动的一个随意使用的一个容器。这一个点和其他的系统中的情况不大应用。因此大家要注意。有时间在好好看看Android应用程序生命周期。
Android的主要依赖Linux内核。Linux内核应该来说是一个广泛认可并且稳定的。那么Linux充当Android的后勤部长的角色。也就是为Android提供了硬件抽象层,这样便于将Android移植到更多的平台上。
从内部上看,Android使用Linux完成其内存管理、进程管理、网络和其他操作系统服务工作。最近有信息表明Google已经有开发Android手机了。这样也加大了Android的宣传。在这里我就不将Android的系统构架图链接过来了,想了解的直接去google上面搜索下吧.
接下来再看看Android的一些库,下面的库是本机库
Linux内核层上面的一层中包含了Android的本机库。这些共享库都是使用C或C++语言编写的,并且针对电话使用的特定硬件架构进行了编译,并已由手机制造商预先安装到手机中。
[b]1. 界面管理器(Surface Manager)。[/b]Android使用与Visita或Compiz类似的组合窗口管理器,但是它要更简单一些。它并不是将显示内容直接绘制到屏幕缓冲区中,而是将绘制命令传递给屏幕外的位图,然后将该位图与其他位图组合起来,形成用户看到的显示内容。这种方法允许系统实现所有有趣的效果。
[b]2. 2D和3D图形。[/b] 使用Android时候,二维和三维元素可结合到一个用户界面中。
[b] 3. 媒体编解码[/b]。 Android可播放视频内部,并可用各种格式录制和播放音频,兼容的格式有:AAC、AVC(H.264)、H.263、MP3和MPEG-4.
[b] 4. SQL数据库。[/b] Android提供了轻量级的SQLite数据库引擎,使用该引擎可在应用程序中持续存储。
[b]5. 浏览器引擎。[/b]为了保证快速显示HTML内容,Android使用了WebKit库。Google Chrome浏览器、苹果的Safari浏览器等。
大家都知道Java有JVM,那么Android运行呢?
在Linux内核层上面还有一个Android运行时的层,该层包括Dalvik虚拟机以及Java核心库。
Dalvik虚拟机是Google的Java的实现(就像Sun的JVM一样),专门针对移动设备进行了优化。为了Android编写的所有代码使用的都是Java语言,这些代码都在虚拟机中运行。
下面看看Dalvik和JVM的不同之处。
[b]1. Dalvik VM 运行[/b].dex文件,即编译时会将标准的.class和.jar文件转换为.dex文件。.dex文件比类文件更加紧凑并且更高效,这是针对运行Android的设备内存有限且通过电池供电的特点所作出的重要的改进。
[b]2. Android附带的Java核心库与Java SE库和J2ME库不同[/b]。但是,它们之间很大一部分还是一样的。
[b]Android应用程序框架[/b]
位于本机类库和运行时上面的是应用程序框架层。该层提供了在创建应用程序时需要使用的各种高级构建块。该框架已随Android一起安装,开发人员也可以根据需要使用自己的组件扩展该框架。该框架最重要的部分有以下5部分:
[b]1. 活动管理器。[/b] 该管理器控制应用程序的生命周期,同时维护一个公共的“后退栈”供用户导航。
[b]2. 内容提供者。[/b] 这些对象封装需要在应用程序之间共享的数据
[b]3. 资源管理器。[/b] 资源是程序中涉及的任何非代码内容。
[b]4. 位置管理器。 [/b]Android手机始终知道目前所处的位置
[b]5. 通知管理器。[/b] 像收到短信、临近预约时间、临近状态报警、异常入侵等等时间都可以通过友好的方式通知用户。
不过Android有一个不同一般的系统认识的地方。那就是[b]进程不等于应用程序[/b]。
从内部看,每个用户界面窗口都是通过一个Activity类表示的,而每个活动activity都有其自己的生命周期。一个应用程序就是一个或者多个活动加上包含这些活动的Linux进程。
[b]注意:在Android中,你kill一个进程,但是相应的应用程序可能还是"live"。[/b]
也就说,活动的生命周期与进程的生命周期没有关系。进程只是各种活动的一个随意使用的一个容器。这一个点和其他的系统中的情况不大应用。因此大家要注意。有时间在好好看看Android应用程序生命周期。