Android架构基本知识

合集下载

第一行代码Android知识点总结

第一行代码Android知识点总结

第一行代码知识点总结1、Android四层架构:Linux内核层(提供底层驱动)、系统运行库层(提供特性支持,一些核心库)、应用框架层(提供各种API)和应用层2、Android四大组件:活动(activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)3、Android应用特色开发:四大组件、丰富的系统控件、SQL数据库(轻量级,运算速度快的嵌入式关系型数据库)、强大的多媒体和地理位置定位(LBS)。

4、Android程序设计讲究逻辑和视图分离,通常在布局文件中编写在界面4.1Android的日志工具Log:Log.d()打印调试信息对应debug。

Log.v()打印琐碎、意义最小日志,对应verbose,Log.i()打印比较重要的数据对应info;Log.w()打印警告信息对应error;Log.e()打印错误信息对应error。

Log.d(类名,打印内容)4.2活动:主要用于和用户进行交互、基本用法4.3活动中的提醒方式Toast4.4、drawable存放图片,mipmap存放应用图标,values放字符串、样式,颜色等配置,layout放布局文件4.5、Android Studio是采用Gradle来构建项目5、Intent的使用:显式Intent和隐式Intent()6、活动的生命周期7、返回栈的定义8、Android是使用任务来管理活动的9、活动状态:运行、暂停、停止、销毁状态10、Activity类中的七个回调方法:onCreate()onStaart()、onResume()、onPause()、onStop()、onDestroy()和onRestart()11、活动的三种生存期:完整、可见、前台12、活动的四种启动模式:standard、singleTop、singleTask 和singleInstance13、常用控件:TextView、Button、EditText、ImageView、ProgressBar(进度条)、AlertDialog(对话框)、ProgressDialog (显示对话框时出现进度条)14、基本布局:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)百分比布局、AbsoluteLayout、TableLayout15、常用和最难用的控件ListView16、滚动控件:RecyclerView17、碎片的定义、使用方式、碎片的生命周期、状态和回调18、广播主要的两种类型:标准广播和有序广播;注册广播的方式:静态注册和动态注册;广播接收器继承BroadcastReceiver19、本地广播(LocalBroadcastManager)20、Android系统中三种数据持久化方式:文件储存、SharedPreference储存及数据库储存,还有保存在手机SD卡中21、SQliteOpenHelper帮助类:SQliteOpenHelper中有两个抽象方法onCreate()和onUpgrade();两种重要的实例方法getReadableDatabase()和getWritableDatabase()22、LitePal操作数据库23、跨程序共享数据:内容提供器24、ContentResolver的基本用法:ContentResolver类、ContentResolver中提供给了一系列的方法用于对数据进行CRUD操作包括增删改查操作;ContentResolver增删改查方法不接收表名参数,而是用Uri参数代替。

安卓期末考试知识总结

安卓期末考试知识总结

安卓期末考试知识总结第一章:Android基础入门习题总结1.Android系统采用分层架构,由高到低分为4层,主要为:应用程序层、应用程序框架层、核心类库、Linux内核2.在Android项目程序开发完成后中,必须__打包成_正式的Android安装文件,才能发布到互联网上让用户下载使用。

3.Android 工程中src目录下存放_java__文件重点知识1.应用层:应用层是核心应用程序的集合。

手机上所有的应用都属于这一层,程序,短信程序。

2.应用程序框架层:应用程序框架层主要提供构建应用程序时用到的各种API,例如:活动管理器、通知管理器、内容提供者3.核心类库:核心类库中包含了系统库及Android运行环境。

(1)系统库主要通过c/c++库为Android系统提供主要的特性支持(2)Android运行时库主要提供一些核心库,允许开发者使用java语言来编写Android应用程序4.Linux内核:为Android·设备的各种硬件提供底层的驱动,如显示驱动、音频驱动、蓝牙驱动、电源管理驱动Android工程中的assets目录主要存放一些文件资源,这些文件会被原封不动的打包到APK文件中更为细分的5层架构:应用程序层、应用程序框架层、核心类库、硬件抽象层 (HAL)、Linux内核硬件抽象层 (HAL) 提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。

HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。

当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

第二章:Android常见桌面布局&第三章:Android常见界面控件知识总结1.Android应用的界面是由View 对象和 ViewGroup 对象构建而成的。

ViewGroup继承自View,ViewGroup作为容器盛装界面中的其他控件Android应用的每个界面的根元素必须有且只有一个ViewGroup容器Android常见布局和特点:Android中常见的五种布局:相对布局(RelativeLayout)、线性布局(LinearLayout)、表格布局(TableLayout)、帧布局(FrameLayout)、约束布局(ConstraintLayout)1.相对布局(RelativeLayout):相对布局是一种基于相对位置的布局方式,可以通过设置组件相对于其他组件或父容器的位置来实现布局。

安卓面试题及答案详解版

安卓面试题及答案详解版

安卓面试题及答案详解版1. 问题:什么是Android操作系统?答案: Android操作系统是一种基于Linux内核的开源操作系统,主要用于触屏移动设备,如智能手机和平板电脑。

它由Google公司开发并发布,允许设备制造商和开发者自由地修改和分发。

2. 问题:请解释Android的架构。

答案: Android架构从下到上分为四个层次:- 应用层:包含用户界面和应用程序。

- 应用框架层:提供应用程序开发接口(API)。

- 运行时环境层:包括Android核心库和Android运行时环境。

- Linux内核层:提供底层的硬件抽象层、内存管理、进程管理等功能。

3. 问题: Android应用是如何打包的?答案: Android应用通常使用APK(Android Package)格式进行打包。

APK文件是一个压缩文件,包含应用的代码、资源、资产、库和AndroidManifest.xml文件。

4. 问题:什么是Activity?答案: Activity是Android应用程序中的基本构建块,用于定义用户界面和用户交互。

每个Activity都是一个独立的屏幕,用户可以与之交互。

5. 问题:请解释Intent的概念。

答案: Intent是Android中用于请求操作的抽象描述符。

它可以用于启动Activity、启动服务或广播信息。

Intent可以显式地指定目标组件,也可以隐式地通过Intent Filter来匹配。

6. 问题:如何在Android中处理网络请求?答案:在Android中处理网络请求通常使用HTTP客户端库,如OkHttp或Retrofit。

这些库提供了简化的API来发送HTTP请求和接收响应。

7. 问题:解释Android中的Context对象。

答案: Context是Android中一个非常关键的类,它允许访问应用程序环境的全局信息。

Context可以用于启动Activity、获取资源、启动服务等。

信息安全工程师综合知识真题考点:安卓Android系统架构

信息安全工程师综合知识真题考点:安卓Android系统架构

信息安全工程师综合知识真题考点:安卓Android系统架构Android是一个开源的移动终端操作系统,共分成Linux内核层、系统运行库层、应用程序框架层和应用程序层四个部分。

●Linux内核层:这一层为Android设备的各种硬件提供了底层的驱动,包括音频驱动、Bindre(IPC)驱动、摄像头驱动、显示驱动、内存驱动、键盘驱动、电源管理、WiFi驱动。

●系统运行库层:Android的系统运行库包含两部分,一个是系统库,另一个是运行时。

Android运行时:核心库、Dalvik虚拟机。

库:FreeType、libc、LibWebCore、媒体框架、OpenGL | ES、SGL、SQLite、SSL、外观管理器。

●应用框架层:这一层主要提供了构建应用程序时可能用到的各种API,如Activity管理器、内容提供器、位置管理器、通知管理器、包管理器、资源管理器、电话管理器、视图系统、窗口管理器。

●应用程序层:所有安装在手机上的应用程序都是这个层,如主屏、浏览器、联系人、电话。

注:详见《信息安全工程师教程》(第2版)544-545页。

考点相关真题
Android 是一个开源的移动终端操作系统,共分成Linux 内核层、系统运行库层、应用程序框架层和应用程序层四个部分。

显示驱动位于()。

A.Linux内核层
B.系统运行库层
C.应用程序框架层
D.应用程序层
参考答案:A。

Android系统架构及内核简介

Android系统架构及内核简介

Android系统架构及内核简介(来源于ThinkPHP)Android是Google公司开发的基于Linux平台的开源⼿机操作系统,它包括操作系统、中间件、⽤户界⾯和应⽤程序,⽽且不存在任何以往阻碍移动产业创新的专利权障碍,并由Google公司于2007年11⽉5⽇正式发布。

同时,Google公司组建了⼀个开放⼿机联盟,这个联盟由中国移动、摩托罗拉、⾼通、宏达电和T-Mobile等在内的全球30多家技术和⽆线应⽤的领军企业组成,Google通过与运营商、设备制造商、开发商和其他有关各⽅结成深层次的合作伙伴关系,希望借助建⽴标准化、开放式的移动电话软件平台,在移动产业内形成⼀个开放式的⽣态系统;可预见地,⽣产和使⽤基于 Android系统的嵌⼊式⼿持移动设备将是未来的发展趋势,对相应软件的需求量也将⽇趋增长,因此对Android系统内部作⼀个完整和深⼊的分析,对基于Android平台的软件移植和开发是很有益处的。

1 Android系统平台架构对操作系统⽽⾔,必须做到设计合理、层次分明,同时还需考虑整个系统的结构要聚耦适当,Android系统是基于linux内核的,因此还必须具备开源的特性,以符合开源⼈员共同⼯作。

从系统的组成要件来讲,Android平台架构包括硬件设备、板级⽀持包、驱动程序、操作系统内核、程序运⾏库,运⾏框架,应⽤程序等,它们的有机结合和协同⼯作共同完成了整个系统的正常运⾏和对事务的处理。

依据Google开源资料可知,整个系统由Linux内核、程序库、Android Runtime、应⽤程序框架和应⽤程序等5部分组成,,系统架构如图1所⽰。

参照图1,由上⽽下对组成系统各部分的主要组件作以下描述。

1.1 Linux内核Android基于Linux 2.6内核,但并⾮完全照搬内核,⽽是对内核作了部分增删和修改,在Linux 2.6内核的基础上,Android核⼼系统实现了安全性、内存管理、进程管理、⽹络协议栈和驱动模型等功能,Linux内核也同时作为硬件和软件栈之间的抽象层。

安卓系统层次架构

安卓系统层次架构

安卓系统层次架构1.安卓的系统架构2.分析第一层:Linux操作系统和驱动(Linux kernel):由C语言实现。

Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型。

Linux内核也作为硬件和软件栈之间的抽象层。

除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理。

第二层:本地框架和Java运行环境(LIBRARIES和ANDROID RUNTIME)本地框架是有C/C++实现。

包含C/C++库,被Android系统中不同组件使用,它们通过Android应用程序框架为开发者进行服务。

系统C库:(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库。

多媒体库:基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式。

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

LibWebCore:一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图。

SGL:Skia图形库,底层的2D图形引擎。

3D libraries:基于OpenGL ES1.0 API的实现;该库可以使用硬件3D加速(如果可用),或者使用高度优化的3D软加速。

FreeType:位图(bitmap)和矢量(vector)字体显示。

Android运行环境(ANDROID RUNTIME):提供了Java编程语言核心库的大多数功能,由Dalvik Java虚拟机和基础的Java类库组成。

Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Android平台架构及特性

Android平台架构及特性

Android平台架构及特性Android平台架构及特性 Android系统的底层是建⽴在Linux系统之上,改平台由操作系统、中间件、⽤户界⾯和应⽤软件四层组成,它采⽤⼀种被称为软件叠层(Software Stack)的⽅式进⾏构建。

好处:这种软件叠层结构使得层与层互相分离,明确各层的分⼯,这种分⼯保证了层与层之间的低耦合,当下层内或者层下发⽣改变时,上层应⽤程序⽆需任何改变。

下图显⽰Android系统的体系结构:1.应⽤程序层(Application) Android平台不仅仅是操作系统,也包含了许多应⽤程序,诸如SMS短信客户端程序、电话拨号程序、图⽚浏览器、Web浏览器等应⽤程序。

这些应⽤程序都是⽤Java语⾔编写的,并且这些应⽤程序都是可以被开发⼈员开发的其他应⽤程序所替换,这点不同于其他⼿机操作系统固化在系统内部的系统软件,更加灵活和个性化。

我们编写的主要是这⼀层上的应⽤程序。

2.应⽤程序架构层(Application Framework) 应⽤程序框架层是我们从事Android开发的基础,很多核⼼应⽤程序也是通过这⼀层来实现其核⼼功能的,该层简化了组件的重⽤,开发⼈员可以直接使⽤其提供的组件来进⾏快速的应⽤程序开发,也可以通过继承⽽实现个性化的拓展。

Android应⽤程序框架提供了⼤量的API供开发者使⽤。

a) Activity Manager(活动管理器)管理各个应⽤程序⽣命周期以及通常的导航回退功能b) Window Manager(窗⼝管理器)管理所有的窗⼝程序c) Content Provider(内容提供器)使得不同应⽤程序之间存取或者分享数据d) View System(视图系统)构建应⽤程序的基本组件e) Notification Manager(通告管理器)使得应⽤程序可以在状态栏中显⽰⾃定义的提⽰信息f) Package Manager(包管理器)Android系统内的程序管理g)Telephony Manager(电话管理器)管理所有的移动设备功能h)Resource Manager(资源管理器)提供应⽤程序使⽤的各种⾮代码资源,如本地化字符串、图⽚、布局⽂件、颜⾊⽂件等i)Location Manager(位置管理器)提供位置服务j)XMPP Service(XMPP服务)提供Google Talk服务3.系统运⾏库层: 1)函数库(Libraries) 函数是应⽤程序框架的⽀撑,是连接应⽤程序框架层与Linux内核层的重要纽带。

Android的系统及应用的架构

Android的系统及应用的架构
上述介绍的三层结构是 MVP 架构的主要 组成部分,另外还包括一个契约层(Contract), 契约层连接着视图层和展示器层,它定义每个 模块中的视图层和展示器层在使用时应该遵守 的规则,使用契约层的组件中两个接口,分别 由视图层和展示器层进行实现。
3.1 视图层
在视图层中,主要使用 Fragment 来完成 各个模块界面的设计,同时还要遵守契约层中 定义的规则,将定义的抽象方法实现,展示器 层将调用这些方法来定义视图层的数据展示方 式。
在 MVP 架构中,其中 M:模型层(Model) 主要包括本地缓存访问组件和网络数据访问 组件;V: 视 图 层(View) 主 要 由 Activity、 Fragment、Adapter 这三个组件构成,主要功 能是完成应用的页面布局的设置;P:展示器 层(Presenter),该层使用定制化的 Presenter 展示器作为基础组件。
图 1:Android 系统架构图
单击事件,在相应的事件处理方法中实现操作。
3.2 展示器层
展示器层主要负责整个系统的业务逻辑, 完成视图层与模型层数据的交互。展示器层分 担了传统 MVC 架构中 Activity 组件作为控制 器层的主要职责,主要是为了防止 Activity 设 计得过于繁琐。通过封装向外部提供访问的接 口,有利于单元测试和后期的维护工作。
突 破 改 进。 一 款 优 秀 oid 应
用 的 开 发 是 依 赖 于 Android 架 构
的 研 究, 只 有 深 入 分 析 Android
系 统 的 架 构, 掌 握 各 层 组 件 的 协
作 过 程, 才 能 熟 悉 Android 的 开
发 流 程, 做 到 从 根 本 上 进 行 解 决
2.3 应用程序框架层
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android架构基本知识1.2 Android的系统架构系统构架图中可以看到从上到依次是应用层(Applications)、应用框架层(Application Framework)、系统运行库层(Lib和Runtime)、 Linux内核层(linux kernel)1.2.1 Android内核Linux 内核版本2.6位于硬件和软件堆之间的抽象层核心服务:安全机制、内存管理、进程管理、网络、硬件驱动。

Android依赖Linux内核2.6来提供核心服务,比如进程管理、网络协议栈、硬件驱动。

在这里,Linux内核作为硬件层和系统软件栈层之间的一个抽象层。

这个操作系统并非类GNU/Linux的,因为其系统库,系统初始化和编程接口都和标准的Linux系统是有所不同的。

从Google目前release的Linux系统来看,其没有虚拟内存文件系统,系统所用的是yaffs2文件系统,具体的映像也都位于SDK安装目录下。

通过emulator -console命令,我们可以在host 终端下得到一个简单的可以控制Android的shell,这个系统包含了一个Toolbox,提供一些基本的命令工具,集中在/sbin,/system/sbin,/system/bin中,但是很简陋,命令种类也很少。

若有时间和必要我会作个介绍。

既然采用的linux系统,就有必要介绍一下主要驱动(如图中所示):显示驱动(Display Driver)键盘驱动(KeyBoard Driver)Flash内存驱动(Flash Memory Driver)照相机驱动(Camera Driver)音频驱动(Audio Driver)蓝牙驱动(Bluetooth Driver)Wifi驱动Binder IPC驱动Power Management (电源管理)等等。

1.2.2程序库和运行库(Lib和Runtime)程序库(lib):Android 包含一些C/C++库、媒体库、数据库引擎库等等,,这些库能被Android系统中不同的组件使用,通过 Android 应用程序框架为开发者提供服务,以下是包括的一些核心库:· 系统 C 库 - C语言标准库,系统最底层的库,C库通过Linux系统来调用,一个从 BSD 继承来的标准 C 系统函数库( libc ),它是专门为基于 embedded linux 的设备定制的。

· 媒体库 - 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。

编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。

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

· LibWebCore- 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。

· SGL - 底层的2D图形引擎· 3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。

· Fr eeType -位图(bitmap)和矢量(vector)字体显示。

·WebKit/LibWebCore -一个最新的web浏览器引擎,支持Android浏览器和一个可嵌入的web 视图。

· SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

Google使用Apache的Harmony类库,Harmony某些方面速度快于Sun的VM。

Runtime在Dalvik Java VM上,Dalvik采用简练、高效的byte code格式运行,它能够在低资耗和没有应用相互干扰的情况下并行执行多个应用。

Android 运行库(Runtime):Android 包括了一个核心库(Core Libraries),该核心库提供了JAVA编程语言核心库的大多数功能。

Dalvik虚拟机(DVM,Dalvik Virtual Machine)是一种寄存器形态的虚拟机。

Google 在开发时就已经设想用最少的内存来执行,以及同时可执行多个VM为前提。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。

Dalvik虚拟机执行(.dex)的Dalvik 可执行文件,该格式文件针对小内存使用做了优化。

同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的 "dx" 工具转化成.dex格式由虚拟机执行。

Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

●核心库提供的Java 功能●Dalvik 虚拟机依赖于Linux 内核,例如线程或底层内存管理●设备可以运行多个Dalvik 虚拟机,每一个Android 应用程序在它自己的Dalvik VM 实例中运行●VM 执行优化的Dalvik 可执行文件(.dex)●Dx-工具把编译过的Java 文件转换为dex 文件我们用java语言完成Android应用设计并且发布应用后,每一个Android应用程序都在它自己的进程中运行,在底层都对应一个独立的Dalvik虚拟机实例Dalvik相关(Dalvik和JVM的比较)D alvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制前面已经有介绍内核的相关知识。

虽然代码在虚拟机的解释下运行,但是Dalvik虚拟机并不是一个java虚拟机,因为Dalvik 虚拟机并不是按照java虚拟机的规范来的,二者并不兼容。

他们有两个明显不同:Dalvik和JVM的比较:基于寄存器Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM 基于栈。

相对于基于堆栈的JAVA虚拟机,Android中基于寄存器的虚拟机虽然在硬件、通用性上差一些,但是它在代码执行效率上却更胜一筹。

也就是说Dalvik虚拟机比JAVA虚拟机更快一些。

专有的dex文件格式需要注意的是,Dalvik只执行.dex的可执行文件,java程序同样需要通过编译,最后还要通过SDK中的dx工具转化成.dex格式才能正常在虚拟机上执行。

Java虚拟机(JVM)运行的是字节码,而Dalvik虚拟机(DVM)运行的则是其专有的文件格式为Dex(Dalvik executable)的文件;在Java SE程序中,java类会被编译成一个或者多个字节码文件(.class)然后打包到jar文件,而后java虚拟机会从相应的class文件和jar文件中获取相应的字节码;Android应用虽然也用Java编程,但是在编译成class文件后,还会通过一个工具(sdk中的dx)将所有的class转化成一个dex文件,而后Dalvik虚拟机会从其中读取指令和数据。

Dalvik虚拟机非常适合做移动终端使用。

相对于桌面系统和服务器运行的虚拟机而言,Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。

同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的 "dx" 工具转化成.dex格式才能由虚拟机执行,同时一个未压缩的.dex 文件中文件的大小方面会比同样的.class文件压缩成的.jar文件冗余度低占用空间更小更小。

采用.dex除了因为.class大量冗余信息之外,采用dex则把所有class文件整合到一个文件中,减少整体文件尺寸和I/O操作,同时提高了类的查找速度。

它不需要很快的CPU计算速度和大量的内存空间。

其他Dex的优化对一些特定的类和方法里的操作码进行优化,调整所有的字段的字节序(LITTLE_ENDIAN)和对齐结构中的每一个域,增加了对新操作码的支持,文件结构尽量简洁,使用等长指令,借以提高解析速度,尽量扩大只读结构的大小,借以提高跨进程的数据共享。

总之而言,一个应用,一个虚拟机实例,一个进程。

虚拟机很小,使用空间小;Dalvik没有JIT编译器;常量池被修改为只使用32位索引,以简化解释器;使用自己的字节码dex,Java字节码class;同时高效运行多种虚拟机实例。

我们可以理解成所有的优化都是针对移动设备,从内存和处理器资源的占用,做出的优化。

1.2.3应用层和应用框架层应用层程序都是基于应用框架开发和调用框架层API开发的:核心应用,例如联系人,电子邮件,电话,浏览器,日历,地图, ...充分访问所有核心应用框架API简化组件的重用用Java 编写应用程序应用层:应用即应用程序,是用Java语言编写的运行在虚拟机上的程序,如图中最上层表示,不作解释。

一个Android系统(不论是见到的Android模拟器还是Android实体手机)会同一系列核心应用程序包一起发布,该应用程序包包括email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。

所有的应用程序都是使用JAVA 语言编写的。

应用框架层:该层是开发Google发布的核心应用程序所使用的API框架,即我们可以使用这些框架开发自己的应用,该架构设计简化了开发时的组件重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块,但是作为开发人员的我们必须得遵循框架的开发原则,像一些约束规定、安全性限制等。

同样,该应用程序重用机制也使开发人员可以方便的替换程序组件。

从上图中可以看到,Android提供如下一些组件:●丰富而又可扩展的视图(Views):可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text Box),按钮(Buttons),甚至可嵌入的web浏览器.●内容提供器(Content Providers):使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或共享它们自己的数据●资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。

●通知管理器(Notification Manager): 使得应用程序可以在状态栏中显示自定义的提示信息。

●活动管理器(Activity Manager): 用来管理应用程序生命周期并提供常用的导航回退功能。

●窗口管理器(Windows Manager):管理所有的窗口程序●包管理器(Package Manager):Android系统内的程序管理●Activity和Intent 及Intent Filter重要相当,以后随着慢慢的深入学习,会有接触,参见其他●Broadcast Intent Receiver来让应用对一个外部事件作出反应。

相关文档
最新文档