天津理工大学移动终端开发技术安卓期末考试复习题.docx_第1页
天津理工大学移动终端开发技术安卓期末考试复习题.docx_第2页
天津理工大学移动终端开发技术安卓期末考试复习题.docx_第3页
天津理工大学移动终端开发技术安卓期末考试复习题.docx_第4页
天津理工大学移动终端开发技术安卓期末考试复习题.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

双向调用如何实现?远程服务如何实现?简答题1、可见进程可见进程指部分程序界面能够被用户看见,却不在前台与用户交互,不响应界面事件的进程。2、简述R.java和AndroidManifest.xml文件的用途 R.java文件是ADT自动生成的文件,包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源。R.java文件不能手工修改。 AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等,而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件。3、简述Android系统的4种基本组件Activity、service、Content Provider的用途 Activity(活动):应用程序表示层,应用程序中的每一个屏幕都是Activity类的扩展。 Service(服务):应用程序不可见的工作者,在后台运行。 ContentProvider(内容提供器):可共享的数据存储器,提供可共享的数据库功能。私有数据一般不采用ContentProvider,而是使用文件,或者SQLite中的数据库。 BroadcastReceiver(广播接收器):意图广播的使用者。通过创建和注册广播接收器,应用程序可以监听到那些匹配特定的过滤标准的意图广播。4、简述Activity生命周期的四种状态,以及状态之间的变换关系。 Activity表现为四种状态: 活动状态:Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互。 暂停状态:Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互。 停止状态:Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡。 非活动状态:不在以上三种状态中的Activity则处于非活动状态(被用户关闭或系统终止)。 转换关系:5、简述Activity事件回调函数的作用和调用顺序。 onCreate():Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等。 onStart():当Activity显示在屏幕上时,该函数被调用。 onRestart():当Activity从停止状态进入活动状态前,调用该函数。onPause():当Activity进入暂停状态时,该函数被调用。一般用来保存持久的数据或释放占用的资源。onStop():当Activity进入停止状态时,该函数被调用。onDestroy():在Activity被终止前,即进入非活动状态前,该函数被调用。onSaveInstanceState():Android系统因资源不足终止Activity前调用该函数,用以保存Activity的状态信息,供onRestoreInstanceState()或onCreate()恢复之用。onRestoreInstanceState():恢复onSaveInstanceState()保存的Activity状态信息,在onStart()和onResume ()之间被调用。6、简述5种界面布局的特点 线性布局:在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列,如果垂直排列,则每行仅包含一个界面元素,如果水平排列,则每列仅包含一个界面元素。 框架布局:最简单的界面布局,是用来存放一个元素的空白空间,且子元素的位置是不能够指定的,只能够放置在空白空间的左上角,如果有多个子元素,后放置的子元素将遮挡先放置的子元素。 网格布局:将屏幕划分网格,通过指定行和列可以将界面元素添加的网格中网格的边界对用户是不可见的表格布局还支持嵌套,可以将另一个表格布局放置在前一个表格布局的网格中,也可以在表格布局中添加其他界面布局,例如线性布局、相对布局等等 相对布局:相对布局(RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素与其他元素的相对位置关系,确定界面中所有元素的布局位置,能够最大程度保证在各种屏幕类型的手机上正确显示界面布局。 绝对布局:绝对布局(AbsoluteLayout)能通过指定界面元素的坐标位置,来确定用户界面的整体布局。7、简述Android系统支持三种菜单选项菜单(Menu类),包括图标菜单、扩展菜单;子菜单(SubMenu类);快捷菜单(ContextMenu类)。8、简述Intent的定义和用途Intent是一种组件之间消息传递机制,是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。Intent的用途:启动Activity和Service;在Android系统上发布广播消息。9、启动Activity方式显式启动,程序必须在Intent中指明启动的Activity所在的类。隐式启动, Android系统根据Intent的动作和数据来决定启动哪一个Activity,也就是说在隐式启动时,Intent中只包含需要执行的动作和所包含的数据,而无需指明具体启动哪一个Activity,选择权由Android系统和最终用户来决定。10、简述Intent过滤器的定义和功能定义:Intent过滤器是一种根据Intent中的动作(Action)、类别(Categorie)和数据(Data)等内容,对适合接收该Intent的组件进行匹配和筛选的机制。功能:Intent过滤器可以匹配数据类型、路径和协议,还包括可以用来确定多个匹配项顺序的优先级(Priority);应用程序的Activity组件、Service组件和BroadcastReceiver都可以注册Intent过滤器,则这些组件在特定的数据格式上就可以产生相应的动作。11、Intent解析的匹配规则 没有指定“动作”的Intent过滤器可以匹配任何的Intent,但是没有指定“类别”的Intent过滤器只能匹配没有“类别”的Intent,把Intent“数据”Uri的每个子部与Intent过滤器的标签中的属性进行匹配,如果标签指定了协议、主机名、路径名或MIME类型,那么这些属性都要与Intent的Uri数据部分进行匹配,任何不匹配的Intent过滤器均被过滤掉。12、简述Service的基本原理和用途 定义:Service是Android系统的后台服务组件,适用于开发无界面、长时间运行的应用功能。用途:用于进程间通信(Inter Process Communication,IPC),解决两个不同Android应用程序进程之间的调用和通讯问题。 特点:没有用户界面;比处于非活动状态的Activity 优先级高,不会轻易被Android系统终止。即使Service被系统终止,在系统资源恢复后Service也将自动恢复运行状态。13、实现远程服务的步骤接口定义:使用AIDL语言定义跨进程服务的接口。接口实现:根据AIDL语言定义的接口,在具体的Service类中实现接口中定义的方法和属性。接口使用:在需要调用跨进程服务的组件中,通过相同的AIDL接口文件,调用跨进程服务。14、简述在嵌入式系统中使用SQLite数据库的优势SQLite是一个开源的嵌入式关系数据库,在2000年由D. Richard Hipp发布,其优势(特点)有:更加适用于嵌入式系统,嵌入到使用它的应用程序中;占用资源非常少,运行高效可靠,可移植性好;提供了零配置(zero-configuration)运行模式。15、Android系统支持四种文件操作模式MODE_PRIVATE(私有模式)缺省模式,文件仅能够被文件创建程序访问,或具有相同UID的程序访问。MODE_APPEND,追加模式,如果文件已经存在,则在文件的结尾处添加新数据。MODE_WORLD_READABLE全局读模式。MODE_WORLD_WRITEABLE全局写模式,允许任何程序写入私有文件。16、简述Android NDK开发的优势和不足。优势:解决了核心模块使用托管语言开发执行效率低下的问题;允许程序开发人员直接使用C/C+源代码,极大的提高了Android应用程序开发的灵活性。不足:增加程序的使用非托管代码复杂性,增加了程序调试的难度;CPU运算量大和内存消耗较少的部分运行效率最高, (例如信号处理或物理仿真)因此并不是所有的核心部分都适合使用C/C+语言编写。程序填空题: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); startActivityForResult(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) 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 (); 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.getStringExtra(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 (serviceIntent )存储 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 对象,参数为:名称,模式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 = getSharedPreferences(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 resolver = 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(Uri 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 = 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);更新操作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开发工具插件 (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、下列哪个属性是专用于相对布局的 (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. android: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. 当第一次启动的时候只会调用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. Serializable 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. getView 8、在Android中使用SQLiteOpenHelper这个辅助类时, 可以生成一个数据库, 并可以对数据库版本进行管理的方法可以是 ( AB ) A. getWriteableDatabase() B. getReadableDatabase() C. getDatabase() D. getAbleDatabase() 三、填空题1、Android平台由操作系统、中间件、用户界面和应用软件组成。 2、Android平台提供了 2D,3D 的图形支持、数据库支持 SQLite3、目前已知的可以用来搭建Android开发环境的系统有 windows、Linux、Mac 等。 5、Android SDK主要以 java 语言为基础。6、创建工程时需要填写的信息名称有工程名,包的名字,Activity的名字还有应用的名字。7、Android.jar是一个标准的压缩包,其内容包含的是编译后的 class ,包含了全部的 API 。四、简答题1. Android软件框架结构自上而下可分为哪些层? 应用程序、应用程序框架、各种库和Android运行环境、操作系统层应用程序是用 Java 语言编写的运行在虚拟机上的程序,如 E-mail 客户端、日历、地图等; 应用程序架构是编写 Google 发布的核心应用时所使用的 API 框架,开发人员同样可以使用这些框架来开发自己的应用, 这样便简化了程序开发的架构设计, 但是必须遵守其框架的开发原则。如 Activity Manager、Window Manager、View System等。Android 运行环境:如 Core Libraries。操作系统层:Android 的核心系统服务基于Linux内核,如安全性、内存管理、进程管理和驱动模型等都依赖于该内核。Linux内核同时也作为硬件和软件栈之间的抽象层。如: Display Driver、KeyBoard Driver等。2. Android应用程序的 4大组件是什么?Activity、 Broadcast Intent Receiver、Content Provider、ServiceActivity , “活动” ,在应用程序中,一个 Activity 通常就是一个单独的屏幕。每一个活动都 被实现为一个独立的类, 并且从活动基类中继承而来, 活动类将会显示由视图控件组成的用 户接口,并对事件做出响应。Intent , Android 用 Intent 这个特殊类实现在 Activity 与 Activity 之间的切换。Intent用于描述应用的功能。在 Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。 Content Provider是所有应用程序之间数据存储和检索的一个桥梁,实现了一组标准的方法,使得各个应用程序之间实现数据共享。Service , “服务” ,Server 是一个生命周期长且没有用户界面的程序。3. Android应用工程文件结构有哪些? 源文件 (包含 Activity )、 R.java 文件、 Android Library、 assets 目录、 res 目录、drawble 目录、layout目录、values目录。AndroidManifest.xml 源文件(包含Activity)主程序继承Activity类,重写了onCreate(BundlesavedInstanceState)方法。 setContentView R.java 文件在建立项目时自动生成,是只读模式,不能修改。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 中常用的五种布局。 (1) 相对布局:相对布局中可以设置某一个视图相对于其他视图的位置,包括上、下、左、右。 (2) 线性布局:线性布局可分为水平线性布局和垂直线性布局。水平线性布局所有在这个布局中的视图都沿着水平方向线性排列;垂直线性布局则沿着垂直方向线性排列。(3) 框架布局:所有添加到框架布局中的视图都是以层叠的方式显示,这种显示方式类似堆栈。 (4) 表格布局:表格布局可以将视图按行、按列进行排列。 (5) 绝对布局:可以任意设置视图定位位置。6. 如何将一个 Activity 设置成窗口的样式在AndroidManifest.xml中定义Activity的地方加一句话android:theme=android:style/Theme.Dialog7. 请尽可能多的介绍下Android的几种数据存储方式 Sh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论