写点什么

Android 性能优化之启动优化实战篇!架构师必备技能

发布于: 2021 年 04 月 03 日

简介

Jetpack 是一套库、工具和指南,可以帮助开发者更轻松地编写优质应用。这些组件可以帮助开发者遵循最佳做法、让开发者摆脱编写样板代码的工作并简化复杂任务,以便开发者将精力集中放在所需的代码上

正文

面试总共花费 30 天左右,才拿到了 offer。

一面

1.自我介绍 2.项目 3.四大组件 4.activity 生命周期 5.启动模式 6.线程状态 7.网络协议(每一层、还有 TCP 和 UDP)8.会不会网络编程 9.handler10.JVM,内存模型那些 11.GC(有哪些方法那种问题)12.项目中的数据库 13.HashMap、HashTable、ConcurrentHashMap14.反问环节

二面

视频面试。这一面依旧是初试,应该是交叉面?


1.自我介绍 2.项目(这里花了好多时间 emm,他会根据我项目一路提问)3.算法题:字符串根据字典分割的问题。一开始给的解决方法时间复杂度太高,一直要求优化。还有一题我忘了……4.TCP 和 UDP 以及应用场景 5.JAVA 与 JS(为什么都喜欢问这个?)6.其他忘了……也是挺基础的 7.反问这一轮面试很发散,主要还是针对项目进行讨论,问的问题挺有针对性的(主要是项目)。

三面

1.mmap + native 日志优化?2.广播和 EventBus 的区别?3.常用设计模式你了解哪些?4.跨进程通信有哪些?5.简单讲讲 binder 驱动吧?6.跨进程传递大内存数据如何做?7.说说 ConcurrentHashMap 的实现原理说下,初始化大小是多少?8.启动优化怎么优化?9.你写的 rxpay 和 rxlogin 具体怎么实现的?10.kotlin + fullter 方面的

四面

1.单例设计模式都写写,静态内部类是怎么保证线程安全的?2.synchronized 底层实现原理,ReentrantLock 公平锁与非公平锁。3.主线程等待所有线程执行完毕,再执行某个特定任务怎么实现?原理和源码看过没?4.自定义 view 的一般流程,要注意些什么如何优化,点击事件和长按时间分别是怎么实现的?5.四种启动模式,在源码分析中的原理是怎样的?6.讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?7.开发中你都用到了哪些设计模式?说说当时具体的场景。为什么你要用方法工厂,另外两种呢?8.RxJava 在使用过程中碰到了某些不友好的错误一般怎么解决?发现了内存泄露一般怎么解决分析,有没有碰到过系统服务内存泄露的问题?9.你们用的 okhttp ?那你有没有做过一些网络优化呢?比如弱网环境。10.给你个数 1 吧,比如 1000011 里面有几个 1 ?11.快排了解不?最坏的情况是怎样?如果有大量重复数据怎么优化?

五面

1.讲讲 handler 的底层实现原理?2.说说你做的日志记录优化?3.你看过 binder 驱动的源码,说说他的内存映射过程,说说客户端等待服务端处理返回的流程,如果要跨进程传递大内存数据你具体会怎么做?简单写一写吧。4.在公司做过哪些优化?5.过程中遇到的一些最难解决的问题?6.提到了动态修复替换加载 so ,那你知道怎么修复 class 吗?怎么修复资源呢?7.还有什么要问的?

六面(HR 面)

1.项目 2.薪资 3.反问环节

Android 高级架构师

由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习 PDF 文件、面试文档、源码笔记做整理一份资料。


需要的朋友我可以分享给你,希望里面的资料可以给你们一个更好的学习参考。


直接点击下面链接免费获取


Android学习PDF+架构视频+面试文档+源码笔记


  • 330 页 PDF Android 学习核心笔记(内含上面 8 大板块)




  • Android 学习的系统对应视频



  • Android 进阶的系统对应学习资料



  • Android BAT 部分大厂面试题(有解析)



好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。

用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
Android性能优化之启动优化实战篇!架构师必备技能