Android体系结构
- 格式:doc
- 大小:19.50 KB
- 文档页数:3
《移动应用开发》课程教学大纲课程编号:08152400课程名称:移动应用开发/ Mobile application development总学时/学分:48 /3 (其中理论32学时, 实验16学时)适用专业:计算机科学与技术一、课程目标通过本课程学习,学生应达到如下目标:目标1. 了解Android特征,理解Android的体系结构,熟悉Android的用户界面,能够较为深入地理解Android的体系结构。
目标2. 利用Android的四大组件和组件通信等技术来表达处理程序应用问题。
目标3. 将数据存储等技术运用到综合系统开发中。
目标4. 搭建Android开发环境,能设计实现各种Android技术的应用程序,且能测试运行。
二、教学过程安排三、实验或上机内容四、课程目标达成方法五、考核标准本门课程考核包括5个部分,分别为考试、作业、实验、讨论和测验。
具体要求及评分方法如下:4、课堂讨论设置讨论课一次,要求学生按照讨论题目分组查阅资料,归纳总结,课堂汇报。
5、测验随堂测验,老师给出题目,学生回答。
具体有任课老师给出评分标准。
六、教材及主要参考资料[1] 仲宝才,颜德彪,刘静. Android移动应用开发实践教程.清华大学出版社,2018-9[2] 明日科技.零基础学Android,吉林大学出版社,2017年9月.[3] 王向辉,张国印,沈洁. Android应用程序开发.清华大学出版社,2016-6[4] 杨谊.喻德旷.Android移动应用开发. 人民邮电出版社;2018.4[5] 兰红,李淑芝. 21世纪高等学校计算机类课程创新规划教材:Android studio移动应用开发从入门到实战.清华大学出版社; 第1版,2018.11。
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内核层的重要纽带。
1、Android的体系结构2、Activity的启动方式有3、在Android模拟器中,内置了一个用于调试和测试的工具4、启动Service的两种方法。
5、Android四大组件6、Intent过滤器7、Android SDK主要语言基础7、R.java文件的用途。
9、Activity生命周期的事件回调函数10、在Android调试过程中,LogCat出现的日志信息11、通过继承ContentProvider类可以创建一个新的数据提供者的过程。
12、手机操作系统的是()A.AndroidB. Windows VistaC. IOSD. Windows Phone 713、是AbsoluteLayout中特有的属性( )A,android:layout_height B,android:layout_xC,android:layout_above D,android:layout_toRightOf14、在手机开发中常用的数据库是( SQLite )15、若在界面上显示“Hello,World”,应该使用以下哪个控件是()A.TextViewB.ImageViewC.ListViewD.以上都不对16、Spinner控件的显示为文本列表形式,在ArrayAdapter适配器中应选择以下哪种方式()yout.simple_spinner_dropdown_itemB. yout.simple_list _item_1C. yout.simple_list _item_2D. yout.simple_spinner_ item17、打开一个Activity,对提供的数据进行Web搜索的Intent常用动作是()A. ACTION_WEB_SE ARCHB.ACTION_SEARCHC. ACTION_ANSWERD.ACTION_VIEW18、如果将一个TextView的android:layout_height属性值设置为wrap_content,那么该组件将是以下哪种显示效果?( )A.该文本域的宽度将填充父容器宽度B.该文本域的宽度仅占据该组件的实际宽度C.该文本域的高度将填充父容器高度D.该文本域的高度仅占据该组件的实际高度19、使用以下哪种方法将数据写到文件的末尾()A. MODE_PRIVATEB. MODE_APPENDC. MODE_WORLD_READABLED. MODE_WORLD_WRITEABLE20、Android 项目工程下面的assets 目录的作用是什么( )A、放置应用到的图片资源。
Android移动应用基础教程习题答案姓名:班级:联系方式:第1章 Android基础入门一、填空题1、Android是Google公司基于Linux平台开发的手机及平板电脑的操作系统2、Android系统采用分层结构,由高到低依次为应用程序层、应用程序框架层、核心类库、Linux内核。
3、ADB的常见指令中,用于开启ADB服务的是adb start-server。
4、在Android程序中,src目录用于放置程序的java代码文件。
5、Android程序开发完成后,如果要发布到互联网上供别人使用,需要将程序打包成.apk文件。
二、判断题1、Android实际上就是一个手机。
×2、WCDMA是中国自己独自定制的3G标准,中国移动使用的就是这种标准。
×3、android第一个版本Android 1.1是2008年9月发布的。
√4、gen目录是自动生成的,主要有一个R.java文件,该文件可手动修改。
×5、AndroidManifest.xml文件是整个程序的配置文件。
√三、选择题1、随着智能手机的发展,移动通信技术也在不断升级,目前应用最广泛的是(C)A、1GB、2GC、3GD、4G2、ADT Bundle中包含了三个重要组成部分,分别是(ABC)A、EclipseB、SDKC、SDK Manager,exeD、ADB3、应用程序层是一个核心应用程序的集合,主要包括(B)A、活动管理器B、短信程序C、音频驱动D、Dalivik虚拟机4、ADB的常见指令中“列出所有设备”的指令是(C)A、adb uninstallB、adb installC、adb deviceD、adb emulator-avd5、创建程序时,填写的Application Name表示(A)A、应用名称B、项目名称C、项目的包名D、类的名字四、简答题1、简要说明Android体系结构中每个层的功能。
android 平台大的方面的层次可以划分成三个层次,包括一个操作系统,中间件和应用程序,android 的系统框架图如下:
图中的软件层次自上而下分成4个层次
1.应用程序(Application)
2.用用程序框架(Application Framework)
3.各种类库(Libraries)和android运行时(Adnorid Runtime)
4.操作系统(OS)
一.应用程序(Application)
应用层是和用户交互的一个层次,用户可以看得见的一些应用,用户可以操作。
这类应用基本都是通过Java语言编写的独立的能够完成某些功能的应用程序。
Android本身提供了桌面(Home),联系人(Contacts),拨打电话(Phone),浏览器(Browers)等很多基本的应用程序。
开发人员可以使用应用框架提供的API编写自己的应用程序,普通开发人员要做的事情就是开应用层的程序提供该广大消费者使用。
二.应用程序框架(Application Framework)
普通开发者可以使用Android基本应用程序使用的系统API,android 应用框架中的各个模块都可以被复用,各种服务也可以被复用,理解了这个机制,开发人员可以更好的更轻松的开发出优秀的android应用。
开发过程中常用到的基本框架组件如下:
1.一组View(UI 组件),这些UI组件包括Button(按钮),EidtView(文本框),TextView(标
签),List(列表)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。
2.Content Providers(内容提供者),听起来有点抽象,通俗的理解Content Provider 就是提供
一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。
3.Resource Manager 顾名思义就是资源管理,android中的资源很多包括图片,用户界面(Layout
xml),字体,颜色,UI组件的Id等等都可以称之为资源,这些丰富的资源,都是通过Resource Manager 来统一进行管理。
4.Notification Manager(消息通知管理),它在不影响用户正常操作和使用设备的时候在状态栏上
提供消息的提示。
比如有短信来的时候,android自动会将这个消息提示在状态栏上,用户可以及时的看到。
5.Activity Manager(活动管理),Activity管理着应用程序的生命周期,并且控制着应用的导航,
扮演控制器的角色。
每个Activity类似于Windows应用中的一个wendow。
一般的应用都是通过一个个Activity交互构成的。
6.Window Manager(窗口管理),管理所有启动的窗口。
7.Location Manager(位置管理),用来管理地图服务的相关功能。
8.Telephoney Manager(电话管理),用来管理有关的电话的相关功能。
9.Package Manager(包管理),管理所有的安装在android系统内的应用程序。
三.库(Libraries)和运行环境(RunTime)
这部分内容开始涉及底层,开发普通的应用不会直接对这个层进行操作。
这层中包含了一组类库(Libraries)和运行时(RunTime),
1.系统C库(libc),一个从BSD集成来的标准C系统函数库(libc)它是专门为基于嵌入式Linux
的设备定制的。
2.媒体库(Media Framework),基于PackeVideo OpenCore,该库支持多种常用的音频,视频格式
以及回放和录制,同时支持静态图像文件。
编码格式包括:MPEG4、,MP3、AAC、AMR、JPG、PNG。
3.Surface Manager 对显示子系统的管理,并且为多个应用提供2D,3D图层的无缝融合。
4.WebKit,一个最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图。
5.SGL 底层的2D图形引擎。
6.OPENGL|ES,基于OpenGL ES APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加
速。
7.FreeType,位图(bitmap)和适量(vector)字图显示支持。
8.SQLite,一个对所有应用程序可用,功能强大的轻量级关系型数据库引擎。
9.Core Libraries 该核心库提供了Java编程语言核心库的大多数功能。
10.Dalvik VM, android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM。
四、操作系统(OS)
Android 的核心系统服务依赖于Linux 内核,操作系统为Android提供的服务包括:
1.安全性(Security)。
2.内存管理(Memory Management)
3.进程管理(Process Management)
4.网络堆栈(Network Stack)
5.驱动程序模型(Driver Model)包含以下这些常规的驱动程序:
(1)Display Driver
(2)Keypad Driver
(3)Camera Driver
(4)WiFi Driver
(5)Flash Memory Driver
(6)Audio Driver
(7)Binder(IPC) Driver
(8)Power Management
对android的整体框架有一定的了解后对与理解android的一些机制和应用开发有很大的帮助,只有了解了android框架才能更好的使用android提供的功能和服务。
从而使学习android应用开发少走弯路。