顺丰安卓技术一面
视频面,全程30分钟,没有手撕算法;面试官很nice,基本上我答不出的话他都会给我解释,最后说是一周内会给下一轮面试的通知。
1、问项目有用到什么架构?Presenter怎么绑定View的生命周期?活动销毁的时候耗时任务会不会中断?View怎么持有Presenter的引用?
面试官后来提示我说MySQL用的是行锁,SQLite用的是表锁。
我说了Glide,然后看了Glide是通过创建一个Fragment然后添加到Activity里面,通过在Fragment的生命周期里调用回调方法就可以控制Glide的生命周期。
我答了热修复和插件化;热修复就是通过ClassLoader动态地加载类来实现的。
我说了用单例;后来问面试官,他说可以用Intent的隐式调用,还有可以用阿里的Router路由框架。
6、高层级的模块怎么调用低层级的模块?
我答了Java里有一个快排算法,实现说不出来。
ArrayList;LinkedList;HashMap;LinkedHashMap。(应该分三类来答:Set、Map、List)
我说主要看书、看博客,写笔记总结。
我答目前还没有去看,打算先熟悉当前流行的框架源码,还有熟悉Java设计模式,因为Android源码里面用到了很多的设计模式。然后面试官表示同感地说Retrofit里面用到了大量的设计模式。
11、问我熟悉Android哪一方面的开发?
非对称:RSA;对称:AES、DES、3DES
这是我后面查到的:SP一旦使用了之后SPimpl就会以强引用的方式存活在内存中,同时SP里面的所有key-value也存活在内存中;调用edit或者getXXX时缩在线程都会阻塞起来等待加载完成,可能出现ANR;支持多线程不支持多进程;Activity会等待所有的apply任务完成后才能结束;SP所有读写都是在synchronized块里面进行的,所以读写必然会慢。#顺丰科技##面经##秋招##内推##安卓工程师#