背景
真的,很多时候未来发生什么你都不知道!(预言家 =。=)。 我也不会预想到我工作快一年的部门因为公司架构调整而需要被迫考虑重新找工作。实际上,我非常喜欢当时部门的人,部门是小团队项目化作战,非常灵活,技术和产品自由度非常高,大家配合得很愉快。
虽然那时候大家分道扬镳,但我们现在的微信群依然保留着之前最完整的人员,还很活跃。 工作认识一知己,前辈,之前就业于UC,平时交流甚欢,喜欢同他讨论和交流技术问题,在看身上看到了开放与追求的精神。
蚂蚁金服的面试机会是那时候在看机会的时候,在脉脉认识的一位蚂蚁金服的面试官那里争取的。在沟通过后,对其部门的意愿挺大的,所以就尝试下把简历给了面试官。
过了几天,没想到收到了其部门HR的面试邀约。刚好那时候公司部门架构调整到了尾部,我们可能被合并到一个新的部门中开展新的工作。可能大学实习给我留下非常好的印象,很喜欢阿里的技术部门,所以就毅然进行面试
我的个人背景不详细多说,学历双非本科,不是应届生,工作年限不长,技术不是大牛,但也非小白,面经分享是想给正面试的同行一些建议和鼓励,希望能够多多支持。
阿里 社招一面
- 介绍自己
- 介绍简历上的项目
- 高性能列表实现,重点围绕 recyclerview 展开,如何复用,如何缓存
- 性能难点如何攻克
- 性能优化方面项目中做了哪些工作
- 热修复原理,类冷启动修复原理,类热修复原理,classLoader双亲机制
- 换肤原理
- 设计一个图片框架,我考虑的是如何加载,如何编解码,如何缓存,api的易用性,大部分参考 glide 思路在很多数中找出前n个最小
- 自己的方向是什么?想做业务,还是想做专点的技术,如何理解项目架构。
- 反提问:“自己技术性回答得怎样,有哪些改进。” 面试官给的建议是:技术还不错,但是介绍部门业务和自己的切合度时需要 “表述要简洁,逻辑要清晰”,
阿里 社招 leader 面
- 介绍自己情况,学android,实习经验
- 介绍项目经验,哪个项目最大,项目规模,项目人员分布
- 擅长哪一方面,这个问题非常致命,一定要选你足够理解的,我那时候讲的是性能优化,但是感觉讲的好
- android 虚拟机区别,编译区别,dex区别
- 热修复流程,原理是什么,业界有哪些方案,对比如何
- 打包流程是怎样的
- 应用启动相关流程,从孵化进程到MainActivity#onResume绘制整个流程
- 新版本android特性
- 手势滑动事件分发
- view绘制流程
- gradle执行流程
- apk安装底层细节
- 最后留了一道算法题,我做了两天之后发给面试官
阿里 社招 交叉面
- 介绍自己
- 项目经验,团队情况
- 对网络是否熟悉,一次http请求,https整体实现
- 以后想做什么,如何规划自己技术
- 开源贡献,博客记录相关的开放性问题
- 反问:后面是否还有技术面试,得到的答案是基本不会有了,等 HR 面试就好
阿里 社招 HR面
- 介绍自己
- 项目经验,团队情况,学习情况,薪资待遇
- 未来技术规划,是否考虑杭州,未来家庭规划
- 反问:大概多久会有答复,得到的答案是当周周五前。
当周周四收到了人生中第一个阿里的正式 offer,还是我最心仪的蚂蚁金服的技术部门的 offer。技术方向和薪资待遇都大大超过我的预期。这谁能知道当时我的心情是怎么样的。
我是如何备战阿里的?
能够入职阿里并不是我的运气有多好,在还没有入职阿里之前我基本上每天都在学习,因为只有不断的去学习才不会被淘汰,程序员学习是不能断的。
Android学习之路任重而道远,下面是我整理的最新的学习资料,希望能帮到想在Android这条路上一路走到黑的朋友。之前一直在CSDN学习,也算是对CSDN的一点回馈吧。需要的可以去文末领取
非技术性问题的面试准备(如简历)
作为面试官来说,简历真的很重要!!它是面试官对你的第一印象,所以简历的排版以及内容质量很关键。
关于简历的排版,我总结起来以下几点: 1.简历的格式一定要用 PDF !!; 2.个人信息、联系方式尽量的放在前面,简历排版需紧凑,不要太松散; 3.对于一些技术栈、关键词需加粗强调; 4.简历整体内容尽量控制在两页以内,语句需精简,切勿啰嗦;
对于简历模板,我也是准备了一套简历模板,需要的同学直接去文末领取。
主要复习点
?
1.Jetpack架构组件从入门到精通
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
?
2.Framework精编内核解析
主要内容包含:
- 深入解析Binder
- 深入解析Handler
- Dalvik VM 进程系统
- 深入解析 WMS
- PackagerManagerService
?
3.Kotlin强化实战(附Demo)
- 第一章 Kotlin入门教程
- 第二章 Kotlin 实战避坑指南
- 第三章 项目实战《Kotlin Jetpack 实战》
4.Android设计思想解读开源框架
- 热修复
- 插件化
- 组件化框架设计
- 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
5.NDK模块开发
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
6.高级Android组件化强化实战(附源码)
- 第一章 Android组件化初识
- 第二章 Android组件化初探目录
- 第三章 架构演化(大厂篇)
从智行 Android 项目看组件化架构实践 得到 App 微信 App 蘑菇街 App 爱奇艺 App 美团 App 携程App 支付宝 App
7.Android 开发相关源码精编解析
- 深入解析微信 MMKV 源码
- 深入解析阿里巴巴路由框架ARouter 源码
- 深入解析AsyncTask 源码(一款 Android 内置的异步任务执行库)
- 深入解析Volley 源码(一款 Google 推出的网络请求框架)
- 深入解析 Retrofit源码
- 深入解析OkHttp 源码
- 深入解析ButterKnife 源码
- 深入解析Okio源码(一套简洁高效的 I/O 库)
- 深入解析SharedPreferences源码
- 深入解析EventBus 源码
- Android 自定义注解初探
- View 的工作机制源码分析
- Android 触摸事件分发机制源码分析
- Android 按键事件分发机制源码分析
- 深入解析 Handler 源码
- 深入解析Binder源码
- 深入解析JNI源码
- 深入解析Glide源码
- RxJava原理及如何封装使用
- LeakCanary核心原理源码解析
- 插件化架构定义及插件化架构的实践思路分析
由于篇幅问题,详解资料太全面,细节内容太多。 另外,我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
我建立了一个编程资料共享学习Q裙:裙号是793544421。以上资料我都放在里面了,进群即可获得。【技术学习交流,广告勿入】,技术是有边界的,但是学习是无界的,加油。
?
|