2022年Android面试题汇集(中高级)

废话留在结尾了。以下括号内有的是细分问题,有的是关键点。(注:我简历上有写源码okhttp、Retrofit、Glide、Eventbus、Arouter。)

一、作业帮:

1面:

        1、Https握手过程(CA验证、哪些是对称加密、哪些非对称加密,ssl包含哪些内容);

        2、Binder机制及优势(IO在哪个线程?Client在调用线程,Server在binder线程);

        3、Okhttp超时机制(Socket、读写超时、execute时开启的看门狗);

        4、Launcher启动app流程(Broadcast、Service等相似过程);

        5、Handler机制(包括同步屏障、epoll与select区别);

        6、ListView和RecyclerView的区别(item动画、布局、diff、缓存);

        7、类的初始化过程(父:静态变量>静态代码块    >  子:静态变量>静态代码块   > 父:成员变量>构造代码块>构造函数     >   子成员:成员变量>构造代码块>构造函数);

        8、线程池原理、线程池参数含义及四大线程池[拒绝策略];

        9、kotlin协程、by lazy的实现、扩展函数原理、let、apply、with等高阶函数;

        10、代码手写题:反转链表[开发必须会的题]、观察者模式。

2面:

        1、LocalBroadcast原理(map的key为action);

        2、异步通信:AsyncTask、HanderThread原理、IntentService等;

        3、Leakcanary原理,注意ReferenceQueue的作用;

        4、有哪些东西不能混淆;

        5、MultiDex机制;

        6、sp原理,commit与apply的区别;

        7、启动优化。

二、我爱我家及其他

        1、动画(几种,区别);

        2、Https 1.0/2.0区别(常用的为1.1/2.0);

        3、Launch流程;

        4、kotlin中异步怎么写成同步的(suspend->callback);

        5、线程池参数;

        6、性能优化;

        7、HashMap数据结构(树化及扩容);

        8、Arouter实现原理;

        9、事件分发机制(责任链);

        10、Retrofit原理(动态代理、annotation解析);

        11、okhttp拦截器;

        12、Handler机制及同步屏障。

三、滴滴

        1、kotlin协程作用域【GlobalScope、CoroutineScope、SupervisorScope、runBlocking】区别及使用;

        2、LiveData怎么实现生命周期绑定;

        3、by lazy实现;

        4、优化:启动、包体积、卡顿、网络;

        5、webview白屏问题(js是否允许,dom开启、ssl错误允许,http/https混合允许),性能优化;

        6、concurrentHashmap对锁的优化;

        7、RecyclerView、EditText滑动冲突的解决;

        8、kotlin class是final的,可以通过open继承;

        9、aqs与cas,cas的缺陷及修补;

        10、flutter的局部刷新(父节点边界);

        11、算法题:两个栈实现一个队列。

题外话:

简历好好写,拉出几个关键点(有一点点难度的都可以)出来,切忌流水式,否则过初筛的几率都小。

性能优化方面好好准备,好几次问到都感觉没答好。因为这是一个很大的话题,中间很容易插出去。其次,也很容易被面试官或者自己带偏,导致回答不全。

个人优势备选:自定义控件、framework、音视频等(音视频有优势的就是很明显的优势了)。

个人优势最好提前准备一个,以及你遇到的问题也最好提前准备的。其实很多面试问题翻看下源码就知道原理了,但是可惜的是现在的面试都是闭卷,即使很简单也不会让你翻源码,所以该背还得背,这大概就是我辈程序员的一个悲剧吧。

有些问题其实都碰见过但是没有回答好,或者当时没有回答上来,这个只能靠自己积累了。

一定要注意一点:中高级对细节问的尤其多。

关于算法题:leetcode的剑指offer简单题必须会,中级题最好有所熟练,困难题可以直接放弃(这种基本都是不想要人的)。

最后:面试不等于技术水平,不必太过在意结果,但是一定要做好复盘,不要在重复的问题上翻船。

寄语初、中级Android Developer的一点心得:找工作千万别迁就,否则不仅进步缓慢,还会工资低(收入和付出不成正比)。创业公司和外包大部分都是坑,再怎么急也勿跳。没事备点钱,裁员随时会来,找好工作需要花更多的时间。没事的时候可以学习更多的技术,但是已经不推荐任何新手入坑Android了。中高级的炒点股吧,你会发现韭菜可能说的是人,也是中高级的一条退路,但不是最推荐的。其它废话以后有机会再说吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值