Android高级、资深、技术专家 大厂面试题分享

题目来自19年3月移动端大厂面试题分享

我对面试题进行了简单整理

原文目录按照公司分类

我这里从技术模块类分类

这样大家就能针对性准备了。

我喜欢收集面试题,也喜欢查找答案,写对应的demo,这对于我来说,是工作之余,提升自我的一个大方向。

1.基础组件
1.对Activity启动流程的了解:AMS和ActivityThread涉及到的源码?
2. Fragment和Activity技术选型,两者如何通信。
3. Serivce是如何做到高优先级保活?

2.ANR及Handler相关
1.ANR的实现原理是什么,AMS中涉及ANR的代码有哪些?
2.handler-looper源码解读,如何保证在msg.postDelay情况下保证消息次序。

3.View类
1.对MeasureSpec的理解,如何实现一个瀑布流的自定义ViewGroup?
2.layout_gravity和gravity的区别。
3.ListView和RecyclerView区别是什么,两者如何技术选型。
4. TraceView的实现原理,分析数据误差来源。
5. TextView setText耗时的原因,对TextView绘制层源码的理解。
6. 是否使用过CordinateLayout,嵌套滚动是如何实现的?

4.性能优化类
1.内存优化做了哪些工作,LeakCannary实现细节。

5.IPC
1.对Binder实现原理的理解。
2.使用过哪些多进程编程场景?AIDL的使用和原理。
3 .Android中有哪些跨线程通信方式,区别是什么?

6.第三方框架类
1.对Flutter框架和实现原理的理解。
2.leakCannary原理,如何判断一个对象是否被回收?如何触发手动gc?
3.Flutter框架和实现原理。
4.对ReactNative实现原理的了解。
5.对Flutter的原理了解,如何实现多Native页面接入。
6. 对Glide源码的了解,如何管理bitmap cache的,cache共有几级?
7. ReactNative实现原理,RN列表优化方案。
8. OKhttp针对网络层有哪些优化?
9. 实现对现有工程的flutter迁移。


7.Java多线程和Java基础
1.对Java多线程的理解,Sychronize修饰类和对象的区别?
2. 线程和进程的区别,什么时候使用多线程和多进程?
3. 对线程池的理解。
4. AsyncTask有哪些使用局限性,是如何使用自定义线程池的?
5. 如何实现进程安全写文件?

8.手写类和数据结构
1.手写一个单例算法的实现。
2.算法:实现一个o(n)复杂度的堆和最大数。
3.开放性问题:如何设计垃圾回收算法?
4.如何实现懒汉单例模式?口述代码实现。
5.笔试题:实现一个数组的窗口扫描算法。
6. HashMap的实现原理,如何解决哈希冲突?
7. 算法题:识别一个字符串是否是ipv4地址。
8. 算法:o(n)复杂度实现偶数递增奇数递减单向链接排序。
9. 算法:单向链表逆序。
10. 算法:实现一个数组插入。(处理异常判别,不使用Collections相关接口)。
11. 算法题:找到多个员工的共同繁忙时段
12. 算法题:找到无序数组的最大连续求和。
13. 如何不依赖框架实现一个数据库column的数据类型改造?

9.虚拟机类
1.ART和Davilk虚拟机的区别是什么?
2.ART和Davlik垃圾回收区别;

10.解决方案类
1.如何实现工程的组件化解耦?
2.Android中的注解有哪几种,分别用来做什么?
3.了解或使用过哪些编译插桩方案,原理和优缺点是什么?
4.插件化和热修复的主流方案有哪些?
5.分别如何对java代码和资源实现热修复?
6.设计一个网络优化方案,针对移动端弱网环境。
7.设计一个性能优化方案。
8. 内存优化使用过哪些方案,取得过哪些效果,衡量指标如何确定?
9. app性能检测手段有哪些?
10. git实现原理是什么,如何搭建git server?
11. git merge和git rebase的区别?git 哈希算法的原理。
12. 如何实现对一个方法执行耗时无痕埋点?
13. RPC和RESTful 的区别,项目中用的是哪种?
14. 设计一个针对移动端弱网优化项目。
15. Android工程的编译流程。
16. 做过哪些性能优化项目,说说实现细节。
17. 如何实现app的卡顿监控,线下和线上;比较这几种方法的优劣。
18. 了解哪些编译插桩技术,聊聊使用细节。
19. Android中有哪些IPC方式,Binder的优势和实现原理什么?
20. 对文件描述符怎么理解?
21. Android中有哪些文件存储方式。
22. 做过哪些流量优化方案?
23. gradle中flavorDimensions的含义,在什么场景下使用过?
24. Android中使用过哪些持久化存储,各自的使用场景是什么?
25. 对Android编译发布流程的了解。

11.源码类
1.Android/Java中的Classloader有哪些,区别是什么?
2. 是否使用过SysTrace,原理的了解。
3. 对inBitmap的理解。
4. 描述AM-AMS binder通信流程。

12.额外加分项
1.最有成就的项目是什么?
2.该项目如何向外输出?
3. 项目细节,有什么设计缺陷和改进方案。
4. 你最优秀的工程设计项目,是怎么设计和实现的;扩展,如何做成一个平台级产品?
5. 技术价值观。
6. 运营项目设计思路,有什么缺陷和改造建议。
7. 这个项目的设计优势,对高内聚低耦合的理解?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值