Android面试资料库

1. 安卓面试之Service

  • 知道Service吗,它有几种启动方式? —— goeasyway
  • Android Service完全解析,关于服务你所需知道的一切 —— Alpuff
  • Android中IntentService详解 —— 博客园精华区

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

2. 安卓面试之BroadcastReceiver

  • 用广播来更新UI界面好吗?—— goeasyway
  • BroadcastReceiver应用详解 —— liuhe688
  • sendBroadcast和sendStickyBroadcast的区别 —— 一根骨头棒子*熬的汤

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

3. 安卓面试之Activity

  • 怎么理解Activity的生命周期? —— goeasyway
  • Activity四种启动模式 —— 肚皮会唱歌
  • 如何判断Activity是否在运行? —— goeasyway

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

4. 安卓面试之ContentProvider

  • android四大组件--ContentProvider详解

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

5. 安卓面试之开发模式

  • 安卓开发模式之MVC —— 小牧cc
  • 安卓开发模式之MVP —— 小牧cc
  • 安卓开发模式之MVVM —— mixiu

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

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

  • 安卓开发篇之对象序列化 —— 小牧cc

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

你可能感兴趣的:(Android面试资料库)