《移动操作系统应用与开发》期末复习.docx

上传人:b****3 文档编号:4794028 上传时间:2023-05-07 格式:DOCX 页数:16 大小:168.79KB
下载 相关 举报
《移动操作系统应用与开发》期末复习.docx_第1页
第1页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第2页
第2页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第3页
第3页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第4页
第4页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第5页
第5页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第6页
第6页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第7页
第7页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第8页
第8页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第9页
第9页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第10页
第10页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第11页
第11页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第12页
第12页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第13页
第13页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第14页
第14页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第15页
第15页 / 共16页
《移动操作系统应用与开发》期末复习.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《移动操作系统应用与开发》期末复习.docx

《《移动操作系统应用与开发》期末复习.docx》由会员分享,可在线阅读,更多相关《《移动操作系统应用与开发》期末复习.docx(16页珍藏版)》请在冰点文库上搜索。

《移动操作系统应用与开发》期末复习.docx

《移动操作系统应用与开发》期末复习

《移动操作系统应用与开发》期末复习

题型:

选择题(有单选,有多选,每个小题后面有表明)10个题

填空题10个空

简答题4个题

程序题1个大题

复习重点:

第零讲和第一讲:

Android的特点

特点1:

•应用框架可以重复使用,其组件也可以更换。

•Dalvik虚拟机针对移动设备进行了优化。

•优化的图形能力支持2D、3D图形(OpenGLES1.0)。

•集成了基于开源WebKit引掣的浏览器。

•SQLite作为结构化数据存储。

特点2:

•多媒体支持多种音频、视频格式。

•支持蓝牙Bluetooth,3G和WiFi

•支持照相机、GPS、指南针和加速度仪等传感器硬件。

•丰富的开发环境。

包括模拟机、调试工具、内存运行检测,以及为EclipseIDE所写的插件。

AndroidLibraries有哪些?

C/C++库:

被各种Android组件使用,通过应用程序框架开发者可以使用

媒体库:

编码格式包括MPEG4H.264MP3JPGPNG.....

SurfaceManager:

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

LibWebCore:

Web浏览器引擎

SGL:

底层的2D图形引擎。

2D,3Dlibraries图形库、引擎

WebKit

基于开源WebKit的浏览器

支持CSS、Javascript、DOM、Ajax

多媒体框架

基于PacketVideoOpenCORE平台

支持标准音频、视频

SQLite关系数据库引擎轻型数据库,支持多种平台

FreeType:

位图和矢量字体显示。

Android虚拟机与Java虚拟机

Android虚拟机:

DVM

Java虚拟机:

JVM

区别:

Dalvik和标准Java虚拟机(JVM)的差别

Dalvik更适合手机所用的嵌入式环境,占用内存少。

JVM通用Java虚拟机。

Dalvik虚拟机特点

Dalvik允许在有限的内存中同时运行多个虚拟机实例。

每一个Dalvik应用作为一个独立的Linux进程执行。

独立进程可防止在虚拟机崩溃的时候所有程序都被关闭。

Dalvik提供了一个拥有较Java少限制许可证的平台。

 

Android工程目录下主要文件和主要文件夹的作用

R.java文件:

由eclipse自动生成,应用开发者不需要修改里面的内容。

里面的内容的修改也是由eclipse自动来处理的。

在这个文件中Android对下面即将介绍的资源进行了全局索引。

res文件中内容发生任何改变,R.java都会重新编译,同步更新。

AndroidLibrary:

应用程序运行的库。

assets目录:

主要放置多媒体等一些文件。

res目录:

放置应用程序用到的资源,主要包含三个文件:

drawable目录:

放置图片资源。

layout目录:

放置布局文件。

这些布局文件都是xml文件。

AndroidManifest.xml:

这个文件相当重要,是应用的配置文件。

在这个文件里面,必须声明应用的名称,应用所用到的Activity,Service,以及receiver等。

第二讲:

几种AndroidUI常用的布局及特点

常用布局:

AbsoluteLayout

FrameLayout

GridView

LinearLayout

ListLayout

RadioGroup

TableLayout

线性布局LinearLayout:

垂直:

android:

orientation="vertical“

水平:

android:

orientation="horizontal"

FrameLayout:

在屏幕上故意保留的空白空间,可以填充一个单独的对象。

所有子元素都钉到屏幕的左上角

不能为子元素指定位置

TableLayout

子元素放入到行与列中

不显示行、列或是单元格边界线

单元格不能横跨行,如HTML中一样

AbsoluteLayout

指明子元素确切的屏幕(X,Y)坐标

(0,0)是左上角,下移或右移时,坐标值增加

允许元素重叠(但是不推荐)

注意:

一般建议不使用AbsoluteLayout除非你有很好的理由来使用它

因为它相当严格并且在不同的设备显示中不能很好地工作

RelativeLayout

让子元素指定它们相对于其他元素的位置(通过ID来指定)或相对于父布局对象,跟AbsoluteLayout这个绝对坐标布局是个相反。

在RelativeLayout布局里的控件包含丰富的排列属性:

Layoutabove:

控件在指定控件的上方

Layoutbelow:

控件在指定控件的下方

Layouttoleftof:

控件在指定控件的左方

使用RelativeLayout布局的时候,尽少程序运行时做控件布局的更改,因为RelativeLayout布局里面的属性之间,很容易冲突。

第三讲:

如何给应用程序添加菜单及菜单的事件响应?

(1)首先设置ItemId:

publicclassActivityMenuextendsActivity{

publicstaticfinalintITEM0=Menu.FIRST;

publicstaticfinalintITEM1=Menu.FIRST+1;

(2)创建菜单:

publicBooleanonCreateOptionsMenu(Menumenu){

super.onCreateOptionsMenu(menu);

menu.add(0,ITEM0,0,“显示button1”);

menu.add(0,ITEM1,1,“显示button2”);

returntrue;}

(3)菜单项的响应函数:

publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){

caseITEM0:

actionClickMenuItem1();

break;

caseITEM1:

actionClickMenuItem1();break;}

returnsuper.onOptionsItemSelected(item);}

(4)具体函数中,设置按钮可见属性的是:

button1.setVisibility(View.VISIBLE);

button1.setVisibility(View.INVISIBLE);

第四讲:

Spinner是如何显示的?

数据是如何添加的?

(1)main.xml中添加Button

(2)mainActivity.java中添加事件响应

2、新建一个布局spinner.xml

3、新建一个spinnerActivity.java文件并与spinner.xml相关联

4、在AndroidManifest.xml中记录一下新建的spinnerActivity

第一种实现Spinner内容的方法

1.在编程的时候载入列表数据。

首先定义一下需要载入的数据;

然后在onCreate方法中调用find_and_modify_view()来载入数据。

另外andorid也提供了两种基本的样式

android.R.layout.simple_spinner_item:

TextView的下拉菜单

android.R.layout.simple_spinner_dropdown_item:

右边带有radio的下拉菜单

2.在xml文件中预先定义数据。

在spinner.xml这个模板中添加Spinner组件,在SpinnerActivity.java中初始化其值。

第五讲:

ListView实验之重点把握ListView2

看代码

把握常用的几个ListView数据适配器

列表适配器数据元素的类型

ListViewAdapterData

ListView1ArrayAdapter数组String

ListView2SimpleAdapterArrayListMap

ListView3使用了ListActivity类

ListView4选项被选中的事件处理

第六讲:

SharedPreference和SQLite分别是做什么用的?

SharedPreference:

用来存储一些简单的配置信息的一种机制。

SQLite:

嵌入式开发的首选数据库;有服务器进程。

用一个数据库连接就行,可以不关闭连接。

一个SQLite数据库,就是一个文件;跨平台,可以自由复制;占用资源非常低

把握SharedPreference的例子实验。

ContentProvider和ContentResolver的作用

ContentProvider提供共享的数据

ContentResolver使用共享的数据

Android访问SQLite的主要API(相关类的作用)

SQLiteDatabase—提供了打开或创建数据库和操作数据的各种方法

SQLiteOpenHelper--为数据库的创建、打开和版本管理提供帮助

ContentValue-----负责存放一些名值对,名是String类型,值是基本类型

Cursor----在Android当中是一个非常有用的接口,通过Cursor我们可以对从数据库查询出来的结果集进行随机的读写访问。

SimpleCursorAdapter------负责把Cursor中的数据填充到ListView当中

第七讲:

应用程序显示notification的步骤

一般需要用到两个类Notification和NotificationManager。

使用步骤如下:

1、获得NotificationManager的实例:

NotificationManagermNotificationManager=

(NotificationManager)getSystemService(NOTIFICATION_SERVICE);

2、给即将定义的Notification定义一个ID,如:

privatestaticintNOTIFICATIONS_ID=R.layout.activity_notification;

每一个显示的Notification都有唯一的ID

3、获得Notification的一个实例化对象:

Notificationnotification=newNotification(drawable,tickerText,System.currentTimeMillis());

4、通过Notification的方法

setLatestEventInfo(Contentcontext,CharSequencecontentTitle,CharSequencecontentText,PendingIntentcontentIntent)来设置Notification展开时的特性。

例如:

PendingIntentcontentIntent=PendingIntent.getActivity(this,0,

newIntent(this,ActivityMain.class),0);

notification.setLatestEventInfo(this,title,content,contentIntent);

5、由NotificationManager发出Notification.

mNotificationManager.notify(NOTIFICATIONS_ID,notification)

补充方法:

如何由NotificationManager取消Notification?

mNotificationManager.cancel(NOTIFICATIONS_ID);

第八讲:

Dialog基本概念及基本知识点

Dialog类是一切对话框类的基类。

Dialog类虽然可以在界面上显示,但是并非继承自View类,而是直接继承自java.lang.Object

它的生命周期由Activity来维护,Activity负责生成、保存和恢复它。

在Activity当中用户可以主动调用的函数为:

showDialog(intid)

dismissDialog(intid)

onPrepareDialog(intid,Dialogdialog)方法,是当Dialog生成但是没有显示出来的时候,使得有机会在显示前对Dialog做一些修改,如对Dialog标题的修改。

生成Dialog的一般步骤

Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int),dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).

 

  onCreateDialog(int):

当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。

这样,每个对话框继承这个Activity的特定属性。

比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。

 

  showDialog(int):

 当你想要显示一个对话框时,调用showDialog(intid)方法并传递一个唯一标识这个对话框的整数。

当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(intid),你应该在这里初始化这个对话框Dialog。

这个回调方法被传以和showDialog(intid)相同的ID。

当你创建这个对话框后,在Activity的最后返回这个对象。

 

  onPrepareDialog(int,Dialog):

在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(intid,Dialog).如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。

这个方法在每次打开对话框时被调用,而onCreateDialog(int)仅在对话框第一次打开时被调用。

如果你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。

这个方法也被传递以对话框的ID,和在onCreateDialog()中创建的对话框对象。

 

  dismissDialog(int):

当你准备关闭对话框时,你可以通过对这个对话框调用dismiss()来消除它。

如果需要,你还可以从这个Activity中调用dismissDialog(intid)方法,这实际上将为你对这个对话框调用dismiss()方法。

如果你想使用onCreateDialog(intid)方法来管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候,这个对话框对象的状态将由该Activity保留。

如果你决定不再需要这个对象或者清除该状态是重要的,那么你应该调用removeDialog(intid)。

这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。

第九讲:

获取Activity返回值的方法

获取子Activity的返回值,一般可以分为以下三个步骤

1.以Sub-Activity的方式启动子Activity

调用startActivityForResult(Intent,requestCode)函数,参数Intent用于决定启动哪个Activity,参数requestCode是唯一的标识子Activity的请求码

显式启动子Activity的代码如下

intSUBACTIVITY1=1;

Intentintent=newIntent(this,SubActivity1.class);

startActivityForResult(intent,SUBACTIVITY1);

隐式启动子Activity的代码如下

intSUBACTIVITY2=2;

Uriuri=Uri.parse("content:

//contacts/people");

Intentintent=newIntent(Intent.ACTION_PICK,uri);

startActivityForResult(intent,SUBACTIVITY2);

2.设置子Activity的返回值

在子Activity调用finish()函数关闭前,调用setResult()函数将所需的数据返回给父Activity

setResult()函数有两个参数,结果码,返回值。

结果码:

表明了子Activity的返回状态,通常为Activity.RESULT_OK或者Activity.RESULT_CANCELED,或自定义的结果码,结果码均为整数类型

返回值:

用封装在Intent中,子Activity通过Intent将需要返回的数据传递给父Activity。

数据主要是Uri形式,可以附加一些额外信息,这些额外信息用Extra的集合表示。

下面代码说明如何在子Activity中设置返回值

Uridata=Uri.parse("tel:

"+tel_number);

Intentresult=newIntent(null,data);

result.putExtra("address","");

setResult(RESULT_OK,result);

finish();

3.在父Activity中获取返回值

当子Activity关闭时,启动它的父Activity的onActivityResult()函数将被调用;如果需要在父Activity中处理子Activity的返回值,则重载此函数即可

此函数的语法如下

publicvoidonActivityResult(intrequestCode,intresultCode,Intentdata);

第1个参数requestCode,用来表示是哪一个子Activity的返回值

第2个参数resultCode用于表示子Activity的返回状态

第3个参数data是子Activity的返回数据,返回数据类型是Intent。

根据返回数据的用途不同,Uri数据的协议则不同,也可以使用Extra方法返回一些原始类型的数据

下面代码说明如何在父Activity中处理子Activity的返回值

privatestaticfinalintSUBACTIVITY1=1;

privatestaticfinalintSUBACTIVITY2=2;

publicvoidonActivityResult(intrequestCode,intresultCode,Intentdata){

Super.onActivityResult(requestCode,resultCode,data);

switch(requestCode){

caseSUBACTIVITY1:

if(resultCode==Activity.RESULT_OK){

UriuriData=data.getData();

}elseif(resultCode==Activity.RESULT_CANCEL){

}

break;

caseSUBACTIVITY2:

if(resultCode==Activity.RESULT_OK){

UriuriData=data.getData();

}

break;

}

}

广播事件和接收事件的一般方法

广播事件

构造一个Intent,然后调用sendBroadcast进行广播:

例如:

publicstaticfinalStringNEW_BROADCAST=“com.eoe.action.NEW_BROADCAST”

Intentintent=newIntent(NEW_BROADCAST);

sendBroadcast(intent);

接收事件

1.实现一个类继承自BroadcastReceiver,并重写此类中的onReceive方法。

例如:

PublicclassMyReceiverextendsBroadcastReceiver{

PublicvoidonReceive(Contextcontext,Intentintent){….}

}

2.注册BroadcastReceiver(主要是设置对哪些Intent进行监听?

例如:

name=“MyReceiver">

android:

name="=“com.eoe.action.NEW_BROADCAST"/>

第十讲:

Service有什么作用?

service服务是运行在后台的一段代码。

它可以运行在它自己的进程,也可以运行在其他应用程序进程的上下文(context)里面,这取决于自身的需要。

其它的组件可以绑定到一个服务(Service)上面,通过远程过程调用(RPC)来调用这个方法。

Service的两种使用方法?

启动方式:

通过调用Context.startService()启动Service,通过调用Context.stopService()或Service.stopSefl()停止Service

绑定方式:

通过服务链接(Connection)或直接获取Service中状态和数据信息

绑定方式特点:

服务链接能够获取Service的对象,因此绑定Service的组件可以调用Service中的实现的函数

使用Service的组件通过Context.bindService()建立服务链接,通过Context.unbindService()停止服务链接

如果在绑定过程中Service没有启动,Context.bindService()会自动启动Service

同一个Service可以绑定多个服务链接,这样可以同时为多个不同的组件提供服务Service的生命周期:

1.startService后,即使调用startService的进程结束了Service仍然还存在,直到有进程调用stopService,或者Service自己自杀(stopSelf())就没法了

2.bindService后,Service就和调用bindService的进程同生共死了,也就是说当调用bindService的进程死了,那么它bind的Service也要跟着被结束,当然期间也可以调用unbindservice让

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2