《天津理工大学移动终端开发技术(安卓)期末考试复习题(共10页).docx》由会员分享,可在线阅读,更多相关《天津理工大学移动终端开发技术(安卓)期末考试复习题(共10页).docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上双向调用如何实现?远程服务如何实现?简答题1、可见进程可见进程指部分程序界面能够被用户看见,却不在前台与用户交互,不响应界面事件的进程。2、简述R.java和AndroidManifest.xml文件的用途 R.java文件是ADT自动生成的文件,包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源。R.java文件不能手工修改。 AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程
2、序名称、图标、包名称、模块组成、授权和SDK最低版本等,而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件。3、简述Android系统的4种基本组件Activity、service、Content Provider的用途 Activity(活动):应用程序表示层,应用程序中的每一个屏幕都是Activity类的扩展。 Service(服务):应用程序不可见的工作者,在后台运行。 ContentProvider(内容提供器):可共享的数据存储器,提供可共享的数据库功能。私有数据一般不采用ContentProvider,而是使用文件,或者SQLite中的数据库
3、。 BroadcastReceiver(广播接收器):意图广播的使用者。通过创建和注册广播接收器,应用程序可以监听到那些匹配特定的过滤标准的意图广播。4、简述Activity生命周期的四种状态,以及状态之间的变换关系。 Activity表现为四种状态: 活动状态:Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互。 暂停状态:Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互。 停止状态:Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡。 非活动状态:不在以上三种
4、状态中的Activity则处于非活动状态(被用户关闭或系统终止)。 转换关系:5、简述Activity事件回调函数的作用和调用顺序。 onCreate():Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等。 onStart():当Activity显示在屏幕上时,该函数被调用。 onRestart():当Activity从停止状态进入活动状态前,调用该函数。onPause():当Activity进入暂停状态时,该函数被调用。一般用来保存持久的数据或释放占用的资源。onStop():当Activity进入停止状态时,该函数被调用。
5、onDestroy():在Activity被终止前,即进入非活动状态前,该函数被调用。onSaveInstanceState():Android系统因资源不足终止Activity前调用该函数,用以保存Activity的状态信息,供onRestoreInstanceState()或onCreate()恢复之用。onRestoreInstanceState():恢复onSaveInstanceState()保存的Activity状态信息,在onStart()和onResume ()之间被调用。6、简述5种界面布局的特点 线性布局:在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列,如果垂
6、直排列,则每行仅包含一个界面元素,如果水平排列,则每列仅包含一个界面元素。 框架布局:最简单的界面布局,是用来存放一个元素的空白空间,且子元素的位置是不能够指定的,只能够放置在空白空间的左上角,如果有多个子元素,后放置的子元素将遮挡先放置的子元素。 网格布局:将屏幕划分网格,通过指定行和列可以将界面元素添加的网格中网格的边界对用户是不可见的表格布局还支持嵌套,可以将另一个表格布局放置在前一个表格布局的网格中,也可以在表格布局中添加其他界面布局,例如线性布局、相对布局等等 相对布局:相对布局(RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素与其他元素的相对位置关系,确
7、定界面中所有元素的布局位置,能够最大程度保证在各种屏幕类型的手机上正确显示界面布局。 绝对布局:绝对布局(AbsoluteLayout)能通过指定界面元素的坐标位置,来确定用户界面的整体布局。7、简述Android系统支持三种菜单选项菜单(Menu类),包括图标菜单、扩展菜单;子菜单(SubMenu类);快捷菜单(ContextMenu类)。8、简述Intent的定义和用途Intent是一种组件之间消息传递机制,是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。Intent的用途:启动Activity和Service;在Android系统上发布广播消息。9、启动Activi
8、ty方式显式启动,程序必须在Intent中指明启动的Activity所在的类。隐式启动, Android系统根据Intent的动作和数据来决定启动哪一个Activity,也就是说在隐式启动时,Intent中只包含需要执行的动作和所包含的数据,而无需指明具体启动哪一个Activity,选择权由Android系统和最终用户来决定。10、简述Intent过滤器的定义和功能定义:Intent过滤器是一种根据Intent中的动作(Action)、类别(Categorie)和数据(Data)等内容,对适合接收该Intent的组件进行匹配和筛选的机制。功能:Intent过滤器可以匹配数据类型、路径和协议,还
9、包括可以用来确定多个匹配项顺序的优先级(Priority);应用程序的Activity组件、Service组件和BroadcastReceiver都可以注册Intent过滤器,则这些组件在特定的数据格式上就可以产生相应的动作。11、Intent解析的匹配规则 没有指定“动作”的Intent过滤器可以匹配任何的Intent,但是没有指定“类别”的Intent过滤器只能匹配没有“类别”的Intent,把Intent“数据”Uri的每个子部与Intent过滤器的标签中的属性进行匹配,如果标签指定了协议、主机名、路径名或MIME类型,那么这些属性都要与Intent的Uri数据部分进行匹配,任何不匹配的
10、Intent过滤器均被过滤掉。12、简述Service的基本原理和用途 定义:Service是Android系统的后台服务组件,适用于开发无界面、长时间运行的应用功能。用途:用于进程间通信(Inter Process Communication,IPC),解决两个不同Android应用程序进程之间的调用和通讯问题。 特点:没有用户界面;比处于非活动状态的Activity 优先级高,不会轻易被Android系统终止。即使Service被系统终止,在系统资源恢复后Service也将自动恢复运行状态。13、实现远程服务的步骤接口定义:使用AIDL语言定义跨进程服务的接口。接口实现:根据AIDL语言定
11、义的接口,在具体的Service类中实现接口中定义的方法和属性。接口使用:在需要调用跨进程服务的组件中,通过相同的AIDL接口文件,调用跨进程服务。14、简述在嵌入式系统中使用SQLite数据库的优势SQLite是一个开源的嵌入式关系数据库,在2000年由D. Richard Hipp发布,其优势(特点)有:更加适用于嵌入式系统,嵌入到使用它的应用程序中;占用资源非常少,运行高效可靠,可移植性好;提供了零配置(zero-configuration)运行模式。15、Android系统支持四种文件操作模式MODE_PRIVATE(私有模式)缺省模式,文件仅能够被文件创建程序访问,或具有相同UID的
12、程序访问。MODE_APPEND,追加模式,如果文件已经存在,则在文件的结尾处添加新数据。MODE_WORLD_READABLE全局读模式。MODE_WORLD_WRITEABLE全局写模式,允许任何程序写入私有文件。16、简述Android NDK开发的优势和不足。优势:解决了核心模块使用托管语言开发执行效率低下的问题;允许程序开发人员直接使用C/C+源代码,极大的提高了Android应用程序开发的灵活性。不足:增加程序的使用非托管代码复杂性,增加了程序调试的难度;CPU运算量大和内存消耗较少的部分运行效率最高, (例如信号处理或物理仿真)因此并不是所有的核心部分都适合使用C/C+语言编写。
13、程序填空题:Activity 显式启动Intent intent = new Intent(IntentDemo.this, ActivityToStart.class);startActivity(intent);隐式启动Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(); startActi vity(intent); 显式获取返回值 int SUBACTIVITY1 = 1;Intent intent = new Intent(this, SubActivity1.class); startActivityForResul
14、t(intent, SUBACTIVIT Y1); 隐式获取返回值int SUBACTIVITY2 = 2;Uri uri = Uri.parse(content:/contacts/people); Intent intent = new Intent(Intent.ACTION_PICK, uri); startActivityForResult(intent, SUBACTIVITY2); 在父Activity中处理子Activity 的返回值public void onActivityResult(int requestCode, int resultCode, Intent data
15、) Super.onActivityResult(requestCode, resultCode, data); switch(requestCode) case SUBACTIVITY1: if (resultCode = Activity.RESULT_OK) Uri uriData = data.getData(); else if (resultCode = Activity.RE SULT_CANCEL) break;case SUBACTIVITY2: if (resultCode = Activity.RESULT_OK)Uri uriData = data.getData ()
16、; break; Broadcast Receiver 广播消息发送消息String UNIQUE_STRING = edu.hrbeu.BroadcastReceiverDemo; Intent intent = new Intent(UNI QUE_STRING); intent.putExtra(key1, value1); intent.putExtra(key2, value2); sendBroad cast(intent);接收消息public void onReceive(Context context, Intent intent) String msg = intent.g
17、etStringExtra(mess age); Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); Service显式启动Intent serviceIntent = new Intent(this, RandomService.class); startService(serviceIntent); 隐式启动Intent serviceIntent = new Intent();serviceIntent.setAction(edu.hrbeu.RandomService);停止服务StopServic (serviceInte
18、nt )存储 ContentProvider首先设置存储模式(私有模式、全局读、全局写)单个模式 public static int MODE = Context.MODE_PRIVATE; (私有)多个模式 public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_ WRITEABLE; (全局读和写) 定义 SharedPreferences 的名称public static final String PREFERENCE_NAME = SaveSetting;获取 SharedPreferences
19、 对象,参数为:名称,模式SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE); 写数据SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(Name, Tom); edit or.putInt(Age, 20);editor.putFloat(“ Height ” , 1.81f);mit(); 读取数据SharedPreferences sharedPreferences = get
20、SharedPreferences(PREFERENCE_NAME, MODE); String name = sharedPreferences.getString(Name,Default Name); int age = sharedPreferences. getInt(Age, 20);float height = sharedPreferences.getFloat(“ Height ” , 1.81f);ContentProvider 数据分享注册 ContentProvider 使用 标签 获取 ContentResolver 对象ContentResolver resolve
21、r = getContentResolver();查询操作查询 ID 为 2的数据 String KEY_ID = _id;String KEY_NAME = name; String KEY_AGE = age;String KEY_HEIGHT = height;Uri uri = Uri.parse(CONTENT_URI_STRING + / + 2;Cursor cursor = resolver.query(uri, new String KEY_ID, KEY_NAME, KEY_AGE, KEY_HEI GHT, null, null, null);Cursor query(U
22、ri uri, String projection, String selection, String selectionArgs, String sortOrder )添加操作 添加单条数据ContentV alues values = new ContentValues(); values.put(KEY_NAME, Tom); values.put(KEY_ AGE, 21); values.put(KEY_HEIGHT, );Uri newUri = resolver.insert(CONTENT_URI, values);添加多条数据ContentValues arrayValues
23、 = new ContentValues10; int count = resolver.bultInsert(CONTEN T_URI, arrayValues); 删除操作删除 ID 为 2的数据Uri uri = Uri.parse(CONTENT_URI_STRING + / + 2); int result = resolver.delete(uri, null, null);删除条件定义为 ID 大于 4的数据String selection = KEY_ID + 4;int result = resolver.delete(CONTENT_URI, selection, null
24、);更新操作ContentValues values = new ContentValues(); values.put(KEY_NAME, Tom); values.put(KEY_ AGE, 21); values.put(KEY_HEIGHT, );Uri uri = Uri.parse(CONTENT_URI_STRING + / + 7); int result = resolver.update(uri, values , null, null);一、 选择题1、android虚拟设备的缩写是(AVD)2、Android SDK目前支持的操作系统(Linux)3、Android开发
25、工具插件 (ADT)没有提供的开发功能(自动更新)4、Android SDK提供一些开发工具可以把应用软件打包成 Android 格式文件(APK)5、Android当中基本的所有的 UI 都是由(view )或者其子类实现的 7、下列不是Activity的生命周期方法之一的是( ) A. onCreate B. onStart C. onRestart D. onResume E. onPause F. onStop G. onDestroy 8、以下可以做EditText编辑框的提示信息是(adroid:hint) 9、以下不是手机操作系统的是(windows vista)10、下列哪个属
26、性是专用于相对布局的 (android:layout_toRightOf)A. android.orientation 线性 vertical 垂直 horizontalB. android:stretchColumns C. android:layout_alignParentRight D. android:layout_toRightOf 10、定义 LinearLayout 垂直方向布局时设置的属性 (android:orientation vertical)A. android:layout_height B. android:gravityC. android:layoutD. a
27、ndroid:orientation vertical 垂直11、为了使android适应不同分辨率的机型,布局时字体单位应用 (sp) A. dp B. dip 像素 C. px D. sp二、多选题1、下面属于Android的动画分类的有 (AB) A. Tween B. Frame C. Draw D. Animation Property Animation属性动画 2、Android关于service生命周期的onCreate()和onStart()说法正确的是 ( AD ) A. 当第一次启动的时候先后调用onCreate()和 onStart()方法 B. 当第一次启动的时候只会
28、调用onCreate()方法C. 如果 service 已经启动,将先后调用onCreate()和onStart()方法D. 如果 service 已经启动,只会执行 onStart()方法,不在执行 onCreate()方法 3、在Android中使用Menu时可能需要重写的方法有 (AC) A. onCreateOptionsMenu() 三种菜单:选项菜单、上下文菜单、子菜单 B. onCreateMenu() C. onOptionsItemSelected() D. onItemSelected()4、Intent传递数据时,下列的数据类型哪些可以被传递 (ABCD) A. Seri
29、alizable B. charsequence C. Parcelable D. Bundle 5、java.io包中的 ( A )和 ( B )类主要用于对对象Object的读写。 A. objectInputStream B. objectOutPutStream C.Reader D.writer6、继承 ContentProvider 需要实现 (ABCD)等方法。 A. insert B. delete C. update D. query 7、自定义 Adapter 需要重写哪些方法? (ABCD) A. getCount B. getItem C. getItemId D. g
30、etView 8、在Android中使用SQLiteOpenHelper这个辅助类时, 可以生成一个数据库, 并可以对数据库版本进行管理的方法可以是 ( AB ) A. getWriteableDatabase() B. getReadableDatabase() C. getDatabase() D. getAbleDatabase() 三、填空题1、Android平台由操作系统、中间件、用户界面和应用软件组成。 2、Android平台提供了 2D,3D 的图形支持、数据库支持 SQLite3、目前已知的可以用来搭建Android开发环境的系统有 windows、Linux、Mac 等。 5
31、、Android SDK主要以 java 语言为基础。6、创建工程时需要填写的信息名称有工程名,包的名字,Activity的名字还有应用的名字。7、Android.jar是一个标准的压缩包,其内容包含的是编译后的 class ,包含了全部的 API 。四、简答题1. Android软件框架结构自上而下可分为哪些层? 应用程序、应用程序框架、各种库和Android运行环境、操作系统层应用程序是用 Java 语言编写的运行在虚拟机上的程序,如 E-mail 客户端、日历、地图等; 应用程序架构是编写 Google 发布的核心应用时所使用的 API 框架,开发人员同样可以使用这些框架来开发自己的应用
32、, 这样便简化了程序开发的架构设计, 但是必须遵守其框架的开发原则。如 Activity Manager、Window Manager、View System等。Android 运行环境:如 Core Libraries。操作系统层:Android 的核心系统服务基于Linux内核,如安全性、内存管理、进程管理和驱动模型等都依赖于该内核。Linux内核同时也作为硬件和软件栈之间的抽象层。如: Display Driver、KeyBoard Driver等。2. Android应用程序的 4大组件是什么?Activity、 Broadcast Intent Receiver、Content Pr
33、ovider、ServiceActivity , “活动” ,在应用程序中,一个 Activity 通常就是一个单独的屏幕。每一个活动都 被实现为一个独立的类, 并且从活动基类中继承而来, 活动类将会显示由视图控件组成的用 户接口,并对事件做出响应。Intent , Android 用 Intent 这个特殊类实现在 Activity 与 Activity 之间的切换。Intent用于描述应用的功能。在 Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。 Content Provider是所有应用程序之间数据存储和检索的一个桥梁,实现了一组标准的方法,使得各个应用程序之间实
34、现数据共享。Service , “服务” ,Server 是一个生命周期长且没有用户界面的程序。3. Android应用工程文件结构有哪些? 源文件 (包含 Activity )、 R.java 文件、 Android Library、 assets 目录、 res 目录、drawble 目录、layout目录、values目录。AndroidManifest.xml 源文件(包含Activity)主程序继承Activity类,重写了onCreate(BundlesavedInstanceState)方法。 setContentView R.java 文件在建立项目时自动生成,是只读模式,不能
35、修改。R.java 文件是定义该项目所有资源的索引文件。资源目录 AndroidManifest.xml资源清单文件,包含了该项目中所使用的Activity、Service、Receiver4. Android底层库包含哪些?系统C库,媒体库,Surface Manager,LibWebCore,SGL系统C库:C语言标志库,系统最底层的库。C库通过Linux系统来调用。 媒体库:Android系统多媒体库,该库支持多种常见格式的音频、视频的回收和录制以及图片。SGL:2D 图形引擎库。 SQLite:关系数据库。Webkit:Web 浏览器引擎。5. 请介绍下 Android 中常用的五种布
36、局。 (1) 相对布局:相对布局中可以设置某一个视图相对于其他视图的位置,包括上、下、左、右。 (2) 线性布局:线性布局可分为水平线性布局和垂直线性布局。水平线性布局所有在这个布局中的视图都沿着水平方向线性排列;垂直线性布局则沿着垂直方向线性排列。(3) 框架布局:所有添加到框架布局中的视图都是以层叠的方式显示,这种显示方式类似堆栈。 (4) 表格布局:表格布局可以将视图按行、按列进行排列。 (5) 绝对布局:可以任意设置视图定位位置。6. 如何将一个 Activity 设置成窗口的样式在AndroidManifest.xml中定义Activity的地方加一句话android:theme=a
37、ndroid:style/Theme.Dialog7. 请尽可能多的介绍下Android的几种数据存储方式 SharedPreferences方式、文件存储方式、SQLite 数据库方式、网络存储方式SharedPreferences:主要用于存储配置信息,类似windlws中的inf文件,格式是xml的。SharedPreferences是一个轻量级的存储策略,和应用程序是属于从属关系。文件存储与其他平台一样。数据库使用SQLite来存放数据,SQLite 数据库是移动数据库,轻量级的。IOS、Android都是使用这种数据库作为存储策略。虽然 SQLite是轻量级的移动数据库,但是性能非常
38、高 (远高于Oracle)。SQLite和传统数据库相比最大不同点就是不存在服务器和客户端的概念,Android系统自带了SQLite,所以也不需要安装。SQLite 数据库的操作上更类似文件操作,而非传统的客户端服务器操作模式。云存储其实就是提交数据给服务器去存放8. 简单介绍Activity的生命周期及涉及的函数9. 简述 GLSurFaceView 的特性(1) 管理一个surface。这个surface就是一块特殊的内存,能直接排版到android的视图上。(2) 管理一个EGL display,它能让opengl把内容渲染到上述的surface上。(3)让渲染器在独立的线程里运作,和
39、UI线程分离。10. 简述 Android 应用程序结构是哪些(1)一组 View(UI组件):这些组件包括列表(List) 、文本框(textbox) 、按钮 (button)等。通过这些 UI 组件可以构建应用程序的视图部分。(2) Content Providers:它提供了一种机制,通过这种机制,应用程序可以实现数据的互访和共享。(3) Resource Manager:它负责管理非代码的访问。即资源文件的访问管理。 (4) Notification Manager:它能让程序将自己的警示信息显示在状态栏上。例如,当有短信时,可以在状态栏上显示出新短信的信息。(5) Activity
40、Manager:它管理着应用的生命周期,并且提供了应用页面退出的机制。在 Android 应用中,每个应用一般由多个页面组成,而每个页面的单位就是Activity。通俗的说,Android的应用是由多个 Activity的交互构成的。(6)各种库,当使用Android应用架构时,Android系统会通过一些 C/C+库来支持我们使用的各个组件,使其更好地为我们服务。如 SGL、SSL、SQLite、Webkit 等。11. 简述Activity和Intent、IntentFilter的作用,以及它们之间的关系 Activity作用:向用户呈现操作界面,与用户交互。Intent作用:启动另一个Activity,传递数据。IntentFilter作用:可以帮助Activity跨应用调用,可以对Activity进行功能分组。专心-专注-专业