Android复习题.doc

上传人:s****u 文档编号:13137634 上传时间:2020-06-05 格式:DOC 页数:16 大小:135.01KB
返回 下载 相关 举报
Android复习题.doc_第1页
第1页 / 共16页
Android复习题.doc_第2页
第2页 / 共16页
Android复习题.doc_第3页
第3页 / 共16页
点击查看更多>>
资源描述
Android复习题及答案一、 选择题1. 下列哪些语句关于内存回收的说明是正确的?( )A、 程序员必须创建一个线程来释放内存B、 内存回收程序负责释放无用内存 C、 内存回收程序允许程序员直接释放内存 D、 内存回收程序可以在指定的时间释放内存对象2. Android 中下列属于Intent的作用的是( )A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作3. 下面的对自定style的方式正确的是( ) A、 fill_parent B、 fill_parent C、 fill_parent D、 fill_parent 4. 在Android中使用Menu时可能需要重写的方法有( )。A、onCreateOptionsMenu()B、onCreateMenu()C、onOptionsItemSelected()D、onItemSelected()5. 在Android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是( )A、getWriteableDatabase()B、getReadableDatabase()C、getDatabase()D、getAbleDatabase()6. Android 关于service生命周期的onCreate()和onStart()说法正确的是( )A、当第一次启动的时候先后调用onCreate()和onStart()方法B、当第一次启动的时候只会调用onCreate()方法C、如果service已经启动,将先后调用onCreate()和onStart()方法D、如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法7. 下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的( ) A、 B、 android:name=android.provider.action.NewBroad/ C、 D、 android:name=android.provider.action.NewBroad/ 8. 关于ContenValues类说法正确的是( )A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型 C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型9. 我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是( )A、onDestroy()B、onClear()C、onFinish()D、onStop()10. 下面退出Activity错误的方法是( )A、finish()B、抛异常强制退出C、System.exit()D、onStop()11. 下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是( )A、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念.C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念.D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.12. Android项目工程下面的assets目录的作用是什么( )A、放置应用到的图片资源。 B、主要放置多媒体等数据文件C、放置字符串,颜色,数组等常量数据 D、放置一些与UI相应的布局文件,都是xml文件13. 关于res/raw目录说法正确的是( )A、 这里的文件是原封不动的存储到设备上不会转换为二进制的格式B、这里的文件是原封不动的存储到设备上会转换为二进制的格式C、 这里的文件最终以二进制的格式存储到指定的包中D、这里的文件最终不会以二进制的格式存储到指定的包中14. Android是如何组织Activity的( )A、 以栈的方式组式ActivityB、 以队列的方式组织ActivityC、 以树形方式组织ActivityD、 以链式方式组织Activity。15. onPause什么时候调用( )A当界面启动时B当onCreate方法被执行之后C当界面被隐藏时D当界面重新显示时16. 在Activity中,如何获取service对象( )A可以通过直接实例化得到。B可以通过绑定得到。C通过startService()D通过getService()获取。17. 在表格布局中,android:collapseColumns=1,2的含义是( )A、在屏幕中,当表格的列能显示完时,显示1,2列 B、在屏幕中,当表格的列显示不完时,折叠C、在屏幕中,不管是否能都显示完,折叠1、2列D、在屏幕中,动态决定是否显示表格。18. 绝对布局中,android:layout_x 的含义有( )A、以手机左下为原点,组件显示到屏幕中的横向坐标值。B、以手机左上为原点,组件显示到屏幕中的横向坐标值。C、以手机右下为原点,组件显示到屏幕中的横向坐标值。D、以手机右下为原点,组件显示到屏幕中的横向坐标值。19. 创建Menu需要重写的方法是( ) A、onOptionsCreateMenu(Menu menu)B、onOptionsCreateMenu(MenuItem menu) C、onCreateOptionsMenu(Menu menu)D、onCreateOptionsMenu(MenuItem menu)20. 在使用SQLiteOpenHelper这个类时,它的哪一个方法是用来实现版本升级之用的( )AonCreate()BonCreade()ConUpdate()D onUpgrade()21. ScrollView中,可以直接包含多少个组件( )A三个B两个C一个D无数个22. TabHost.newTabSpec(tab1)( )A为tab页创建标题为tab1B为tab页创建ID为tab1C为tab页创建内容D为tab页创建新空格23. 关于适配器的说法正确的有( )A它主要是用来存储数据B它主要用来把数据绑定到组件上C它主要用来解析数据 D它主要用来存储xml数据24. Matrix类的作用( )A可以存储缩小或放大比列B存储文件中的图片信息C存储资源中的图片信息D 存储内存中的图片信息25. android:completionThreshold=1是哪个组件的属性( )AImageButtonBEditTextCTextViewDAutoCompleteTextView26. 下列说法正确的是( )A、每个进程都运行于自己的java 虚拟机(VM)中。B、 默认情况下,每个应用程序中均运行于自己的进程中,而且此进程不会被消毁。C、每个应用程序会被赋予一个唯一的linux用户ID,从而使得该应用程序下的文件,其它用户也可以访问。D、一个应用程序数据,可以随意被其它应用程序所访问。27. 关于Activity说的法不正确的是( )AActivity是为用户操作而展示的可视化用户界面B一个应用程序可以有若干个ActivityCActivity可以通过一个别名去访问DActivity可以表现为一个漂浮的窗口28. service中如何实现更改Activity界面元素( )A通过把当前actvity对象传递给service对象。B通过向Activity发送广播。C通过Context对象更改Activity界面元素D可以在service中,调用Activity的方法实现更改界面元素。29. 激活Activity的方法是( )ArunActivity()BgoActivity()CstartActivity()DstartActivityForIn()30. 下列样式表定义正确的是( )A、#FF00FFB、#FF00FF C、#FF00FFD、#FF00FF31. 创建Menu需要重写的方法是( )A、onOptionsCreateMenu(Menu menu)B、onOptionsCreateMenu(MenuItem menu)C、onCreateOptionsMenu(Menu menu)D、onCreateOptionsMenu(MenuItem menu)32. 在使用SQLiteOpenHelper这个类时,它的哪一个方法是用来实现版本升级之用的( )AonCreate()BonCreade()ConUpdate()D onUpgrade()33. 关于android进程,说法不正确的是( )A组件运行所在的进程,是由androidmanifest.xml决定,它可以指定该组件运行于哪个进程。B、当急需内存时,android会决定优先关闭那些空闲的进程C背景进程是不为用户所见的Activity,但是还会有可能被用户看到,所以它不能被杀死D可视进程一般不会不被系统所杀死34. 在Activity的生命周期中,当它从可见状态转向半透明状态时,它的哪个方法必须被调用( )AonStop()BonPause()ConRestart()DonStart()35. 关于线程说法不正确的是( )A在android中,我们可以在主线程中,创建一个新的线程B在创建的新线程中,它可以操作UI组件C新线程可以和Handler共同使用D创建的Handler对象,它隶属于创建它的线程36. 当Activity被消毁时,如何保存它原来的状态( )A实现Activity的onSaveInstanceState()方法B实现Activity的onSaveInstance()方法C实现Activity的onInstanceState()方法D 实现Activity的onSaveState()方法37. 关于Intent对象说法错误的是( )A在android中,Intent对象是用来传递信息的BIntent对象可以把值传递给广播或ActivityC利用Intent传值时,可以传递一部分值类型D利用Intent传值时,它的key值可以是对象38. 在android中,ArrayAdapter类是用于( )A用于把数据绑定到组件上B它能把数据显示到Activity上C它能把数据传递给广播D它能把数据传递给服务39. 使进度条变横向的系统样式是( )A. android:style/Widget.ProgressBar.HorizontalB. android:style/ProgressBar.HorizontalC. style/Widget.ProgressBar.HorizontalD. style/ProgressBar.Horizontal40. 能提供内容补全的组件是( )A.EditText B.DatePicker C.TimePicker D.AutoCompleteTextView41. activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行( )A、onPause() B、onCreate() C、 onResume() D、onStart()42. android 中下列属于Intent的作用的是( )A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作43. 下列属于SAX解析xml文件的优点的是( )A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能B、不用事先调入整个文档,占用资源少C、整个文档调入内存,浪费时间和空间D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失44. 关于res/raw目录说法正确的是( )A、 这里的文件是原封不动的存储到设备上不会转换为二进制的格式B、 这里的文件是原封不动的存储到设备上会转换为二进制的格式C、 这里的文件最终以二进制的格式存储到指定的包中D、 这里的文件最终不会以二进制的格式存储到指定的包中45. 下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的是( )A、android:name=android.provider.action.NewBroad/B、android:name=”android.provider.action.NewBroad”/C、android:name=android.provider.action.NewBroad/D、android:name=”android.provider.action.NewBroad”/46. 下列属于Activity的状态是( )多选A.运行状态 B 暂停状态 C 停止状态 D 睡眠状态47. 关于Handler的说话正确的是( )多选A.它实现不同线程间通信的一种机制B.它避免了新线程操作UI组件C.它采用栈的方式来组织任务的D.它可以属于一个新的线程48. 关于广播的作用,正确的说法是( ) 多选A 它是用接收系统发布的一些消息的B 它可以帮助service修改用户界面C 它可以启动一个ActivityD 它可以启动一个Service49. 下面属于View的子类的是( ) 多选A ActivityB ServiceC ViewGroupD TextView50. 在main.xml中,定义一个组件时,有两个属性必须写( ) 多选A android:layout_widthB android:layout_heightC android:id=+id/startD android:text51. 请找出你学过的适配器类( ) 多选A SimpleAdapterB SimpleArrayAdapterC SimpleCursorAdapterD SimpleCursorsAdapter52. 关于主题的说法,正确的是( ) 多选A 它是属性集合B 它可以在程序中来设置C 它通常用于一个Activity或所有Activity上D 它可以用于单个TextView上53. 意图可分为( ) 多选A 显式意图 B 隐式意图 C 组件意图 D 类意图54. 关于Sqlite数据库,正确的说法( ) 多选A SqliteOpenHelper类主要是用来创建数据库和更新数据库B SqliteDatabase类是用来操作数据库的C 在每次调用SqliteDatabase的getWritableDatabase()方法时,会执行SqliteOpenHelper的onCreate方法。D 当数据库版本发生变化时,可以自动更新数据库结构55. Intent传递数据时,下列的数据类型哪些可以被传递( )多选A、Serializable B、charsequence C、Parcelable D、Bundle56. android 中下列属于Intent的作用的是( )A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作57. 下面哪一个不属于Android体系结构中的应用程序层( )A、电话簿B、日历 C、SQLiteD、SMS程序58. 下面哪种说法不正确( )A、Android应用的gen目录下的R.java被删除后还能自动生成;B、res目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以支持数字(0-9)下横线(_),大小写字母(a-z , A-Z);C、AndroidManifest.xml文件是每个Android项目必须有的,是项目应用的全局描述。其中指定程序的包名(package=”)+指定android应用的某个组件的名字(android:name=”)组成了该组件类的完整路径D、assets和res目录都能存放资源文件,但是与res不同的是assets支持任意深度的子目录,在它里面的文件不会在R.java里生成任何资源ID59. 在一个相对布局中怎样使一个控件居中( )A、android:gravity=center B、android:layout_gravity=center C、android:layout_centerInParent=trueD、android:scaleType=center60. setOnTouchEvent 设置返回值为true 和 false有何区别?( )A、没有区别,都能对事件进行监听B、设置为true时 只能在移动时获得一次监听事件,false则可以多次C、返回true表示这个消息已经被处理结束,后续的handler不再接收到这个消息D、设置为false是 ,在处理一次监听事件后,系统将抛弃该次事件61. 下列说法哪个不正确( )A、拥有android:configChanges=orientation|keyboardHidden标签的Activity在横竖屏转换时不会再执行onCreate方法B、默认情况下对一个Activity的对象进行横竖屏切换,该对象的onCreate方法在每次切换时都会执行C、一个Activity的对象a1上弹出了一个模拟对话框形式的Activity的对象a2,按返回键后a1执行了onStart和onResume方法,a2执行了onPause,onStop和onDestroy方法D、一个界面上的EditText中输入文字后,再按下Home,该界面消失,等再回到该界面文字内容仍在,onCreate方法也不会执行62. 下列说法错误的是( )A、Intent起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦B、Intent 可以传递 View对象C、对于直接Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接Intent,通过解析,将 Intent映射给可以处理此Intent的Activity、IntentReceiver或ServiceD、通过Intent可以删除程序63. 这是一个资源配置文件,下面描述正确的是?( )A、这个shape文件是画一个宽为5dp,高为3dp的色块B、这个shape文件是画一个宽从5dp到3dp的等腰梯形C、这个shape文件是画一个底为5dp高为3dp的等腰三角形D、这个shape文件是画一条虚线,实线段5dp,间隔3dp64. 下列关于Service的描述,正确的是( )AServie主要负责一些耗时比较长的操作,这说明Service会运行在独立的子线程中B每次调用Context类中的StartService()方法后都会新建一个Service实例C每次启动一个服务时候都会先后调用onCreate()和onStart()方法D当调用了ConText类中的StopService()方法后,Serviece中的onDestroy()方法会自动回调二、 填空题1、 Android中常用的五种布局是FrameLayout,LinenarLayout,RelativeLayout,AbsoluteLayout和TableLayout。2、 Android 的四大组件是activiey,service,broadcast和contentprovide。3、 Android 中service的实现方法是:startservice和bindservice。4、 activity一般会重载7个方法用来维护其生命周期,除了onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop。5、 android的数据存储的方式sharedpreference,文件,SQlite,contentprovider,网络。6、 当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是startActivityResult()。7、 属于android中的三种适配器 SimpleAdapter、ArrayAdapter、 BaseAdapter 。8、 元素中layout_width的取值有 wrap_content 、match_parent、match_parent。9、 SQLite支持五种数据类型包括 TEXT 、NULL、BLOB、REAL、INTEGER。10、 一个Activity就是一个可视化的界面或者看成是控件的容器。11、 onPause()方法在activity被暂停或收回CPU和其他资源时调用,该方法用于保存活动状态的,也是对运行时数据的现场保护。12、 onDestroy是activity被干掉前最后一个被调用方法,当调用finish方法或者系统为了节省空间将它暂时性的干掉时候调用。13、 使用startService()方法启动服务后,调用者和服务间没有关联,即使调用者退出了,服务仍然进行。14、 当应用程序中某广播在AndroidMainifest.xml进行注册后,即使该应用程序关闭后,也可以接受操作系统发出的广播信息。15、 定义LinearLayout水平方向布局时至少设置的三个属性:android:orientation,android:layout width和android:layout height16、 设置TextView字体的属性是:(android:typeface)17、 Android平台由操作系统,中间件,用户界面和应用软件组成的。18、 Android平台提供了2D,3D的图形支持,SQLite数据库支持,并且集成了浏览器19、 AndroidSDK主要以java语言为基础。20、 Android.jar是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API。三、 简答题1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。 2、 简述Android应用程序结构是哪些?Android应用程序结构是:Linux Kernel(Linux内核)、Libraries(系统运行库或者是c/c+核心库)、Application Framework(开发框架包)、Applications (核心应用程序)3、 如何将一个Activity设置成窗口的样式?在AndroidManifest.xml 中定义Activity的地方android:theme=android:style/Theme.Dialog或android:theme=android:style/Theme.Translucent就变成半透明的4、 简述Android的数据存储方式。SharedPreferences方式文件存储方式SQLite数据库方式内容提供器(Content provider)方式网络存储方式5、 简述ContentProvider是如何实现数据共享的。创建一个属于你自己的Content provider或者将你的数据添加到一个已经存在的Contentprovider中,前提是有相同数据类型并且有写入Content provider的权限。6、 请解释下Android程序运行时权限与文件系统权限的区别。运行时权限Dalvik( android授权) 文件系统 linux 内核授权7、 SIM卡的EF 文件有何作用?SIM卡的文件系统有自己规范,主要是为了和手机通讯,SIM本 身可以有自己的操作系统,EF就是作存储并和手机通讯用的8、 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。9、 Android中的动画有哪几类,它们的特点和区别是什么?两种。一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。10、 简述Activity的生命周期一个activity有三个基本的状态:当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态。这时activity会响应用户的操作。当activity失去焦点但是对用户仍然可见时为paused暂停状态。此时,别的activity在他的上面,透明或者备有被全部覆盖。所以其中一些暂停的activity也可以被显示。一个暂停的activity是处于活动状态的(他维护着所有的状态保存着信息,并且依然附着在窗口管理器)。如果一个activity完全被另一个activity所掩盖那他会处于stop状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个activity仍一直处于隐藏状态,那么系统有可能会杀死他的进程。如果一个activity是暂停或者停止状态,系统可以清理他们占用的内存,或者调用finish()方法,或者直接结束他的进程。当他再次显示给用户时,会完全的重新运行并且加载以前所存储的信息。11、 列举通过Intent传递不同数据类型的方法(至少5个)?Intent.addCategory(String category)Intetn.addFlags(int flags)Intent.equals(Object o)Intent.fillIn(Intent other,int flags)Intent.filterEquals(Intent other)12、 阐述android:padding和android:layout_margin的异同?(1)不同点:android:padding 是站在父View 的角度描述问题,它规定它里面的内容必须与这个父View 边界的距离。android:layout_margin 则是站在自己角度描述问题,规定自己和其他(上下左右)的 View 之间的距离如同一级只有一个View,那么他的效果基本上就和padding一样。(2)相同点:如同一级只有一个View,那么android:layout_margin的效果基本上就和android:padding一样13、 简述Android 平台的特征有哪些。开放性、挣脱运行商的束缚、丰富的硬件选择、无缝结合的Google应用14、 简述Android 平台开发环境搭建的步骤。安装Java JDK,安装Eclipse,安装Android SDK,搭建Eclipse集成开发环境(IDE)、配置ADT(Android Development Tools)、创建AVD(Android Virtual Device)15、 简述Android系统架构从高到低的几个层次。四个层次,分别是:应用程序层(Applications)、应用程序框架层(Application Framework)、各种库(Libraries)和运行环境(Runtime)、Linux内核(Linux kernel)16、 应用程序的基本组件有哪些?Activity、Service、Content Provider、BroadCast Receiver17、 Android根据应用程序的组件以及组件当前运行状态将所有的进程按重要性程度从高到低划分为几个?可以划分为5个:前台进程、可见进程、服务进程、后台进程、空进程18、 随着Activity的创建和销毁,可能会经历哪四种状态?活动状态:当前的Activity,位于Activity栈顶,用户可见,并且可以获得焦点暂停状态:失去焦点的Activity,依然可见,即使在内存低的情况下,也不会被系统杀死停止状态:该Activity被其他Activity所覆盖,不可见,但是仍然保存所有的状态和信息。当内存低的情况下,它将要被系统杀死销毁状态:该Activity结束,或Activity所在的Dalvik进程结束19、 使用资源包括哪几种方法?在代码里使用资源类;在代码里调用资源类并实例化;从其他资源类里引用20、 AndroidManifest.xml主要包含哪些功能?说明application的java数据包,数据包名是application的唯一标识描述application的component说明application的component运行在那个process下声明application的权限,用以访问受保护的API,以及与其他application进行交互声明application的其他必备权限,用以与component进行交互列举application运行时所需要的配置信息,这些声明信息只有在程序开发和测试时存在,在发布前被删除声明application所需要的Android API的最低级版本列举application所需要链接的库21、 Android应用程序的菜单有哪几种?Android应用程序的菜单有3种:选择菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu)22、 在界面上创建一个Spinner(含数据选项)的步骤。1、在布局文件中添加标记,并为其指定android:entries属性2、编写用于指定列表项的数组资源文件,并将其保存在res/values目录中,在该文件中添加一个字符串组23、 现行布局中属性orientation的作用是什么?用于设置布局管理器内组件的排列方式,其可选的值为horizontal和vertical,默认值为vertical24、 Android中实现事件处理的步骤?(1)将事件监听器注册到事件源(2)触发事件源上的事件(3)生成时间对象(4)触发事件监听器,事件被作为参数传入事件处理器(5)调用事件处理器做出响应25、 简述Android模拟器中应用程序使用SD卡的步骤。(1)调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡,并且应用程序具有读写SD卡的权限(2)调用Environment的getExternalDirectory()方法来获取外部存储器,也就是SD卡的目录(3)使用FileOutputStream、FileInputStream、FileReader和FileWriter来读写SD卡26、 简述创建或打开一个SQLite数据库的方法有哪些?openDataBase、openOrCreateDataBase27、 使用ContentProvider来实现数据共享,都涉及到哪些辅助类。onCreate()、insert()、delete()、update()、query()、getType()28、 开发ContentProvider的步骤(1)开发一个ContentProvider子类,并实现增、删、改、查等方法 (2)在AndroidManifest.xml里面注册该ContentProvider29、 startService()和bindService()启动服务的区别:服务不能自己运行,需要通过调用startService()或bindService()方法启动服务。这两个方法都可以启动Service,但是它们的使用场合有所不同。1.使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。2.采用startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStart()方法。采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。3.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,接着调用onDestroy()方法。如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-onDestroy()方法。30、 请解释下在单线程模型中Message、Handler、MessageQueue、Looper之间的关系。Handler简介:一个Handler允许你发送和处理Message和Runable对象,这些对象和一个线程的MessageQueue相关联。每一个线程实例和一个单独的线程以及该线程的MessageQueue相关联。当你创建一个新的Handler时,它就和创建它的线程绑定在一起了。这里,线程我们也可以理解为线程的MessageQueue。从这一点上来看,Handler把Message和Runable对象传递给MessageQueue,而且在这些对象离开MessageQueue时,Handler负责执行他们。Handler有两个主要的用途:(1)确定在将来的某个时间点执行一个或者一些Message和Runnable对象。(2)在其他线程(不是Handler绑定线程)中排入一些要执行的动作31、 handler机制的原理andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从Message Queue取出)所送来的消息。3) Message Queue(消息队列):用来存放线程放入的消息。4)线程:UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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