




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二节:Android系统构架分析和应用程序目录结构分析内容:Android系统构架简介Android应用程序结构分析一、Android系统构架Android系统从底向上一共分了4层,每一层都把底层实现封装,并暴露调用接口给上一层。下面是简单翻译的版本:1. Linux内核(Linux Kernel) o Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。 o Linux 内核是硬件和软件层之间的抽象层。 2. 中间件 o 中间件包括两部分:核心库和运行时(libraries & Android runtime) o 核心库包括,SurfaceManager 显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite 数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit 浏览器引擎等。 o Dalvik虚拟机:区别于Java虚拟机的是,每一个Android 应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik 虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。 3. 应用程序框架(Application Framework) o 丰富而又可扩展性的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids), 文本框(text boxes),按钮( buttons), 可嵌入的web 浏览器。 o 内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。 o 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles )。 o 通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 o 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。 4. 应用程序 (Applications) o Android 系统会内置一些应用程序包包括email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA 语言编写的。 二、Android应用程序结构分析接下来让我带领大家解析一个Android程序的各个组成部分,这次我们拿一个Hello,World做例子,虽然只是一个Hello,World,但也是麻雀虽小五脏俱全,通过分析Hello,World的目录结构,让我们对Android程序有一个整体全面的认识。(Lesson2_HelloWorld 显示效果)(Lesson2_HelloWorld 目录结构)Lesson2_HelloWorld程序的创建过程可以参见教学视频:第二讲视频:创建 Lesson2_HelloWorld接下来我们逐个部分加以讲解:1、Activity类 MainHelloWorld文件浅析Activity是Android中的视图部分,负责界面显示。package android.basic.lesson2.helloworld;import android.app.Activity;import android.os.Bundle;public class MainHelloWorld extends Activity /* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);可以看到MainHelloWorld是Activity的子类,子类要重写onCreate方法。setContentView(R.layout.main)方法是给Activity设置可以显示的视图(View),视图由R类负责寻找。2、R文件浅析我们看到Gen目录下有个R.Java文件,R文件由ADT自动生成,程序员不需要也不要去修改它,R文件负责调用应用程序中的非代码资源。/* AUTO-GENERATED FILE. DO NOT MODIFY.* This class was automatically generated by the* aapt tool from the resource data it found. It* should not be modified by hand.*/package android.basic.lesson2.helloworld;public final class R public static final class attr public static final class color public static final int red=0x7f050000;public static final class drawable public static final int icon=0x7f020000;public static final class id public static final int TextView01=0x7f060000;public static final class layout public static final int main=0x7f030000;public static final class string public static final int app_name=0x7f040001;public static final int hello=0x7f040000;public static final int tagline=0x7f040002;从R文件中可以看到每一个资源都会有一个整数和它相对应。3、res/layout/main.xml文件浅析 布局layout我们看到有个res目录,也就是resource目录,这个目录下存放资源文件,资源文件的统一管理,也是Android系统的一大特色。现在要注意看的是layout目录下的main.xml。这个文件的内容是有关用户界面布局和设计的。在桌面程序设计领域采用XML也许比较新颖,但是在网页设计领域,这个就很平常了。同学们可以用html来类比xml在布局中的用途。从以上代码可以看到整个程序界面由一个线性布局控件(LinearLayout)和2个文本框控件(TextView)组成。res的其他目录里的其他文件也都是相关的资源描述。4、AndroidManifest.xml文件浅析在每个应用程序的根目录都会有一个AndroidManifest.xml文件,该文件向Android操作系统描述了,本程序所包括的组件,所实现的功能,能处理的数据,要请求的资源等等。学过Java Web开发的同学可以用Web应用程序里的web.xml来类比这个AndroidManifest.xml文件。我们看到Manifest是根节点,节点属性里有versionCode和versionName来表示应用程序的版本;里面可以包含0个或1个application元素,application可以包含多个activity组件等等,具体的内容我们在接下来的课程里详细讲解。5、Android.jar文件浅析作为一个Java项目,通常情况下都会引入要用到的工具类,也就是Jar包,在Android开发中,绝大部分开发用的工具包都被封装到一个名叫Android.jar的文件里了。如果我们在Eclipse中展开来看,可以看到j2se中的包,apache项目中的包,还有Android自身的包文件。在这里我们简单浏览一下Android的包文件:android.app :提供高层的程序模型、提供基本的运行环境android.content :包含各种的对设备上的数据进行访问和发布的类android.database :通过内容提供者浏览和操作数据库android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.android.location :定位和相关服务的类android.media :提供一些类管理多种音频、视频的媒体接口 :提供帮助网络访问的类,超过通常的.* 接口android.os :提供了系统服务、消息传输、IPC 机制android.opengl :提供OpenGL 的工具andr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 倾斜建筑地基施工方案设计
- 2025广西河池市罗城仫佬族自治县水利局招聘1人考试参考试题及答案解析
- 2026招商银行武汉分行校园招聘备考考试题库附答案解析
- 阅读之旅模板
- 文化公司税务咨询方案
- 本土企业应对策略-洞察及研究
- 油墨厂水性建筑油墨设备操作规定
- 水产养殖过程中病原微生物及污染物的安全性研究-洞察及研究
- 河南省新乡市2025-2026学年高一上学期9月月考历史试卷(含答案)
- 2024-2025学年广东省汕头市澄海区实验学校人教版六年级上册期中素养展示测试数学试卷(含答案)
- 70岁以上驾驶员换证三力测试题库(含答案)
- 2025秋形势与政策课件-践行多边主义完善全球治理
- (2025秋新版)人教版八年级历史上册全册教案
- 2025年小麦种子研发与应用技术合作开发协议
- 四合一检测仪使用课件
- 恋爱课件教学课件
- 人民陪审员培训民事课件
- 药物中毒的护理与急救
- 2025年食安员、食品安全总监、主要负责人考试题及答案
- 兄弟分户房屋协议书模板
- 学堂在线 大数据系统基础 章节测试答案
评论
0/150
提交评论