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

下载本文档

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

文档简介

1、1. 在 android 程序中, Log.d() 用于输出什么级别的日志信息? (A)A、调试 B 、信息 C、警告 D 、错误2. 以下情况不会创建 Context 对象的是 (C)A.3. 以下不属于Android 中广播中的类别的是(D)A.Normal BroadcasB.Sticky BroadcastC.Local Broadcast D.Order broadcast4. 以下哪个不是Intent 的 Activity 启动方式A5. 安卓 AndroidManifest.xml 文件的子节点不包括 (C)A.applicationB.servicesC.permissionD

2、.provider6. 下面那个不是Fragment 的生命周期方法DA. onStart B. onAttach C. onDestoryView D. onRestart7. 下面那种不是安卓原生支持的 Menu(A)A.Selected Menu B.Option MenuC.Submenu D.Context Menu8. 下面不属于android 的动画分类的有(D)A、 Tween B 、 Frame C 、 Property D 、 Animation9. 以下哪个不是安卓 service 自带的方法(A)A.10. 以下属于SAX解析xml文件的优点的是(B)A、将整个文档树在

3、内存中,便于操作,支持删除,修改,重新排列等多种功能B、不用事先调入整个文档,占用资源少C、整个文档调入内存,浪费时间和空间H不是长久驻留在内存,数据不是持久的,事件过后,假设没有保存数据,数据就会消失11. 以下关于 Soundpool 和 MediaPlayer 的说法,错误的选项是(A)D.new MediaPlayer() 后要调用 prepare() 方法才能播放12. 关于 res/raw 目录说法正确的选项是(A)A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式B、这里的文件是原封不动的存储到设备上会转换为二进制的格式C、这里的文件最终以二进制的格式存储到指定的包中D

4、K这里的文件最终不会以二进制的格式存储到指定的包中13. 下面异常不属于Runtime Exception 的是 DA、 ArithmeticExceptionB、 IllegalArgumentExceptionC、 NullPointerExceptionD、 IOException14. 以下方法那个不能实现不显示android 标题栏BA. 在 Activity 的 Oncreate 方法中写, this.requestWindowFeature(Window.FEATURE_NO_TITLE);C. 在 manifest 设置 Activity 的节点 android:theme=&

5、quot;android:style/Theme.NoTitleBar"D.在 style 中定义 <item name="android:windowNoTitle">true</item>后在 manifest 中引用15. 以下对 android NDK 的理解正确的选项是(D)A、NDK是一系列工具的集合B、 NDK 提供了一份稳定、功能有限的 API 头文件声明。C、 使 “ Java+C”的开发方式终于转正,成为官方支持的开发方式D、 ABC 都是16. 以下关于安卓的国际化的说法正确的选项是BD. 安卓国际化就是将安卓 app

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

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

8、D。A 、 onCreateOptionsMenu()B 、 onCreateMenu()C 、 onOptionsItemSelected()D、A和 C20. 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(D)A 、 onPause() B 、 onCreate() C 、 onResume() D 、 onStart()21. android 中以下属于Intent 的作用的是(C)A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽

9、带DK处理一个应用程序整体性的工作22. 下面的对自定style 的方式正确的选项是AA 、 <resources><style name="myStyle"><itemn ame="android:layout_width">fill_parent</item></style></resources>B 、 <style name="myStyle"><item name="android:layout_width">

10、fill_parent</item></style>C 、 <resources><item name="android:layout_width">fill_parent</item></resources>D、 <resources><style name="android:layout_width">fill_parent</style></resources>23. android 关于 service 生命周期的 onCrea

11、te() 和 onStart() 说法正确的选项是(D)A、当第一次启动白时候先调用onStart()方法B、当第一次启动的时候只会调用onCreate()方法C、如果service 已经启动,将先后调用 onCreate()和onStart()方法D>如果service 已经启动,只会执行 onStart() 方法,不在执行 onCreate()方法24. 下面退出 Activity 错误的方法是CC 、 System.exit() D 、 onStop()A、 finish() B 、抛异常强制退出25. 我们都知道Hanlder 是线程与 Activity 通信的桥梁, 如果线程处

12、理不当, 你的机器就会变得越慢,那么线程销毁的方法是(A)A、 onDestroy() B 、 onClear() C 、 onFinish() D 、 onStop()26. 以下关于 Android 的 Asset 目录下的文件说法不正确的选项是D27. 以下对 Activity 的生命周期方法描述错误的选项是(A)A.onResume 阶段,用户不能与 Activity 交互B.Onstop 阶段,原 Activity 变得不可见 ,被下一个activity 覆盖了C.onDestory 阶段,这是activity 被干掉前最后一个被调用方法D.onPause 阶段, 到这一步是可见但不

13、可交互的8、28. 关于 ContenValues 类说法正确的选项是(A)A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型B、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型C、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是 String 类型DK他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String 类型29. 在 android

14、 中使用 SQLiteOpenHelper 这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(B)A、 getWriteDatabase()B、 getReadableDatabase()C、 getDatabase()D、 getAbleDatabase()30. 下面在 AndroidManifest.xml 文件中注册 BroadcastReceiver 方式正确的 (A)A、 <receiver android:name="NewBroad"><intent-filter><actionandroid:name=

15、"vider.action.NewBroad"/><action></intent-filter></receiver>B 、 <receiver android:name="NewBroad"><intent-filter>android:name="vider.action.NewBroad"/></intent-filter></receiver>C 、 <receiver andro

16、id:name="NewBroad"><actionandroid:name="vider.action.NewBroad"/><action></receiver>D 、 <intent-filter><receiver android:name="NewBroad"><action>android:name="vider.action.NewBroad"/><action>

17、</receiver></intent-filter>二 简答题1. 简述 apk 安装卸载的原理。APK安装可以通过以下四种方式:2. 系统应用安装,开机时完成系统应用的检查,没安装就安装,安装就跳过,无安装界面。3. 网络下载应用安装,通过market 应用完成,无安装界面。4. ADB 工具安装,无安装界面4.通过SD卡来安装apk,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。应用安装涉及到如下几个目录:system/app 系统自带的应用程序,无法删除data/app 用户程序安装的目录,有删除权限data/data 存放

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

19、) 、 Libraries( 系统运行库或者是c/c+ 核心库 ) 、 ApplicationFramework( 开发框架包 ) 、 Applications ( 核心应用程序)3. 安卓如何做屏幕适配?1)android 有 H、 L、 M、 X、 XX 四个不同的文件夹存放不同分辨率的图片,系统会自动加载4. 如何将一个Activity 设置成窗口的样式。在 AndroidManifest.xml 中 定 义android:theme="android:style/Theme.Dialog"android:theme="android:style/Theme

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

21、Handler 和一个线程绑定,不如说 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 .

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

23、idl 文件接口的 get 方法。 说明一: aidl 文件的位置不固定,可以任意然后定义自己的 MyService 类, 在 MyService 类中自定义一个内部类去继承RemoteService.stub 这个内部类,实现get 方法。在 onBind 方法中返回这个内部类的对象,系统会自动将这个对象封装成IBinder 对象,传递给他的调用者。其次需要在 AndroidManifest.xml 文件中配置MyService 类,代码如下:<!- 注册服务->学习文档 仅供参考service android:name=".MyService"><

24、;intent-filter><!- 指定调用AIDL服务的ID -><actionandroid:name="net.blogjava.mobile.aidlservice.RemoteService" /></intent-filter>/service为什么要指定调用 AIDL服务的ID,就是要告诉外界 MyService这个类能够被别的进程访问,只要别 的进程知道这个ID,正是有了这个ID,B工程才能找到 A工程实现通信。说明:AIDL并不需要权限B工程:首先我们要将 A工程中生成的 RemoteService.java文件

25、拷贝到B工程中,在bindService 方法中绑定aidl服务绑定AIDL服务就是将 RemoteService的ID作为intent 的action 参数。bindService(newInten("net.blogjava.mobile.aidlservice.RemoteService"),serviceConnection, Context.BIND_AUTO_CREATE);ServiceConnection 的 onServiceConnected(ComponentName name, IBinderservice) 方法中 的service 参数就是 A工

26、程中MyService类中继承了 RemoteService.stub类的内部类的对象。三.程序分析题Progressbarl的进度条,和id为buttonl的按钮,请写出实现以下功能的代码: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.Vie

27、w.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 savedInstanceState) s

28、uper.onCreate(savedInstanceState);setContentView(R.layout.main);mProgressBar = (ProgressBar)findViewById(R.id.Progressbarl);myButton = (Button)findViewByld(R.id.buttonl);myButton.setOnClickListener(new BtnClickListener();private class BtnClickListener implements OnClickListenerpublic void onClick(Vi

29、ew arg0) / TODO Auto-generated method stubnew myAsync().execute();private class myAsync extends AsyncTask<Void, Integer, Void>1int duration = 0;int current = 0;Overrideprotected Void doInBackground(Voidparams) do Log.d("handleMessage","id:"+Thread.currentThread().getId()+ n

30、ame:"+Thread.currentThread().getName();current+=10; try publishProgress(current);/ 这里的参数类型是 AsyncTask<Void,Integer, Void> 中的Integer 决定的,在 onProgressUpdate 中可以得到这个值去更新UI主线程,这里是异步线程 Thread.sleep(1000); if(mProgressBar.getProgress() >= 100)break; catch (Exception e) while (mProgressBar.getProgress() <= 100); return null; Overrideprotected void onProgressUpdate(Integervalues) super.onProgressUpdate(values);System.out.println(values0);mProgressBar.setProgress(values0); |Lo

温馨提示

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

评论

0/150

提交评论