《手机应用软件设计与实现》复习资料卢冶打印.docx
《《手机应用软件设计与实现》复习资料卢冶打印.docx》由会员分享,可在线阅读,更多相关《《手机应用软件设计与实现》复习资料卢冶打印.docx(34页珍藏版)》请在冰点文库上搜索。
《手机应用软件设计与实现》复习资料卢冶打印
《手机应用软件设计与实现》课程期末复习资料
★考核知识点:
Activity生命周期
附1.1.1(考核知识点解释):
Activity声明周期方法中,启动时的调用顺序依次为
onCreate()->onStart()->onResume()
程序退出时的调用顺序依次为
onPause()-->onStop()-->onDestroy()
还包括onRestart()
因此并不包含onInit()
★考核知识点:
摄像头权限配置
附1.1.2(考核知识点解释)
根据Android系统应用程序权限使用要求,当调用摄像头拍照权限时,需要在AndroidManifest.xml中进行配置,因此选A。
B选项是挂载和卸载文件系统权限
C选项是向外部存储写入数据时所需权限
D选项是接入网络进行网络访问所需权限
★考核知识点:
数据存储之XML文件解析方法
附1.1.3(考核知识点解释)
Android系统中对XML文件解析时可采用SAX、DOM、PULL等方法,其中DOM方法是将整个文档调入内存,因此占用资源较多,相比较而言,SAX只调入文档的一部分加入内存。
★考核知识点:
位置管理与位置服务
附1.1.4(考核知识点解释)
通过LocationManager可以获取Location对象,进而得到关于位置的诸多属性和信息,在获取位置服务时,可以使用GPS也可以使用Wifi,其中GPS精度较高,但受限于障碍物、天气等原因,在室外使用时较好,室内无法获取GPS信号,且获取GPS信号时间消耗较多,使用过程中GPS模块一直开启,是手机中除了屏幕显示模块外最为耗电的模块。
通过Wifi获得位置信息精度较低但获取速度快,且耗电量少。
★考核知识点:
适配器的作用
附1.1.5(考核知识点解释)
Android系统中提供了适配器机制,是一种MVC模式的具体体现,通过适配器将程序中的数据信息与程序界面的控件建立关联映射,进而通过控件显示数据。
因此选择A。
★考核知识点:
数据存储之SQL数据库基本知识
附1.1.6(考核知识点解释)
SQLite是手机应用程序常用数据库;MySQL、SQLServer、DB2一般用于服务器端数据存储。
SQLite是轻量型数据库,拥有便捷快速等特点,适用于移动端的数据存储。
★考核知识点:
Activity生命周期、状态与执行顺序
附1.1.7(考核知识点解释)
Activity的创建和销毁共经历四种状态。
1.活动状态:
当前的Activity,位于Activity栈顶,用户可见,并且可以获得焦点。
2.暂停状态:
失去焦点的Activity,依然可见,即使在内存低的情况下,也不会被系统杀死。
3.停止状态:
该Activity被其他Activity所覆盖,不可见,但是仍然保存所有的状态和信息。
当内存低的情况下,它将要被系统杀死。
4.销毁状态:
该Activity结束,或Activity所在的Dalvik进程结束。
当它由可见状态转向半透明状态时,失去了焦点但依然可见,因此选择B。
★考核知识点:
ContentResolver类基本用法
附1.1.8(考核知识点解释)
ContentProvider为存储和获取数据提供统一的接口。
可以在不同的应用程序之间共享数据。
Android已经为常见的一些数据提供了默认的ContentProvider。
ContentProvider使用表的形式来组织数据,无论数据的来源是什么,ContentProvider都会认为是一种表,然后把数据组织成表格。
ContentProvider提供了诸多方法,在实际使用中需要实现,如:
query:
查询
insert:
插入
update:
更新
delete:
删除
getType:
得到数据类型
onCreate:
创建
由于ContentProvider只是抽象类,所以在实际使用过程中,往往借助于ContentResolver进行具体实现,即欲实现查询就要实现ContentResolver的query方法,因此选择B。
★考核知识点:
Activity基础知识
附1.1.9(考核知识点解释)
在Android系统中,Activity被以栈的方式进行组织,Activity共有四种启动模式,其中singleTop是保持该Activity在栈顶,singleTask是在栈中只存入单一一个Activity。
当在不同的Activity间跳转时,实际上就是将Activity压栈和出栈的过程。
因此选择D。
★考核知识点:
布局管理器之表格布局特点
附1.1.10(考核知识点解释)
在Android系统中,常见五种布局管理器,其中AbsoluteLayout由于不适应Android屏幕多样性已逐渐被废弃,其他四种布局分别是LinearLayout、FrameLayout、RelativeLayout和TableLayout,其中表格布局TableLayout具备折叠列的属性,不管屏幕是否能显示下,一旦启用该属性,如Android:
collapseColumns="2,3"意味着将采用折叠第2,3列的方式进行显示。
★考核知识点:
Service基本知识与获取途径
附1.1.11(考核知识点解释)
在Android系统中,获取Service对象需要通过getService()方法进行,通过一定的参数选项,指定获取哪些系统服务,该方法可按参数返回用户所需的系统Service对象。
StartService是启动Service的一种方法,因此选择A
★考核知识点:
Intent基本知识
附1.1.12(考核知识点解释)
在Android系统中,四大组件分别为Activity、Service、BroadcastReceiver和ContentProvider,Intent是连接四大组件的纽带,它可以实现程序在不同界面Activity间的切换,切换的同时携带数据及动作类型等信息。
处理一个应用程序整体性的工作是AndroidManifest的作用;选项B是Service的作用;选项C是ContentProvider的作用。
因此选D。
★考核知识点:
Intent基本知识
附1.1.13(考核知识点解释)
在Android系统中,其采用的虚拟机是Dalvik,JVM是Java虚拟机,KVM是虚拟化技术的一种,Framework是Android中的框架层。
JVM中,java文件被编译为class文件再被打包为jar文件,在Dalvik中,java文件被编译为dex文件再被打包为apk文件。
在架构上,Dalvik虚拟机是基于寄存器实现的,JVM是基于栈实现的。
因此选择A。
★考核知识点:
补间动画(渐变动画)基本知识
附1.1.14(考核知识点解释)
在Android系统中,动画分为两种,分别为补间动画(渐变动画)和帧动画。
其中,补间动画又分为四大类,移动、缩放、旋转、透明,分别是Animation类的子类。
因此,选择A。
★考核知识点:
TextView文本组件与事件处理
附1.1.15(考核知识点解释)
在Android系统中,事件处理的过程是获取事件源、绑定事件监听器、监听事件、分发事件、处理事件,当特定监听器被设定为监听某个事件来源时,一旦符合监听器的策略,随即触发该事件。
因此,当文本组件内容改变时则触发Change事件处理。
因此选择C。
★考核知识点:
Android应用程序项目工程架构分析
附1.1.16(考核知识点解释)
在Android项目工程中,res/values专门存放应用使用到的各种类型数据。
不同类型的数据存放在不同的文件中。
res/layout专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面。
res/raw/该目录用于存放应用使用到的原始文件,如音效文件等。
编译软件时,这些数据不会被编译,它们被直接加入到程序安装包里。
res/drawable专门存放png、jpg等图标文件。
在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源。
因此选D。
★考核知识点:
手机服务之传感器事件处理
附1.1.17(考核知识点解释)
在Android系统中,通过传感器对象获取传感器事件的信息,包括原始数据、数据精度、传感器类型等基本属性和方法。
因此选D。
★考核知识点:
Activity生命周期与执行顺序
附1.1.18(考核知识点解释)
在Android系统的Activity生命周期中,第一个执行的方法是onCreate,即启动后先后经历onCreate、onStart、onResume。
★考核知识点:
手机服务之蓝牙服务
附1.1.19(考核知识点解释)
在Android系统中获取手机服务通常通过一个管理类来获取其对应的类对象,通过对类对象的操作,实现对相应服务的获取。
在建立蓝牙连接的过程中,通过适配器组件提供的getDefaultAdatper可以获得与之对应的BluetoothAdapter对象。
★考核知识点:
数据存储之文件操作
附1.1.20(考核知识点解释)
Android文件存储的4种方式:
Context.MODE_PRIVATE:
为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。
可以使用Context.MODE_APPEND:
模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE
和Context.MODE_WORLD_WRITEABLE
用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:
表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:
表示当前文件可以被其他应用写入。
★考核知识点:
Activity启动模式
附1.2.1(考核知识点解释)
共有四种启动模式:
standard、singleTop、singleTask、singleInstance。
1、standard:
系统的默认模式,一次跳转即会生成一个新的实例。
假设有一个activity命名为A1,执行语句:
startActivity(newIntent(A1.this,A1.class));
后A1将跳转到另外一个A1,也就是现在的栈里面有A1的两个实例。
按返回键后你会发现仍然是在A1(第一个)里面。
2、singleTop:
singleTop跟standard模式比较类似。
唯一的区别就是,当跳转的对象是位于栈顶的activity时,程序将不会生成一个新的activity实例,而是直接跳到现存于栈顶的那个activity实例。
拿上面的例子来说,当A1为singleTop模式时,执行跳转后栈里面依旧只有一个实例,如果现在按返回键程序将直接退出。
3、singleTask:
singleTask模式和后面的singleInstance模式都是只创建一个实例的。
在这种模式下,无论跳转的对象是不是位于栈顶的activity,程序都不会生成一个新的实例。
这种模式相当有用,在以后的多activity开发中,经常会因为跳转的关系导致同个页面生成多个实例,这个在用户体验上始终有点不好,而如果你将对应的activity声明为singleTask模式,这种问题将不复存在。
4、singleInstance:
设置为singleInstance模式的activity将独占一个task(task可以理解为进程),独占一个task的activity与其说是activity,倒不如说是一个应用,这个应用与其他activity是独立的,它有自己的上下文activity。
★考核知识点:
ContentProvider继承实现
附1.2.2(考核知识点解释)
ContentProvider提供了不同应用程序间的数据共享方法,那么继承ContentProvider类需要实现其增删改查四个接口。
★考核知识点:
数据存储之XML文件解析
附1.2.3(考核知识点解释)
在Android中,系统提供了DOM、SAX以及XmlPull等方法。
DOM每次解析均将文件完全调入内存,SAX是事先调用部分到内存。
★考核知识点:
数据交互格式
附1.2.4(考核知识点解释)
手机与Web领域交互,数据一般组织为XML格式或JSON格式,这两种方式分别完成了由对象到字符串的双向传递和改变。
HTML是静态标记语言,AJAX用于JS网站前端交互。
因此选择AC。
★考核知识点:
菜单组件属性与方法
附1.2.5(考核知识点解释)
在Android中使用Menu就要重写方法onCreateOptionMenu,当实现菜单中的元素响应事件时,可能需要重写onOptionItemSelected。
因此选择AB。
★考核知识点:
SQLite数据库存储与访问
附1.2.6(考核知识点解释)
在Android中使用SQLite数据库时往往通过SQLiteOpenHelper这个类作为辅助类完成相应操作,在该类中提供了两种方法可供生成并打开数据库,即为BC。
★考核知识点:
广播作用与机制
附1.2.7(考核知识点解释)
在Android中广播的作用是启动相应的广播事件接收器所响应的Service或Activity。
修改用户界面只能由主线程操作。
因此选择AB.
★考核知识点:
手机服务与权限
附1.2.8(考核知识点解释)
在Android中,播放mp3文件不需要额外声明权限,读SD卡状态同样不需要。
当读短信时,需要声明
name="android.permission.READ_SMS">
当访问蓝牙时需要声明
name="android.permission.BLUETOOTH"/>
★考核知识点:
动画基本知识
在Android系统中,动画分为两种,分别为补间动画(渐变动画)和帧动画。
其中,补间动画又分为四大类,移动、缩放、旋转、透明,分别是Animation类的子类。
因此,选择AD。
★考核知识点:
消息机制与通信
附1.3.1(考核知识点解释)
程序启动后,系统会自动建立MessageQueue用于维护主线程UIThread。
★考核知识点:
对话框
附1.3.2(考核知识点解释)
Android系统中输入日期的选择对话框组件DatePickerDialog,时间对话框是TimerPickerDialog。
★考核知识点:
消息机制与通信
附1.3.3(考核知识点解释)
NotificationManager是系统的一个服务,清除消息应该使用的方法是cancel方法。
★考核知识点:
MediaPlayer播放方法
附1.3.4(考核知识点解释)
MediaPlayer在播放MP3文件时,会先调用setDataSource方法创建文件源。
★考核知识点:
Android系统体系结构划分
附1.3.5(考核知识点解释)
MediaPlayer在播放MP3文件时,会先调用setDataSource方法创建文件源。
★考核知识点:
列表及适配器
附1.3.6(考核知识点解释)
ListView是界面控制组件,可通过适配器建立起数据到达控件的映射,simpleAdapter不仅能够在ListView中使用,也可以使用其他类型的适配器。
★考核知识点:
ZoomControls类常用方法
附1.3.7(考核知识点解释)
ZoomControls提供了setOnZoomOutClickListener和setOnZoomInClickListener对应的是配置缩小按钮,还是配置放大按钮。
★考核知识点:
数据库Cursor类常用方法
附1.3.8(考核知识点解释)
数据库的Cursor如果未关闭,那么存在内存泄露的隐患,所以在使用cursor过后一定要关闭。
★考核知识点:
MediaPlayer类常用方法
附1.3.9(考核知识点解释)
MediaPlayer会调用prepare方法,create方法只是创建了一个MediaPlayer的实例,真正的播放还是start函数方法。
★考核知识点:
广播接收器配置方法
附1.3.10(考核知识点解释)
广播接收器可在配置文件中注册,也可以采用在java代码中进行手工注册。
★考核知识点:
Service启动方式
附1.3.11(考核知识点解释)
当Service启动过后,Android系统不再为该服务调用onCreate函数,即不重复创建。
★考核知识点:
Intent作用法
附1.3.12(考核知识点解释)
四大组件分别为Activity、Service、BroadcastReceiver和ContentProvider,Intent是连接四大组件的纽带。
★考核知识点:
Android应用程序架构
附1.3.13(考核知识点解释)
gen目录中存放所有由Android开发工具自动生成的文件。
目录中最重要的就是R.java文件。
这个文件由Android开发工具自动产生的。
Android开发工具会自动根据放入res目录的资源,同步更新修改R.java文件。
正因为R.java文件是由开发工具自动生成的,所以应避免手工修改R.java。
R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。
另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。
★考核知识点:
Android系统体系结构层次划分
附1.3.14(考核知识点解释)
Andorid体系结构从下至上依次划分为:
LinuxKernel、Lib&Runtime、Framework、Application。
★考核知识点:
利用Intent启动Activity的方法
附2.1.1(考核知识点解释)
启动Activity常用方法为startActivity和startActivityForResult。
两种方式的区别在于1、startActivity() 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity()。
2、startActivityForResult() 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult()方法。
★考核知识点:
广播基础知识
附2.1.2(考核知识点解释)
从实现原理看上,Android中的广播使用了观察者模式,基于消息的发布/订阅事件模型。
因此,从实现的角度来看,Android中的广播将广播的发送者和接受者极大程度上解耦,使得系统能够方便集成,更易扩展。
具体实现流程要点粗略概括如下:
1.广播接收者BroadcastReceiver通过Binder机制向AMS(ActivityManagerService)进行注册;2.广播发送者通过binder机制向AMS发送广播;3.AMS查找符合相应条件(IntentFilter/Permission等)的BroadcastReceiver,将广播发送到BroadcastReceiver(一般情况下是Activity)相应的消息循环队列中;4.消息循环执行拿到此广播,回调BroadcastReceiver中的onReceive()方法。
无序广播:
通过Context.sendBroadcast()方法来发送,它是完全异步的。
所有的receivers(接收器)的执行顺序不确定,因此所有的receivers(接收器)接收broadcast的顺序不确定。
这种方式效率更高,但是BroadcastReceiver无法使用setResult系列、getResult系列及abort(中止)系列API
有序广播:
是通过Context.sendOrderedBroadcast来发送,所有的receiver依次执行。
BroadcastReceiver可以使用setResult系列函数来结果传给下一个BroadcastReceiver,通过getResult系列函数来取得上个BroadcastReceiver返回的结果,并可以abort系列函数来让系统丢弃该广播,使用该广播不再传送到别的BroadcastReceiver。
可以通过在intent-filter中设置android:
priority属性来设置receiver的优先级,优先级相同的receiver其执行顺序不确定。
如果BroadcastReceiver是代码中注册的话,且其intent-filter拥有相同android:
priority属性的话,先注册的将先收到广播。
有序广播,即从优先级别最高的广播接收器开始接收,接收完了如果没有丢弃,就下传给下一个次高优先级别的广播接收器进行处理,依次类推,直到最后。
如果多个应用程序设置的优先级别相同,则谁先注册的广播,谁就可以优先接收到广播。
★考核知识点:
广播基础知识
附2.1.3(考核知识点解释)
Android中常见的布局管理器方式有四种,分别是LinearLayout、FrameLayout、_RelativeLayout_、TableLayout。
还有一种AbsoluteLayout,但一般在实际应用中不使用,因其自身对适配性支持度不够。
★考核知识点:
Andorid应用程序架构及工程目录分析
附2.1.4(考核知识点解释)
Assets目录的作用是:
该目录下的文件资源不会被编译,而是被原封不动打包到apk中。
★考核知识点:
Service启动顺序
附2.1.5(考核知识点解释)
Android中启动服务的方式由两种,分别为startService和bindService,通过startService启动服务时系统先调用服务的onCreate然后调用onStart方法。
当服务创建后,再次通过startService后,不会再次调用onCreate。
★考核知识点:
Intent携带数据类型
附2.1.6(考核知识点解释)
Intent的作用是连接四大组件,通过Intent可以传递数据,类型有七种,分别是Action、Type、Data、Extras、Category、Component、Flag。
★考核知识点:
传感器的使用
附2.1.7(考核知识点解释)
在Android系统中,使用传感器或获取传感器数据、操作传感器等需要通过传感器对象获得,如使用Wifi传感器时,通过WifiManager获取对象。
所以在Android中注册传感器需要先获取对象SensorManager。
★考核知识点:
WebService使用方法
附2.1.8(考核知识点解释)
SOAP是简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscoveryandIntegratio