Android 面试专辑Android开发

android面试题

2018-07-20  本文已影响46人  布吉岛原住民

1.handler机制
当我们需要在子线程处理耗时的操作(例如访问网络,数据库的操作),而当耗时的操作完成后,需要更新UI,这就需要使用Handler来处理,因为子线程不能做更新UI的操作。Handler能帮我们很容易的把任务(在子线程处理)切换回它所在的线程。简单理解,Handler就是解决线程和线程之间的通信的。
Handler发送Message到MessageQueue中
Looper从MessageQueue取出Message
Message扔给Handler由对应的处理者处理
2.Android四大组件(重点看下广播和服务)
①activity 提供用户界面 用于与用户交互的组件,(活动窗体)它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑
②content Provider
为应用程序之间访问提供的接口的组件,实现数据共享,结构化数据集合,以表的形式对外提供数据,可以像数据库一样记性选择排序
③BroadCastReceiver (广播)
采用异步机制完成组件之间消息的传递,异步是指广播的发送方将消息标记后发出,不需要得到对方的回应,可以继续做自己的操作
默认情况下,所有的组件都有接收广播的能力,组件想要接收广播就注册与发送方一致的标记
包括普通广播和有序广播:
发送有序广播:sendOrderedBroadCast(…);
有序广播可以进行应用程序之间传递消息,可以根据manifest文件中注册的优先级的高低判断接收的顺序。

无序广播:sendBroadCast();
实现过程:
创建一个类继承BroadCastReceiver,重写其中的onReceiver()方法,进行接收广播之后的操作。
广播 的生命周期注册方式:

  1. 程序代码中动态注册 退出时要取消注册。特点:关掉后,广播就失效了
  2. 清单文件中静态注册。 特点:无需关心广播接收器是否关闭,广播触发时,即使退出应用也会对它起作用

④server(服务)
不需要提供用户界面,在后台运行服务于activity,执行长时间耗时操作的组件
3.数据存储方式

  1. 自定义View是如何绘制到界面上的
    我们知道,不管是自定义View还是系统提供的TextView这些,它们都必须放置在LinearLayout等一些ViewGroup中,因此理论上我们可以很好的 理onMeasure(),onLayout(),onDraw()这三个函数:
  1. Android中跨进程通信
  1. Android中动画的使用
  2. 四种启动模式,结合具体情况分析
  1. 内存泄露和内存溢出的区别

13.关于MVC,MVP,MVVM的一点总结和思考
软件的架构方式有很多种,从最开始的MVC模式,演化到MVP,然后到现在的MVVM,在不断的演化过程中其核心的思想就是降低各组件之间的耦合度,使得数据的流向更加的清晰明了。

14.Android进程(推送)保活手段

上一篇 下一篇

猜你喜欢

热点阅读