您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > Android面试题总结
1.描述Activity生命周期创建onCreate()-启动onStart()–恢复onResume()–暂停onPause()–结束onEnd()–销毁onDestroy()2.描述Service生命周期:onCreate(),onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法,具体的可以看下面的实例。3.请介绍下Android中常用的五种布局。线性布局LinearLayout,相对布局RelativeLayout表单布局TableLayout,绝对布局AbsLayout(已淘汰)帧布局FrameLayout4.数据库存储方式(1)使用SharedPreferences存储数据;(2)文件存储数据;(3)SQLite数据库存储数据;(4)使用ContentProvider存储数据;(5)网络存储数据;5.sim卡的EF文件有何作用sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,EF就是作存储并和手机通讯用的6.Android中的动画有哪几类,它们的特点和区别是什么?两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。7.说说mvc模式的原理,它在android中的运用MVC(Model_view_contr6ller)”模型_视图_控制器”。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。8.什么是ANR,如何避免?ApplicationNotResponse。在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框这个对话框就是ANR(Applicationnotresponse)运行主线程里的任何方法都尽量少做事情。特别是,Activity应该在它的关键生命周期方法如(onCreate()或onResume())尽量少的去做创建操作、潜在的耗时操作、例如网络或者数据库操作或者高耗时的计算9.Android系统架构有几层?分别对应是什么?Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。10.Android本身的api并未声明会抛出异常,则其在运行时有无可能抛出runtime异常,你遇到过吗?诺有的话会导致什么问题?如何解决?会有运行时异常,运行时异常无需捕捉11.你如何评价Android系统?优缺点。优势:一、开放性三、丰富的硬件选择五、无缝结合的Google应用支持缺点:一、安全和隐私二,开发商自定义,不够统一四、同类机型用户减少12.Service和Activity的区别activity前端显示的,就像windows中的视窗,service是在后面偷偷干事情的,你可能并不知道是他在干,其实是他干的。android的service没有像mobile被一个进程services.exe给加载,他可以在activity、broadcast中启动、用start方法启动的可以一直服务着,直到调用stop方法,绑定启动的是随绑定对象而存在的。13.AIDL的全称是什么?如何工作?能处理哪些类型的数据?AndroidinterfaceDefinelanguage处理android接口自定义语言14.请介绍下ContentProvider是如何实现数据共享的。ContentProvider负责:组织应用程序的数据,向其他应用程序提供数据ContentResolver负责:获取ContentProvider提供的数据、增删改查数据15.注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。2钟;一种是XML注册、一种是:代码注册、XML注册优点:方便易读缺点:当当手机处于关机状态时、仍然可以监听到广播、不灵活代码注册优点:灵活,手机处于关机状态时,不在监听广播缺点:不方便,不易读16.请解释下在单线程模型中Message、Handler、MessageQueue、Looper之间的关系。andriod提供了Handler和Looper来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。2)Handler:你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从MessageQueue取出)所送来的消息。3)MessageQueue(消息队列):用来存放线程放入的消息。4)线程:UIthread通常就是mainthread,而Android启动程序时会替它建立一个MessageQueue17.简要解释一下activity、intent、intentfilter、service、Broadcast、BroadcastReceiveractivity呈现了一个用户可以操作的可视化用户界面service不包含可见的用户界面,而是在在后台无限地运行可以连接到一个正在运行的服务中。连接后,可以通过中暴露出来的借口与其通信BroadcastReceiver是一个接收广播消息并作出回应的component,BroadcastReceiver没有界面intent:contentprovider在接收ContentResolver的请求时被激活。Activity,service和broadcast是被称为intents的异步消息激活的一个intent是一个Intent对象,它保存消息的内容。对于activity和service来说,它指定了请求的操作名称和待操作数据的URL,intent对象可以显式的制定一个目标component,如果目标不是显式的,它通过将intent对象和目标的intentfilter相比较来完成这一工作的。一个component的intentfilter告诉component能处理的intent18.什么情况会导致ForceClose?如何避免?能否捕获导致其的异常?一般像空指针,可以看logcat,然后对应到程序中解决错误19.如何退出Activity?如何安全退出已调用多个Activity的Application?单个Activity,调用finish、killProcess()、System.exit()方法退出在2.1之前,可以使用ActivityManager的restartPackage方法它可以直接结束整个应用。在使用时需要权限android.permission.RESTART_PACKAGES在2.2这个方法失效了、在2.2添加了新方法killBackgroundProcess(),需要权限android.permission.KILLBACKGROUND_PACKAGES20.能说下Android应用的入口点吗?真正的Android入口点是application的main,你可以看下androidmanifest.xml的包含关系就清楚了。可以没有Activity但是必须有Application21.Android都有哪些XML解析器,都熟练掌握吗?XmlPull、SAX和DOM22.SQLite支持事务吗?添加删除如何提高性能?SQLite作为轻量级的数据库,比MySQL还小,但支持SQL语句查询,提高性能可以考虑通过原始经过优化的SQL查询语句方式处理。
本文标题:Android面试题总结
链接地址:https://www.777doc.com/doc-4485988 .html