Android开发Android开发经验谈终端研发部

金9银10,分享几个重要的Android面试题

2018-07-30  本文已影响58人  goodgleCoder

说一下java多态的理解,以及接继承,和接口的理解

于哥在这里只讲多态,其他自己上网体会

对于多态的定义
不同类的对象对统一函数做出不同对的响应或者动作。
作用
主要是消除类之间的耦合性,灵活性比较强,利于代码的编写和修改。尤其在处理大量的运算和操作时,可以灵活地简化,替换或者是修改代码!

三个必要条件
1、一个凳子(继承extends)
2、重写
3、父类引用指向子类对象

for example



测试结果:

测试结果

oKhttp的 原理

1.同步和异步:

2.连接池:

3.选择路线与建立连接

4.职责链模式:缓存、重试、建立连接等功能存在于拦截器中网络请求相关,主要是网络请求优化。网络请求的时候遇到的问题

线程同步的问题,常用的线程同步

1.sycn:保证了原子性、可见性、有序性
2.锁:保证了原子性、可见性、有序性

3.volatile

4.cas

5.线程不安全到底是怎么回事:

Asynctask和线程池,GC相关(怎么判断哪些内存该GC,GC算法)

1.Asynctask:异步任务类,单线程线程池+Handler
2.线程池:

java类加载过程:

mvc、mvp、mvvm:

apk瘦身:

1.classes.dex:通过代码混淆,删掉不必要的jar包和代码实现该文件的优化
2.资源文件:通过Lint工具扫描代码中没有使用到的静态资源
3.图片资源:使用tinypng和webP,下面详细介绍图片资源优化的方案,矢量图
4.SO文件将不用的去掉,目前主流app一般只放一个arm的so包

ANR的形成,各个组件上出现ARN的时间限制是多少

1.只要是主线程耗时的操作就会ARN 如io
2.broadcast超时时间为10秒 按键无响应的超时时间为5秒 前台service无响应的超时时间为20秒,后台service为200秒

Serializable和Parcelable 的区别

1.P 消耗内存小
2.网络传输用S 程序内使用P
3.S将数据持久化方便
4.S使用了反射 容易触发垃圾回收 比较慢

Sharedpreferences源码简述

1.储存于硬盘上的xml键值对,数据多了会有性能问题
2.ContextImpl记录着SharedPreferences的重要数据,文件路径和实例的键值对
3.在xml文件全部内加载到内存中之前,读取操作是阻塞的,在xml文件全部内加载到内存中之后,是直接读取内存中的数据
4.apply因为是异步的没有返回值, commit是同步的有返回值能知道修改是否提交成功
5.多并发的提交commit时,需等待正在处理的commit数据更新到磁盘文件后才会继续往下执行,从而降低效率; 而apply只是原子更新到内存,后调用apply函数会直接覆盖前面内存数据,从一定程度上提高很多效率。 3.edit()每次都是创建新的EditorImpl对象.

ANR的形成,各个组件上出现ARN的时间限制是多少

1.只要是主线程耗时的操作就会ARN 如io
2.broadcast超时时间为10秒 按键无响应的超时时间为5秒 前台service无响应的超时时间为20秒,后台service为200秒

apk瘦身:

1.classes.dex:通过代码混淆,删掉不必要的jar包和代码实现该文件的优化
2.资源文件:通过Lint工具扫描代码中没有使用到的静态资源
3.图片资源:使用tinypng和webP,下面详细介绍图片资源优化的方案,矢量图
4.SO文件将不用的去掉,目前主流app一般只放一个arm的so包

阅读更多

20+个很棒的Android开源项目

我是如何进入Facebook的?

2018年Android面试题含答案—适合中高级(下)

看完你就该会git了(手把手教你用vue+node+mongodb搭建一个小商城

相信自己,没有做不到的,只有想不到的

上一篇下一篇

猜你喜欢

热点阅读