收藏 分享(赏)

Android程序设计练习卷答案96134.doc

上传人:精品资料 文档编号:10781823 上传时间:2020-01-08 格式:DOC 页数:8 大小:25.58KB
下载 相关 举报
Android程序设计练习卷答案96134.doc_第1页
第1页 / 共8页
Android程序设计练习卷答案96134.doc_第2页
第2页 / 共8页
Android程序设计练习卷答案96134.doc_第3页
第3页 / 共8页
Android程序设计练习卷答案96134.doc_第4页
第4页 / 共8页
Android程序设计练习卷答案96134.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、在 android 程序中,Log.d()用于输出什么级别的日志信息?(A) 调试 B、信息 C、警告 D、错误2.以下情况不会创建 Context 对象的是(C)创建 Application 对象时 B.创建 Service 对象时C.创建 ContentProvider 对象时 D.创建 Activity 对象时3.下列不属于 Android 中广播中的类别的是(D)A.Normal Broadcas B.Sticky Broadcast C.Local Broadcast D.Order broadcast4.以下哪个不是 Intent 的 Activity 启动方式(A )A.FLAG

2、_ACTIVITY_BROUGHT_TO_FIRST B.FLAG_ACTIVITY_CLEAR_TOPC.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETD.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS5.安卓 AndroidManifest.xml 文件的子节点不包括(C)A.application B.services C.permission D.provider 6.下面那个不是 Fragment 的生命周期方法(D)A. onStart B. onAttach C. onDestoryView D. onRestart7.下面那种不是安

3、卓原生支持的 Menu(A)A.Selected Menu B.Option Menu C.Submenu D.Context Menu8.下面不属于 android 的动画分类的有(D) A、Tween B、Frame C、Property D、Animation9.下列哪个不是安卓 service 自带的方法(A)OnResume B.onCreate C.onStartCommand D.onRebind10.下列属于 SAX 解析 xml 文件的优点的是(B) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能B、不用事先调入整个文档,占用资源少C、整个文档调入内存

4、,浪费时间和空间D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失11.下列关于 Soundpool 和 MediaPlayer 的说法,错误的是(A)A.MediaPlayer 支持多个音乐同时播放B.MediaPlayer 资源占用率高C.MediaPlayer 延迟时间较长D.new MediaPlayer()后要调用 prepare()方法才能播放12.关于 res/raw 目录说法正确的是(A)A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式B、这里的文件是原封不动的存储到设备上会转换为二进制的格式C、这里的文件最终以二进制的格式存储到指定的包

5、中D、这里的文件最终不会以二进制的格式存储到指定的包中13.下面异常不属于 Runtime Exception 的是(D)A、ArithmeticExceptionB、IllegalArgumentExceptionC、 NullPointerExceptionD、IOException14.以下方法那个不能实现不显示 android 标题栏(B)A.在 Activity 的 Oncreate 方法中写,this.requestWindowFeature(Window.FEATURE_NO_TITLE);B.设置布局 Layout 上移一定单位 dpC.在 manifest 设置 Activi

6、ty 的节点 android:theme=“android:style/Theme.NoTitleBar“D.在 style 中定义 true 后在 manifest 中引用15.下列对 android NDK 的理解正确的是(D)A、 NDK 是一系列工具的集合B、 NDK 提供了一份稳定、功能有限的 API 头文件声明。C、 使 “Java+C” 的开发方式终于转正,成为官方支持的开发方式D、 ABC 都是16.以下关于安卓的国际化的说法正确的是(B)A.安卓国际化就是将 app 上架到各国的安卓应用商店B.安卓国际化就是将安卓 app 相关显示数据设置不同语言版本C.安卓国际化就是将安卓

7、操作系统进行定制D.安卓国际化就是将安卓 app 适配各国际品牌手机17.Android 项目工程下面的 assets 目录的作用是什么(B)A、放置应用到的图片资源。B、主要放置多媒体等数据文件C、放置字符串,颜色,数组等常量数据D、放置一些与 UI 相应的布局文件,都是 xml 文件18.下面关于 Android dvm 的进程和 Linux 的进程,应用程序的进程说法正确的是(D) DVM 指 dalivk 的虚拟机.每一个 Android 应用程序都在它自己的进程中运行,不一定拥有一个独立的 Dalvik 虚拟机实例 .而每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为

8、是同一个概念.B、DVM 指 dalivk 的虚拟机.每一个 Android 应用程序都在它自己的进程中运行,不一定拥有一个独立的 Dalvik 虚拟机实例.而每一个 DVM 不一定都是在 Linux 中的一个进程,所以说不是一个概念.C、 DVM 指 dalivk 的虚拟机.每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例 .而每一个 DVM 不一定都是在 Linux 中的一个进程,所以说不是一个概念.D、DVM 指 dalivk 的虚拟机.每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例.而

9、每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为是同一个概念.19. 在 android 中使用 Menu 时可能需要重写的方法有(D) 。 A、onCreateOptionsMenu()B、onCreateMenu()C、onOptionsItemSelected()D、A 和 C20.对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(D) A、onPause() B、onCreate() C、 onResume() D、onStart()21.android 中下列属于 Intent 的作用的是(C) 实现应用程序间的数据共享 B、是一段长的生命周期,没有

10、用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作22.下面的对自定 style 的方式正确的是(A) A、 fill_parentB、 fill_parentC、 fill_parentD、 fill_parent23. android 关于 service 生命周期的 onCreate()和 onStart()说法正确的是(D) 当第一次启动的时候先调用 onStart()方法 B、当第一次启动的时候只会调用 onCreate()方法 C、如果 service 已经启动,将

11、先后调用 onCreate()和 onStart()方法 D、如果 service 已经启动,只会执行 onStart()方法,不在执行 onCreate()方法24.下面退出 Activity 错误的方法是( C) A、finish() B、抛异常强制退出 C、System.exit() D、onStop() 25.我们都知道 Hanlder 是线程与 Activity 通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(A) onDestroy() B、onClear() C、onFinish() D、onStop()26.下列关于 Android 的 Asset 目

12、录下的文件说法不正确的是(D)A.不能通过 R 文件直接访问 Asset 目录资源B.Asset 目录可以新建文件夹C.Asset 目录一般存放一些二进制文件D.通过 AssetManager 提供的方法可以修改里面的文件27.以下对 Activity 的生命周期方法描述错误的是 (A)onResume 阶段,用户不能与 Activity 交互Onstop 阶段,原 Activity 变得不可见 ,被下一个 activity 覆盖了onDestory 阶段,这是 activity 被干掉前最后一个被调用方法onPause 阶段, 到这一步是可见但不可交互 的28.关于 ContenValues

13、 类说法正确的是(A) A、他和 Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String 类型,而值都是基本类型 B、他和 Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型 C、他和 Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是 String 类型 D、他和 Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String 类型,而值也是 String 类型29.在 android 中使用 SQLiteOpen

14、Helper 这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(B) A、getWriteDatabase()B、getReadableDatabase()C、 getDatabase()D、getAbleDatabase()30.下面在 AndroidManifest.xml 文件中注册 BroadcastReceiver 方式正确的(A) A、B、android:name=“android.provider.action.NewBroad“/C、 D、android:name=“android.provider.action.NewBroad“/简答题简述 apk

15、安装卸载的原理。APK 安装可以通过以下四种方式:1. 系统应用安装,开机时完成系统应用的检查,没安装就安装,安装就跳过,无安装界面。2. 网络下载应用安装,通过 market 应用完成,无安装界面。3. ADB 工具安装,无安装界面4. 通过 SD 卡来安装 apk,有安装界面,由 packageinstaller.apk 应用处理安装及卸载过程的界面。应用安装涉及到如下几个目录:system/app 系统自带的应用程序,无法删除data/app 用户程序安装的目录,有删除权限data/data 存放应用程序的数据Data/dalvik-cache 将 apk 中的 dex 文件安装到 da

16、lvik-cache 目录下(dex 文件是 dalvik 虚拟机的可执行文件, 其大小约为原始 apk 文件大小的四分之一)安装过程:复制 APK 安装包到 data/app 目录下,解压并扫描安装包,把 dex 文件(Dalvik 字节码)保存到 dalvik-cache 目录,并 data/data 目录下创建对应的应用数据目录。卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。2. 简述 Android 应用程序结构是哪些?Android 应用程序结构是:Linux Kernel(Linux 内核)、Libraries(系统运行库或者是 c/c+核心库)、Application

17、 Framework(开发框架包)、 Applications (核心应用程序)3.安卓如何做屏幕适配?1)android 有 H、L、M、X、XX 四个不同的文件夹存放不同分辨率的图片,系统会自动加载2) 偏移量 d 的设置可以在 values-hpdi,values-mdpi,values-ldpi 三种文件夹中的 dimens.xml 文件进行设置4.如何将一个 Activity 设置成窗口的样式。 在 AndroidManifest.xml 中定义 Activity 的地方一句话android:theme=“android:style/Theme.Dialog“或android:the

18、me=“android:style/Theme.Translucent“就变成半透明的5.在多线程编程这块,我们经常要使用 Handler,Thread 和 Runnable 这三个类,请简述他们之间的关系。Android 的 CPU 分配的最小单元是线程,Handler 一般是在某个线程里创建的,因而Handler 和 Thread 就是相互绑定的,一一对应。而 Runnable 是一个接口,Thread 是Runnable 的子类。所以说,他俩都算一个进程。HandlerThread 顾名思义就是可以处理消息循环的线程,他是一个拥有 Looper 的线程,可以处理消息循环。与其说 Hand

19、ler 和一个线程绑定,不如说 Handler 是和 Looper 一一对应的。最后需要说明的是,在 UI 线程( 主线程)中: mHandler=new Handler(); mHandler.post(new Runnable()void run()/执行代码.);这个线程其实是在 UI 线程之内运行的,并没有新建线程。常见的新建线程的方法是:Thread thread = new Thread();thread.start();HandlerThread thread = newHandlerThread(“string“);thread.start();6.AIDL 的全称是什么?如何

20、工作?能处理哪些类型的数据?AIDL 的英文全称是 Android Interface Define Language当 A 进程要去调用 B 进程中的 service 时,并实现通信,我们通常都是通过 AIDL 来操作的A 工程:首先我们在 net.blogjava.mobile.aidlservice 包中创建一个 RemoteService.aidl 文件,在里面我们自定义一个接口,含有方法 get。ADT 插件会在 gen 目录下自动生成一个RemoteService.java 文件,该类中含有一个名为 RemoteService.stub 的内部类,该内部类中含有 aidl 文件接口

21、的 get 方法。说明一:aidl 文件的位置不固定,可以任意然后定义自己的 MyService 类,在 MyService 类中自定义一个内部类去继承RemoteService.stub 这个内部类,实现 get 方法。在 onBind 方法中返回这个内部类的对象,系统会自动将这个对象封装成 IBinder 对象,传递给他的调用者。其次需要在 AndroidManifest.xml 文件中配置 MyService 类,代码如下:为什么要指定调用 AIDL 服务的 ID,就是要告诉外界 MyService 这个类能够被别的进程访问,只要别的进程知道这个 ID,正是有了这个 ID,B 工程才能找

22、到 A 工程实现通信。说明:AIDL 并不需要权限B 工程:首先我们要将 A 工程中生成的 RemoteService.java 文件拷贝到 B 工程中,在bindService 方法中绑定 aidl 服务绑定 AIDL 服务就是将 RemoteService 的 ID 作为 intent 的 action 参数。说明:如果我们单独将 RemoteService.aidl 文件放在一个包里,那个在我们将 gen 目录下的该包拷贝到 B 工程中。如果我们将 RemoteService.aidl 文件和我们的其他类存放在一起,那么我们在 B 工程中就要建立相应的包,以保证 RmoteService

23、.java 文件的报名正确,我们不能修改 RemoteService.java 文件bindService(newInten(“net.blogjava.mobile.aidlservice.RemoteService“),serviceConnection, Context.BIND_AUTO_CREATE);ServiceConnection 的 onServiceConnected(ComponentName name, IBinderservice)方法中的 service 参数就是 A 工程中 MyService 类中继承了 RemoteService.stub 类的内部类的对象。三

24、 程序分析题1.现在已经在 Activity 的布局文件 main.xml 中创建了 id 为 Progressbar1 的进度条,和 id 为button1 的按钮,请写出实现以下功能的代码:1)在 Activity 页面显示这个按钮和进度条;2)点击按钮后,使用 AsyncTask 更新进度条的进度。import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import andro

25、id.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; public class MyActivity extends Activity private ProgressBar mProgressBar = null; private Button myButton = null; /* Called when the activity is first created. */ Override public void onCreate(Bundle saved

26、InstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); mProgressBar = (ProgressBar)findViewById(R.id.Progressbar1); myButton = (Button)findViewById(R.id.button1); myButton.setOnClickListener(new BtnClickListener(); private class BtnClickListener implements OnClickListener

27、public void onClick(View arg0) / TODO Auto-generated method stub new myAsync().execute(); private class myAsync extends AsyncTask int duration = 0; int current = 0; Override protected Void doInBackground(Void. params) do Log.d(“handleMessage“,“id:“+Thread.currentThread().getId()+“ name:“+Thread.curr

28、entThread().getName(); current+=10; try publishProgress(current); /这里的参数类型是 AsyncTask中的 Integer 决定的,在 onProgressUpdate 中可以得到这个值去更新 UI 主线程,这里是异步线程 Thread.sleep(1000); if(mProgressBar.getProgress() = 100) break; catch (Exception e) while (mProgressBar.getProgress() = 100); return null; Override protec

29、ted void onProgressUpdate(Integer. values) super.onProgressUpdate(values); System.out.println(values0); mProgressBar.setProgress(values0); Log.d(“updateThread“,“id:“+Thread.currentThread().getId()+“ name:“+Thread.currentThread().getName(); / 这里是 UI 主线程 2.请继承 SQLiteOpenHelper 实现: 1) .创建一个版本为 1 的“diar

30、yOpenHelper.db”的数据库,2) .同时创建一个 “diary” 表(包含一个_id 主键并自增长,topic 字符型 100 长度, content 字符型 1000 长度)3) .在数据库版本变化时请删除 diary 表,并重新创建出 diary 表。publicclass DBHelper extends SQLiteOpenHelperpublic final static String DATABASENAME =“diaryOpenHelper.db“;public final static int DATABASEVERSION =1;/创建数据库public DBH

31、elper(Context context,Stringname,CursorFactory factory,int version)super(context, name, factory,version);/创建表等机构性文件public void onCreate(SQLiteDatabase db)String sql =“create tablediary“+“(“+“_idinteger primary key autoincrement,“+“topicvarchar(100),“+“contentvarchar(1000)“+“)“;db.execSQL(sql);/若数据库版本有更新,则调用此方法public void onUpgrade(SQLiteDatabasedb,int oldVersion,int newVersion)String sql = “drop table ifexists diary“;db.execSQL(sql);this.onCreate(db);

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报