ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:25.95KB ,
资源ID:20722341      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20722341.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android面试题总结强劲版三Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android面试题总结强劲版三Word格式文档下载.docx

1、没准你需要记住滚动条的位置.27.如何退出Activity对于单一Activity的应用来说,退出很简单,直接finish()即可。当然,也可以用killProcess()和System.exit()这样的方法。现提供几个方法,供参考:1、抛异常强制退出:该方法通过抛异常,使程序ForceClose。验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出ForceClose的窗口。2、记录打开的Activity:每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。3、发送特定广播:在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭

2、即可。4、递归退出在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。除了第一个,都是想办法把每一个Activity都结束掉,间接达到目的。但是这样做同样不完美。你会发现,如果自己的应用程序对每一个Activity都设置了nosensor,在两个Activity结束的间隙,sensor可能有效了。但至少,我们的目的达到了,而且没有影响用户使用。为了编程方便,最好定义一个Activity基类,处理这些共通问题。28.请解释下在单线程模型中Message、Handler、MessageQueue、Loop

3、er之间的关系。MessageQueue(消息队列):用来存放通过Handler发布的消息,通常附属于某一个创建它的线程,可以通过Looper.myQueue()得到当前线程的消息队列Handler:可以发布或者处理一个消息或者操作一个Runnable,通过Handler发布消息,消息将只会发送到与它关联的消息队列,然也只能处理该消息队列中的消息Looper:是Handler和消息队列之间通讯桥梁,程序组件首先通过Handler把消息传递给Looper,Looper把消息放入队列。Looper也把消息队列里的消息广播给所有的Handler,Handler接受到消息后调用handleMessag

4、e进行处理Message:消息的类型,在Handler类中的handleMessage方法中得到单个的消息进行处理.29.你如何评价Android系统?优缺点。答:优点:1、学习的开源性2、软件兼容性比较好3、软件发展迅速4、界面布局好缺点:1、版本过多2、先有软件少3、商务性能差30.谈谈android数据存储方式。Android提供了5种方式存储数据:(1)使用SharedPreferences存储数据;它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中。只能在同一个包内使用,不能在不同的包之间使用。(2)文件存储数据;文件存储方式是一种较常用的

5、方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。(3)SQLite数据库存储数据;SQLite是Android所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。(4)使用ContentProvider存储数据;主要用于应用程序之间进行数据交换,从而能够让其他的应用保存或读取此ContentProvider的各种数据类型。(5)网络存储数据;通过网络上提供给我们的存储空间来上传(存储)和下载(获取)我们存储在网络空间中的数据信息。31.And

6、roid中Activity,Intent,ContentProvider,Service各有什么区别。Activity:活动,是最基本的android应用程序组件。一个活动就是一个单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类继承而来。Intent:意图,描述应用想干什么。最重要的部分是动作和动作对应的数据。Provider:内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。Service:服务,具有一段较长生命周期且没有用户界面的程序。32.View,su

7、rfaceView,GLSurfaceView有什么区别。view是最基础的,必须在UI主线程内更新画面,速度较慢。SurfaceView是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快GLSurfaceView是SurfaceView的子类,opengl专用的33.Manifest.xml文件中主要包括哪些信息?manifest:根节点,描述了package中所有的内容。uses-permission:请求你的package正常运作所需赋予的安全许可。permission:声明了安全许可来限制哪些程序能你package中的组件和功能。instrumenta

8、tion:声明了用来测试此package或其他package指令组件的代码。application:包含package中application级别组件声明的根节点。activity:Activity是用来与用户交互的主要工具。receiver:IntentReceiver能使的application获得数据的改变或者发生的操作,即使它当前不在运行。service:Service是能在后台运行任意时间的组件。provider:ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件。34.根据自己的理解描述下Android数字签名。(1)所有的应用程序都必须有数字证书,A

9、ndroid系统不会安装一个没有数字证书的应用程序(2)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证(3)如果要正式发布一个Android,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。(4)数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。35.AIDL的全称是什么?如何工作?能处理哪些类型的数据?AIDL全称AndroidInterfaceDefinitionLanguage(AndRoid接

10、口描述语言)是一种借口描述语言;编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程跨界对象访问的目的.AIDL的IPC的机制和COM或CORBA类似,是基于接口的,但它是轻量级的。它使用代理类在客户端和实现层间传递值.如果要使用AIDL,需要完成2件事情:1.引入AIDL的相关类.;2.调用aidl产生的class.理论上,参数可以传递基本数据类型和String,还有就是Bundle的派生类,不过在Eclipse中,目前的ADT不支持Bundle做为参数,具体实现步骤如下:1、创建AIDL文件,在这个文件里面定义接口,该接口定义了可供客户端访问的方法和属性。2、

11、编译AIDL文件,用Ant的话,可能需要手动,使用Eclipseplugin的话,可以根据adil文件自动生产java文件并编译,不需要人为介入.3、在Java文件中,实现AIDL中定义的接口.编译器会根据AIDL接口,产生一个JAVA接口。这个接口有一个名为Stub的内部抽象类,它继承扩展了接口并实现了远程调用需要的几个方法。接下来就需要自己去实现自定义的几个接口了.4、向客户端提供接口ITaskBinder,如果写的是service,扩展该Service并重载onBind()方法来返回一个实现上述接口的类的实例。5、在服务器端回调客户端的函数.前提是当客户端获取的IBinder接口的时候,

12、要去注册回调函数,只有这样,服务器端才知道该调用那些函数AIDL语法很简单,可以用来声明一个带一个或多个方法的接口,也可以传递参数和返回值。由于远程调用的需要,这些参数和返回值并不是任何类型.下面是些AIDL支持的数据类型:不需要import声明的简单Java编程语言类型(int,boolean等)String,CharSequence不需要特殊声明3.List,Map和Parcelables类型,这些类型内所包含的数据成员也只能是简单数据类型,String等其他比支持的类型.(另外:我没尝试Parcelables,在Eclipse+ADT下编译不过,或许以后会有所支持).实现接口时有几个原则

13、:.抛出的异常不要返回给调用者.跨进程抛异常处理是不可取的.IPC调用是同步的。如果你知道一个IPC服务需要超过几毫秒的时间才能完成地话,你应该避免在Activity的主线程中调用。也就是IPC调用会挂起应用程序导致界面失去响应.这种情况应该考虑单起一个线程来处理.不能在AIDL接口中声明静态属性。IPC的调用步骤:声明一个接口类型的变量,该接口类型在.aidl文件中定义。实现ServiceConnection。调用ApplicationContext.bindService(),并在ServiceConnection实现中进行传递.4.在ServiceConnection.onService

14、Connected()实现中,你会接收一个IBinder实例(被调用的Service).调用YourInterfaceName.Stub.asInterface(IBinder)service)将参数转换为YourInterface类型。5.调用接口中定义的方法。你总要检测到DeadObjectException异常,该异常在连接断开时被抛出。它只会被远程方法抛出。6.断开连接,调用接口实例中的ApplicationContext.unbindService()参考:36.android:gravity与android:layout_gravity的区别LinearLayout有两个非常相似的

15、属性:android:layout_gravity。他们的区别在于:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。举个例子,我们可以通过设置android:gravity=center来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity=right来让EditText组件在LinearLayout中居中显示。来实践以下:正如我们所看到的,在EditText中,其中的文字已经居中显示了,而EditText组件自己也对齐到了Li

16、nearLayout的右侧。htmlview plaincopyprint?1. 6. 12. 这两个属性也可以用于FramlayoutTextview等等,表示的意思大同小异37.padding与margin的区别padding填充的意思,指的是view中的content与view边缘的距离,类似文本中的indent而margin表示的是view的左边缘与parentview的左边缘的距离margin一般用来描述控件间位置关系,而padding一般描述控件内容和控件的位置关系。简单,padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。margin则

17、是站在自己的角度描述问题,规定自己和其他(上下左右)的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。例如我的XMLlayout代码如下:viewplaincopytoclipboardprint?xmlversion=1.0encoding=utf-82. paddingLeft=10dippaddingRight=paddingTop=paddingBottom=11. TextView12. 13. 14. background=#FF000015. string/hello16. 50dip17. 18. 19. 20. layout_mar

18、ginBottom=21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 那么我会得到如下的效果,图上已经很明确的标出来区别咯。38.注册广播接收者两种方式的区别现在我们就来实现一个简单的广播程序。Android提供了两种注册广播接受者的形式,分别是在程序中动态注册和在xml中指定。他们之间的区别就是作用的范围不同,程序动态注册的接收者只在程序运行过程中有效,而在xml注

19、册的接收者不管你的程序有没有启动有会起作用。39.Dalvik基于JVM的改进1.几个class变为一个dex,constantpool,省内存2.Zygote,copy-on-writeshared,省内存,省cpu,省电3.基于寄存器的bytecode,省指令,省cpu,省电4.Trace-basedJIT,省cpu,省电,省内存40.android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别.DOM解析优点:1.XML树在内存中完整存储,因此可以直接修改其数据和结构.2.可以通过该解析器随时访问XML树中的任何一个节点.3.DOM解析器的API在使用上也相对比较简单.缺点

20、:如果XML文档体积比较大时,将文档读入内存是非常消耗系统资源的.使用场景:DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能进行任何工作.DOM是基于对象层次结构的.SAX解析SAX对内存的要求比较低,因为它让开发人员自己来决定所要处理的标签.特别是当开发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现.用SAX方式进行XML解析时,需要顺序执行,所以很难访问到同一文档中的不同数据.此外,在基于该方式的解析编码过程也相对复杂.对于含有数据量十分巨大,而又不用对文档的所有数据进行遍历或者分析的时候,使用该方法十分有效.该方法不用将整个文档读入内存,而只需读取到程序所需的文档标签处即可.Xmlpull解析androidSDK提供了xmlpullapi,xmlpull和sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序.因为是基于流的处理,因此xmlpull和sax都比较节约内存资源,不会象dom那样要把所有节点以

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1