Android面试题(2018.11.16)

一、UI的绘制过程,常见优化手段以及原理

二、有几种常见的单例模式?对于这几种单例模式synchronized具体锁的是什么东西?

三、问内存优化你做过没有?一张十万乘以十万的图片,如何加载才不会内存溢出?

有关内存优化:

Android性能优化之内存优化

Android内存优化——常见内存泄露及优化方案

【腾讯Bugly干货分享】Android内存优化总结&实践

有关加载大图片,且避免OOM:

Android高效加载大图、多图解决方案,有效避免程序OOM

Android中如何加载大图片和长图片

四、问内存溢出,内存抖动,内存泄漏你都碰到过吗?怎么解决的?如何区分这几种情况?怎么解决由内存泄漏而导致的内存溢出?

内存溢出,内存抖动,内存泄漏

五、简述Rxjava的原理。

RxJava与RxAndroid基础入门

六、问Handler源码分析。

Android面试题:Handler

一、Handler封装了消息的发送(主要包括消息发送给谁,以及如何去发送。默认情况下消息都是发送给Handler自己)。
二、Looper:轮询,消息封装的一个载体,
1、Looper内部包含一个消息队列也就是MessageQueue,所有的Handler发送的消息都走向这个消息队列;
2、Looper.looper方法,就是一个死循环,不断地从MessageQueue取消息,如有消息就处理,没有就阻塞;
三、MessageQueue,就是一个消息队列,可以添加消息,并处理消息。
四、Handler也很简单,内部会跟Looper进行关联,也就是说在Handler的内部可以找到Looper,找到了Looper也就找到了MessageQueue,在Handler中发送消息,其实就是向MessageQueue队列中发送消息。
总结:Handler负责发送消息,Looper负责接收Handler发送的消息,并直接把消息回传给Handler自己,MessageQueue就是一个存储消息的容器。

七、线程间通信。

安卓中的几种线程间通信方式(更加全面)

  • EventBus
  • runOnUiThread()
  • post()和postDelay()
  • Handler + Message或者Handler + Thread + Message
  • Broadcast
  • AsyncTask

android线程间通信的四种实现方式

  • 通过Handler机制
  • runOnUiThread方法
  • View.post(Runnable r)
  • AsyncTask

八、事件分发机制。

九、问如何分析ANR及如何处理。

十、AsyncTask原理。

十 一、性能优化相关的问题,各种性能检测工具及优化思路。调优相关,卡帧原理,过度绘制以及各种调优工具的使用问得比较细。 

十二、fragment的生命周期。

十三、多线程。

十四、framework层的应用有没有了解,比如launcher和settings等(主要是手机ROM应用开发的内容)。

十五、contentprovider的uri和表名或者列名怎么对应上的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值