Administrator
发布于 2024-04-10 / 5 阅读
0
0

安卓面试复盘.3

1.okhttp的使用,内部的实现

2.okhttp,请求失败,重试

RetryAndFollowUplnterceptor

3.Glide,缓存策略,自定义网络

4.Glide,如何实现根据imageView来缓存不同的尺寸

5.ANR 是怎么处理的,有个文件

https://blog.csdn.net/wlred1980/article/details/135745437

6.bug跟踪

利用uncatchExceptionHandle

7.谈谈kotlin

8.MVVM有什么缺点

1、bug很难被调试,因为数据双向绑定,所以问题可能在 view 中,也可能在 model 中,要定位原始bug的位置比较难,同时view里面的代码没法调试,也添加了bug定位的难度。

● 2、一个大的模块中的 model 可能会很大,长期保存在内存中会影响性能。

● 3、对于大型的图形应用程序,视图状态越多, viewModel 的构建和维护的成本都会比较高。

9.线程池的定义

核心线程数:

CPU密集型:核心线程数 = CPU核数 + 1

CPU密集的意思是任务需要大量的运算,而没有IO阻塞,CPU一直全速运行。线程数一般只需要设置为CPU核心数的线程个数就可以了。

IO密集型:核心线程数 = CPU核数 * 2

IO密集型,就是程序中存在大量的 I/O 操作占用时间,导致线程空余时间很多,所以通常就需要开CPU核心数两倍的线程。当线程进行 I/O 操作 CPU 空闲时,启用其他线程继续使用 CPU,以提高 CPU 的使用率。

10.看过安卓源码吗

11.Aroute的实现,init方法做了什么

12.谈谈你对协程的理解


评论