展会信息港展会大全

Android开发教程Android的系统架构
来源:互联网   发布日期:2016-01-19 12:33:35   浏览:985次  

导读:1 1 Android系统架构概括应用部分:Android设备上运行的所有应用,面向用户。核心部分:Android中核心功能实现底层部分:Android寄宿的Linux操作系统及相关驱动1 1 1 应用层包括系统应用和第三方应用基于JAVA语 ...

1.1 Android系统架构概括

应用部分:Android设备上运行的所有应用,面向用户。

核心部分:Android中核心功能实现

底层部分:Android寄宿的Linux操作系统及相关驱动

1.1.1 应用层

包括系统应用和第三方应用

基于JAVA语言来开发,也可以使用C/C++来实现底层模块,并添加JNI(Java Native Interface)接口与上层JAVA实现进行交互,然后利用Android提供的交叉编译工具生成类库并添加到应用中。

NDK(Native Development Kit),由C/C++的一些接口构成,可以通过它更高效地调用特定的系统功能。

1.1.2 框架层

由多个系统服务(System Service)共同组成

所有服务寄宿在系统核心进程(System Core Process)

运行时,每个服务都占据一个独立的线程,彼此通过进程间的通信机制(Inter-Process Communication,IPC)发送消息和传输数据。

Android应用的最大特征是基于组件的设计方式。每个应用都有若干个组件构成,组件和组件之间并不会建立通信信道,而是通过框架层的系统服 务,集中地调度和传递信息。

1.1.3 运行时

Android的运行时由JAVA核心类库和JAVA虚拟机Dalvik共同构成。

Dalvik是为Android量身打造的JAVA虚拟机,负责动态解析执行应用,分配空间,管理对象生命周期。是采取基于寄存器的虚拟机架构设 计。

Dalvik用新的二进制码格式文件.dex作为其一次编译的中间文件。

在Android应用的编译过程中,它会先生成若干个.class文件,然后统一转换成一个.dex文件。

1.1.4 核心类库

核心类库由一系列的二进制动态库共同构成,通常使用C/C++进行开发。核心类库不能够独立运行于线程中,而需要被系统服务加载到其进程空间里, 通过类库提供的JNI接口进行调用。

核心类库来源:系统原生类库,第三方类库。

1.1.5 硬件抽象层和Linux内核

狭义的Android系统,主要指的是Linux内核以上的各层,从运行的角度来看,它们只是运行在Linux系统上的一些进程,并不是完整的系 统。

Linux之于Android最打的价值,便是其强大的可移植性。Linux将Android的上层实现与底层硬件连接起来,使它们可以不必直接 耦合,也降低了移植的难度。

硬件抽象层(Hardware Abstract Layer,HAL),是Android为厂商定义的一套接口标准,它为框架层提供接口支持,厂商需要根据定义的接口实现相应功能。

1.2 Android的核心功能

1.2.1 界面框架

Android的每个交互假面都由一棵控件树组成。

控件树中的控件派生自View类,而其中非字节点的控件都派生自ViewGroup类

控件树中的控件都受其父控件的管理,父控件会负责子空间的丈量和绘制,并向子控件分发交互事件。

为了获取用户与空间的交互事件(UI Events),可以为控件添加各种交互事件监听对象(Event Listener),它的设计采用了观察者模式。

布局空间,是一种自容器空间,其主要任务是按不同的方式排列其中的子控件

Android的应用资源目录由资源目录,XML资源文件和数据资源文件共同构成。

1.2.2 数据存储

Android中每个应用的配置信息和数据库文件等数据,都是私有的,保证了应用数据的安全性.

共享数据给其他应用:构造一个数据源组件(Content Provider);将数据放入扩展存储设备

1.2.3 网络通信

Android中,系统会负责底层网络的连接和管理,开发者可以直接通过HTTP或Socket与远端服务器建立连接。

Android不仅坚持点到端的连接,同样支持点到点的蓝牙连接,NFC连接等。

1.2.4地理信息

可以基于GPS定位

通过网络利用基站信息进行定位

1.2.5 图形和多媒体处理

音频处理依托于OpenCORE。

图像处理,通过Skia。

每个Android进程仅有16MB的堆空间,一不小心内存溢出,整个应用不可避免就会崩溃。

1.2.6 外部设备

Android支持各种类型的噶感应器。

强大的语音识别服务。

1.2.7 特色功能模块

Android有统一的帐号管理系统。

Android还有全局的事件通知机制。

应用搜索框架

桌面小工具(App Widget)

1.3 Android的架构特征和设计思想

Android考虑了设备的兼容性,增强了应用之间的功能复用,优化了对网络服务的支持,简化了应用开发的难度。

1.3.1 平台开放性

兼容性。如:基于资源目录的应用资源体系。开发者可以针对不同的设备环境,分别定制描述同一界面对象的资源文件,然后分别放入待定的资源目录 中,Android资源在运行时寻找最符合当前设备环境的资源文件,从而提供最合适的用户体验。

1.3.2 基于组件的应用设计

Android的应用是高度组件化的。

各个Andoid应用,只有明确的组件边界,而不再有明确的进程边界和应用边界。

组件化的设计思想,衍生出了很多相关的设计,比如基于意图(Intent)的通信模式,进程托管,组件的生命周期。

1.3.3 基于网络服务的平台

赞助本站

人工智能实验室

相关热词: 系统架构 Android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港