安卓面试心灵鸡汤面试大全

Android面试资料库

2016-11-01  本文已影响369人  cooperise

1. 安卓面试之Service

重点:
(1) startServicebindService各自的生命周期
(2) 项目中的每一个Service都必须在AndroidManifest.xml中注册才行
(3) Service的onCreate是在主线程(ActivityThread)中调用的,耗时操作会阻塞UI
(4) 用远程Service和IntentService执行耗时操作
(5) IntentService中的onHandleIntent能接收Activity启动服务时传递的参数并执行相应动作

2. 安卓面试之BroadcastReceiver

重点:
(1) 静态注册与动态注册的区别
(2) 有序广播与无序广播的区别
(3) 当它的onReceive方法执行完成后,它的生命周期就结束了。如果在onReceive去开线程进行异步操作或者打开Dialog都有可能在没达到你要的结果时进程就被系统杀掉。替代的方案是用Notificaiton或者Service(startService)
(4) sendStickyBroadcast发出的最后一个Intent会被保留,下次当Recevier处于活跃的 时候,又会接收到它

3. 安卓面试之Activity

重点:
onPause较容易被触发,所以我们在做BroadcastReceiver注销时放在onStop要好些;但在保存数据时,放在onPause去做可以保证数据存储的有效性,如果放在onStop去做,在某些情况下Activity走完onPause后有可能还没顺利走到onStop就被系统回收了

4. 安卓面试之ContentProvider

重点:
ContentProvider向我们提供了我们在应用程序之前共享数据的一种机制

5. 安卓面试之开发模式

重点:
作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller。

6. 安卓面试之对象序列化

重点:
两种都是用于支持序列化、反序列化话操作,两者最大的区别在于存储媒介的不同,Serializable使用IO读写存储在硬盘上,而Parcelable是直接在内存中读写,很明显内存的读写速度通常大于IO读写,所以在Android中通常优先选择Parcelable。
在内存间数据传输时推荐使用Parcelable,而Serializable可将数据持久化方便保存,所以在需要保存或网络传输数据时选择Serializable,因为android不同版本Parcelable可能不同,所以不推荐使用Parcelable进行数据持久化

上一篇下一篇

猜你喜欢

热点阅读