Android程序设计练习卷答案(共9页)_第1页
Android程序设计练习卷答案(共9页)_第2页
Android程序设计练习卷答案(共9页)_第3页
Android程序设计练习卷答案(共9页)_第4页
Android程序设计练习卷答案(共9页)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

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

2、GHT_TO_FIRSTB.FLAG_ACTIVITY_CLEAR_TOPC.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETD.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS5.安卓AndroidManifest.xml文件的子节点不包括(C)A.applicationB.servicesC.permissionD.provider 6.下面那个不是Fragment的生命周期方法(D)A. onStart B. onAttach C. onDestoryView D. onRestart7.下面那种不是安卓原生支持的Menu(A)A.Selecte

3、d MenuB.Option MenuC.SubmenuD.Context Menu8.下面不属于android的动画分类的有(D) A、Tween B、Frame C、Property D、Animation9.下列哪个不是安卓service自带的方法(A)A. OnResumeB.onCreateC.onStartCommandD.onRebind10.下列属于SAX解析xml文件的优点的是(B) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能B、不用事先调入整个文档,占用资源少C、整个文档调入内存,浪费时间和空间D、不是长久驻留在内存,数据不是持久的,事件过后,若

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

5、 Exception 的是(D)A、ArithmeticExceptionB、IllegalArgumentExceptionC、NullPointerExceptionD、IOException14.以下方法那个不能实现不显示android标题栏(B)A.在Activity的Oncreate方法中写,this.requestWindowFeature(Window.FEATURE_NO_TITLE);B.设置布局Layout上移一定单位dpC.在manifest设置Activity的节点 android:theme=android:style/Theme.NoTitleBarD.在style

6、中定义 true 后在manifest中引用15.下列对android NDK的理解正确的是(D)A、 NDK是一系列工具的集合B、 NDK 提供了一份稳定、功能有限的 API 头文件声明。C、 使 “Java+C” 的开发方式终于转正,成为官方支持的开发方式D、 ABC都是16.以下关于安卓的国际化的说法正确的是(B)A.安卓国际化就是将app上架到各国的安卓应用商店B.安卓国际化就是将安卓app相关显示数据设置不同语言版本C.安卓国际化就是将安卓操作系统进行定制D.安卓国际化就是将安卓app适配各国际品牌手机17.Android项目工程下面的assets目录的作用是什么(B)A、放置应用到

7、的图片资源。B、主要放置多媒体等数据文件C、放置字符串,颜色,数组等常量数据D、放置一些与UI相应的布局文件,都是xml文件18.下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是(D) A、 DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进

8、程,所以说不是一个概念.C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念.D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.19. 在android中使用Menu时可能需要重写的方法有(D)。 A、onCreateOptionsMenu() B、onCreateMenu() C、onOptionsIte

9、mSelected() D、A和C20.对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(D) A、onPause() B、onCreate() C、 onResume() D、onStart()21.android 中下列属于Intent的作用的是(C) A、 实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作22.下面的对自定style的方式正确的是(A) A、 fill_parent B、 fill_

10、parent C、 fill_parent D、 fill_parent 23. android 关于service生命周期的onCreate()和onStart()说法正确的是(D) A、 当第一次启动的时候先调用onStart()方法 B、当第一次启动的时候只会调用onCreate()方法 C、如果service已经启动,将先后调用onCreate()和onStart()方法 D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法24.下面退出Activity错误的方法是(C) A、finish() B、抛异常强制退出 C、System.exit(

11、) D、onStop() 25.我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(A) A、 onDestroy() B、onClear() C、onFinish() D、onStop()26.下列关于Android的Asset目录下的文件说法不正确的是(D)A.不能通过R文件直接访问Asset目录资源B.Asset目录可以新建文件夹C.Asset目录一般存放一些二进制文件D.通过AssetManager提供的方法可以修改里面的文件27.以下对Activity的生命周期方法描述错误的是(A)A. onResume阶段,用户

12、不能与Activity交互B. Onstop阶段,原Activity 变得不可见 ,被下一个activity覆盖了C. onDestory阶段,这是activity被干掉前最后一个被调用方法D. onPause阶段, 到这一步是可见但不可交互 的B、28.关于ContenValues类说法正确的是(A)A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型C、他和Hashtable比较类似,也是负责存储一些名值对,

13、但是他存储的名值对当中的名,可以为空,而值都是String类型D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型29.在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(B) A、getWriteDatabase()B、getReadableDatabase()C、getDatabase()D、getAbleDatabase()30.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的(A) A

14、、 B、 android:name=vider.action.NewBroad/ C、 D、 android:name=vider.action.NewBroad/ 2 简答题1. 简述apk安装卸载的原理。APK安装可以通过以下四种方式:1. 系统应用安装,开机时完成系统应用的检查,没安装就安装,安装就跳过,无安装界面。2. 网络下载应用安装,通过market应用完成,无安装界面。3. ADB工具安装,无安装界面4. 通过SD卡来安装apk,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。应用安装涉及到如下几个目

15、录:system/app 系统自带的应用程序,无法删除data/app 用户程序安装的目录,有删除权限data/data 存放应用程序的数据Data/dalvik-cache 将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)安装过程:复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。 卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。2. 简述Android应用程

16、序结构是哪些? Android应用程序结构是: Linux Kernel(Linux内核)、Libraries(系统运行库或者是c/c+核心库)、Application Framework(开发框架包)、Applications (核心应用程序)3.安卓如何做屏幕适配?1)android有H、L、M、X、XX四个不同的文件夹存放不同分辨率的图片,系统会自动加载2) 偏移量d的设置可以在values-hpdi,values-mdpi,values-ldpi三种文件夹中的dimens.xml文件进行设置4.如何将一个Activity设置成窗口的样式。 在AndroidManifest.xml 中定

17、义Activity的地方一句话android:theme=android:style/Theme.Dialog或android:theme=android:style/Theme.Translucent就变成半透明的5.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,请简述他们之间的关系。Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。HandlerThread顾名思义

18、就是可以处理消息循环的线程,他是一个拥有Looper的线程,可以处理消息循环。与其说Handler和一个线程绑定,不如说Handler是和Looper一一对应的。最后需要说明的是,在UI线程(主线程)中: mHandler=new Handler();mHandler.post(new Runnable()void run()/执行代码.);这个线程其实是在UI线程之内运行的,并没有新建线程。常见的新建线程的方法是:Thread thread = new Thread();thread.start();HandlerThread thread = newHandlerThread(string

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

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

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

22、ice(newInten(net.blogjava.mobile.aidlservice.RemoteService),serviceConnection, Context.BIND_AUTO_CREATE); ServiceConnection的onServiceConnected(ComponentName name, IBinderservice)方法中的service参数就是A工程中MyService类中继承了RemoteService.stub类的内部类的对象。三 程序分析题1.现在已经在Activity的布局文件main.xml中创建了id为Progressbar1的进度条,和id

23、为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 android.view.View.OnClickListener; import android.widget.Button; import android.w

24、idget.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 savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.m

25、ain); mProgressBar = (ProgressBar)findViewById(R.id.Progressbar1); myButton = (Button)findViewById(R.id.button1); myButton.setOnClickListener(new BtnClickListener(); private class BtnClickListener implements OnClickListener public void onClick(View arg0) / TODO Auto-generated method stub new myAsync

26、().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.currentThread().getName(); current+=10; try publishProgress(current); /这里的参数类型是 AsyncT

27、ask中的Integer决定的,在onProgressUpdate中可以得到这个值去更新UI主线程,这里是异步线程 Thread.sleep(1000); if(mProgressBar.getProgress() = 100) break; catch (Exception e) while (mProgressBar.getProgress() = 100); return null; Override protected void onProgressUpdate(Integer. values) super.onProgressUpdate(values); System.out.println(values0); mProgressBar.setProgres

温馨提示

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

评论

0/150

提交评论