您的位置:首页 > 移动开发 > Android开发

阅读《Android 从入门到精通》(1)——了解 Android 开发

2015-09-07 10:15 393 查看

Android 平台架构



1.应用程序(Application)

E-mail 客户端、SMS 短信程序、日历、地图、浏览器、联系人管理程序,主要用 Java 编写。

2.应用程序框架(Application Framework)

视图(Views):列表(Lists)、网格(Grids)、文本框(Text Boxes)、按钮(Buttons),可嵌入的 Web 浏览器;

内容提供器(Content Provides):程序数据。就是应用程序访问其他应用程序数据,用作共享数据;

资源管理器(Resource Manager):和 VS 里面的 res 一样。各种资源,以及布局文件。

通知管理器(Notification Manager):应用程序在状态栏中显示自定义信息。

活动管理器(Activity Manager):应用程序生命周期,以及导航回退功能。

3.程序库(Libraries)

系统 C 库:继承于 BSD 的系统 C 库,专门为嵌入式 Linux 定制;

媒体库:基于 PacketVideo 的 OpenCore,用于音视频格式文件的回放录制,也支持静态文件,编码格式包含 MPEG4、H.264、MP3、AAC、AMR、JPG 和 PNG;

Surface Manager:管理显示子系统,并且为多个应用程序提供 2D 和 3D 图层的无缝融合;

LibWebCore:Web 浏览器引擎,支持 Android 浏览器和可嵌入的 Web 视图;

SGL:底层 2D 图形引擎;

3D:基于 OpenGL ES API,支持 3D 硬加速和软加速;

FreeType:用于位图与矢量字体显示;

SQLite:轻量级关系型数据库;

4.Android 运行时环境

Android Runtime 由核心库和 Dalvik 虚拟机构成;

核心库提供 Java 编程语言核心库的大多数功能,Dalvik 可以同时运行多个虚拟系统,Android 每个程序都有一个 Dalvik 虚拟机实例;

Dalvik 底层依赖于 Linux 内核的线程机制和内存管理机制,Dalvik 虚拟机执行 .dex 的 Dalvik 可执行文件,这些可执行文件源码中所有的类由 Java 编译并通过 SDK 中的 dx 工具转化为 .dex 格式。

5.Linux 内核

安全性、内存管理、进程管理、网络协议栈和驱动模型,Linux 内核作为硬件和软件栈之间的抽象层。

Android 应用程序组成

 

1.活动(Activity):

活动是 Android应用程序必须包含的部分,其他三个可以没有!

通常情况下,一个活动就是一个单独的屏幕。每个活动通过继承活动基类被实现为一个独立的类,活动将会显示由视图控件组成的用户接口并对事件作出相应;

程序的每个屏幕都是一个活动,当屏幕移动到另一个之后,程序每次只执行新打开的当前屏幕,以前打开的应用程序屏幕被压栈并暂停,用户可以回退到以前打开过的屏幕,或者选择性地删除不需要的屏幕。

2.意图(Intent):

通过运行时绑定机制,实现程序运行时连接两个不同的组件,如界面切换;

Intent 请求动作时,IntentFilter 用于描述一个活动或者广播接收器能够操作哪些 Intent,IntentReceiver 则使应用程序对外部事件作出响应。

3.服务(Service):

应用程序后台代码,具有较长生命周期,必须由某个 Activity 调用,自身不能单独运行;

要注意的是 Android 应用程序的生命周期不是由应用程序自生决定,这与 Windows 不同:Windows 上应用程序都有主线程,而且主线程一般是 UI 线程,如果主线程死亡那么内存就会被系统自动回收,应用程序就会死亡,但是 Android 中,Activity 和后台服务具有相同的优先级,系统不会自动回收后台线程,所以 Android 应用程序可以是一个纯粹的后台服务,比如音乐播放器,用户播放歌曲之后,打开短信时,虽然播放器的 Activity 被压栈暂停,但是歌曲仍在播放。

4.内容提供器(Content Provider):

使用文件或者 SQLite 数据库做数据持久化与数据共享;

应用程序可以通过实现 ContentProvider 的抽象接口仅将数据内容暴露,但不暴露数据的组成结构(即结构体),仅有知晓数据结构与交互协议的应用程序,才可以正确运用这些数据。

网络资源

安卓网站:www.android.com

谷歌官网:developer.android.com

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android