Android程序设计练习卷答案(共10页).doc

上传人:飞****2 文档编号:14490803 上传时间:2022-05-04 格式:DOC 页数:10 大小:43.50KB
返回 下载 相关 举报
Android程序设计练习卷答案(共10页).doc_第1页
第1页 / 共10页
Android程序设计练习卷答案(共10页).doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《Android程序设计练习卷答案(共10页).doc》由会员分享,可在线阅读,更多相关《Android程序设计练习卷答案(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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_

2、ACTIVITY_BROUGHT_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.下面那种不是安卓原生支持的Men

3、u(A)A.Selected 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.下

5、面异常不属于Runtime 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.NoTit

6、leBarD.在style中定义 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目录的作用

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

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

9、、onOptionsItemSelected() 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_pa

10、rent B、 fill_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

11、、System.exit() 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.

12、onResume阶段,用户不能与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文件中注册BroadcastRecei

14、ver方式正确的(A) A、 B、 android:name=android.provider.action.NewBroad/ C、 D、 android:name=android.provider.action.NewBroad/ 二 简答题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.

16、 简述Android应用程序结构是哪些? 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设置成窗口的样式。 在AndroidMa

17、nifest.xml 中定义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的子类。所以说,他俩都算一个进程。Hand

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

19、Thread(string);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.stu

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

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

22、va文件 bindService(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为Progres

23、sbar1的进度条,和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 android.view.View.OnClickListener; import android.widget.Button; imp

24、ort 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 savedInstanceState) super.onCreate(savedInstanceState); setContentVi

25、ew(R.layout.main); 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 stu

26、b 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.currentThread().getName(); current+=10; try publishProgress(current); /这里

27、的参数类型是 AsyncTask中的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);

28、System.out.println(values0); mProgressBar.setProgress(values0); Log.d(updateThread,id:+Thread.currentThread().getId()+ name:+Thread.currentThread().getName();/这里是UI主线程 2.请继承SQLiteOpenHelper实现: 1).创建一个版本为1的“diaryOpenHelper.db”的数据库,2).同时创建一个 “diary” 表(包含一个_id主键并自增长,topic字符型100长度, content字符型1000长度)3).在

29、数据库版本变化时请删除diary表,并重新创建出diary表。publicclass DBHelper extends SQLiteOpenHelper public final static String DATABASENAME =diaryOpenHelper.db; public final static int DATABASEVERSION =1; /创建数据库 public DBHelper(Context context,Stringname,CursorFactory factory,int version) super(context, name, factory,vers

30、ion); /创建表等机构性文件 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); 专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁