移动应用开发复习大纲题型介绍(ppt第1——9章)选择题:10个,20分简答题:10个:50分编程题:3个:30分一、简答第1章Android概述.1.1android平台架构分为哪几层,每层基本作用是什么?1)应用程序层Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化2)应用程序框架层应用程序框架层是我们从事Android开发的基础,它提供了大量API供开发者使用,很多核心应用程序也是通过这一层来实现其核心功能的。该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序的开发,也可以通过继承而实现个性化的拓展。3)系统运行库层Android包含一个核心库的集合,提供了大部分Java编程语言核心库中可用的功能。系统运行库层可以分成两部分,分别是系统库和Android运行时。4)Linux内核层Android内核是基于Linux2.6内核的,它是一个增强内核版本,除了修改部分BUG外,它提供了用于支持Android平台的设备驱动。Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。Linux内核也是系统硬件和软件叠层之间的抽象层。1.2android应用开发程序中的四个最主要组件及作用。1)Activitya)应用程序入口b)界面显示,接受事件(如按键),控制显示跳转2)Servicea)后台运行b)可以与其他组件(如Activity,BroadcastReceiver,ContentProvider)通过远程连接绑定进行交互。c)可对外提供服务交互接口d)生命周期不依赖于其他组件的存在与否。3)BroadcastReceivera)用于祖册和接受系统广播事件b)可接受自定义的广播事件。4)ContentProvidera)提供数据库查询接口b)可对外公开数据查询服务1.3androidDalvik虚拟机虚拟机与JVM的区别。1)Dalvik和标准Java虚拟机(JVM)首要差别Dalvik基于寄存器,而JVM基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。2)Dalvik和Java运行环境的区别Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例并且每一个Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。3)JVM虚拟机运行的是Java字节码(通常是.class文件),但Dalvik运行的是其专有的dex文件。JVM直接从.class文件或JAR包中加载字节码然后运行;而Dalvik则无法直接从.class文件或者JAR包中加载字节码,他需要DX工具将应用程序的所有.class文件编译成.dex文件,Dalvik则运行该.dex文件。4)Dalvik完全为Android定制的虚拟机,基于QEMU。Dalvik为嵌入式环境设计。第2章Android开发基础.2.1android常用工具及其作用。1)AVD(AndroidVirtualDevice):可以在电脑上运行的“虚拟手机”2)Android模拟器(Emulator):模拟Android系统手机的绝大部分功能。3)DDMS调试工具(DalvikDebugMonitorService):调试Android应用4)ADB(AndroidDebugBridge):○1查看当前运行的模拟器②电脑与模拟器之间文件的相互复制③启动模拟器的shell窗口④安装、卸载APK程序2.2android工程项目文件结构及各个文件作用。1)res目录:它用于存放Android项目的各种资源文件,比如layout存放界面布局文件;valus目录下则存放各种XML格式的资源文件;drawable-ldpi、drawable-mdpi、drawable-hdpi三个子目录则分别存放小、中、大三种图片文件。2)src目录只是一个普通的、保存Java源文件的目录。3)AndroidManifest.xml文件是Android项目的系统清单文件,它用于控制Android应用的名称、图标、访问权限等整体属性。2.3activity的生命周期。(P191)Activity的四个状态:1)活动状态:当期啊Activity位于前台,用户可见,可以获得焦点。2)暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。3)停止状态:该Activity不可见,失去焦点。4)销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束。第3章Android中的资源访问3.1android中原始资源的几种存放位置及读取方法。1)位于/res/raw目录下,AndroidSDK会处理该目录下原始资源,AndroidSDK会在R类中为该目下的资源生成一个索引项读取方法:a)在XML文件中课通过如下语法格式来访问它:@[package_name:]raw.file_nameb)在Java代码中然如下语法格式来访问它:[package.]R.raw.file_name2)位于/assets/目录下,该目录下的资源是更彻底的原始资源。Android应用需要通过AssetManager来管理该目下的原始资源.读取方法:a)InputStreamopen(Stringfilename):根据文件名来获取原始资源对应的输入流。b)AssetFileDescriptor。AssetFileDescriptor代表了一想原始资源的描述,应用程序可通过AssetFileDescriptor来获取原始资源。3.2android程序中资源类型及主要作用。(P215)目录结构资源类型res/anim/XML动画文件res/color/不同状态下颜色列表的XML文件res/drawable/位图文件(如:*.png、*.9.png、*.jpg、*.gif)等。res/layout/界面布局文件res/values/各种XML资源文件arrays.xml:XML数组文件colors.xml:XML颜色文件dimens.xml:XML尺寸文件styles.xml:XML样式文件res/xml/任意XML文件res/raw/直接复制到设备中的原生文件res/menu/XML菜单文件第4章Android用户界面4.1手机框架层设计中常见的几种界面布局形式。1)线性布局LinearLayout按照垂直或水平方向布局组件2)帧布局FrameLayout从屏幕的左上角坐标布局组件3)表格布局TableLayout类似于tabletr,采用行列的形式来管理组件4)相对布局RelativeLayout可以指定组件之间的相对位置关系5)绝对布局AbsoluteLayout按照绝对坐标来布局组件,需要制定左上角的(x,y)值4.2android中适配器(Adapter)的作用及类型。Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。它的功能是将数据绑定到UI界面上。比较常见的有BaseAdapter、ArrayAdapter、SimpleAdapter、SimpleCursorAdapter。1)BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;2)ArrayAdapter支持泛型操作,最为简单,只能展示一行字。3)SimpleAdapter有最好的扩充性,可以自定义出各种效果。4)SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。可以认为是SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。第5章Android组件之间的信使Intent5.1android中Intent组件由哪几部分组成,并简述每部分作用。//intent-filter由以下元素actiondatacategory5.2android中Intent查找activity组件的几种方式,并举例说明。1)显示Intent-----明确指定找谁显示Intent的实现方式方式1:Intentintent=newIntent(context,目标类);startActivity(intent);方式2:Intentintent=newIntent();ComponentNamecn=newComponentName(context,目标类);intent.setComponent(cn);startActivity(intent);2)隐式Intent--------指定一些条件,由Android系统去搜索。如果符合条件的有多个,则Android系统提示用户进行选择。Action(动作)属性——指定要完成的动作,是一个字符串。Data(数据)属性——与某些Action属性搭配。采用URI的形式,指定所执行Action需要的数据,同时隐式指定了以哪种方式来处理(Type属性-MIME类型)。Category(分类)属性——Action的附加信息第6章AndroidService组件6.1Service的几种调用方式。1)通过Context的startService()方法:通过方法启动Service,访问者与Service之间没有关联,即使访问者退出了,Service仍然运行。2)通过Context的bindService()方法:使用该方法启用Service,访问者与Service绑定在了一起,访问者一旦退出,Service也就终止。6.2Service组件的生命周期。Service生命周期主要包含以下几个方法:onCreate()onBind(Intentintent)onStart(Intentintent,intstartId)onDestory()启动服务时,如果尚未创建,则先调用onCreate()方法,再调用onStart()绑定服务时,如果尚未创建,则先调用onCreate()方法,再调用onBind()第7章AndroidBroadcastReceiver组件Broadcast分为哪几种类型,并简述各种类型Broadcast的特点。Broadcast分为“普通广播(Normalbroadcasts)”和“有序广播(Orderedbroadcasts)”。1)普通广播是完全异步的,可以在同一时刻(逻辑上)被所有接收者接收到,消息传递的效率比较高,但缺点是接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播。2)有序广播是按照接收者声明的优先级别,被接收者依次接收广播。有序广播的接收者可以终止广播Intent的传播,广播Intent的传播一旦终止,后面的接收者就无法接收到广播。另外,有序广播的接收者可以将数据传递给下一个接收者,如:A得到广播后,可以往它的结果对象中存入数据,当广播传给B时,B可以从A的结果对象中得到A存入的数据。第8章Android的IO及数据存取Android除了提供界面输入外,还提供哪些输入方法?并简述这些方法。(1)手势,其实就是指用户手指或触摸笔在触摸屏上的连续触碰行为,比如在屏幕上从左到右划出一个动作,就是手势,再比如在屏幕上划出一个圆圈也是手势。手势这种连续的触碰会形成某个方向上的移动趋势,也会形成一个不规则的几何图形。Android对两种手势行为都提供了支持:①对于第一种手势行为而言,Android提供了手势检测,并为手势检测提供了相应的监听器。②对于第二种手势行为,Android允许开发者增加手势,并提供相应的API识别用户手