前言
在博主认为,对于Android面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,刷题只是次之,这又是一个层次了,这里暂时不提后面再谈。
博主总结了一系列大厂面试中常问的面试技术点,深入解析以及答案,将为最近准备面试的各开发者去大厂保驾护航,
何谓面试? 博主所理解的面试,它是一个过程,是不断沉淀、不断总结、善于传达自己的专业领域技术以及解决问题能力的过程。以下是博主总结的一些面试题,文中如有错误,恳请批评指正!
第一阶段:Android 基础知识回顾:
- 回顾Android 开发编程,深入理解Android系统原理和层次结构,深入分析Handler源码和原理;
- 回顾Java,C/C++,Kotlin、dart 在Android开发中必用的语言,熟悉一下几种语言混淆后的特性;
- 回顾Android IPC和JNI的底层原理和热更新技术回顾Native开发要点,使用C++结合NDK完成Android Native开发;
- 回顾Android开发中常用的 AMS、PMS、WMS原理和App启动中服务加载的流程;
- 回顾Android开发中必用的 Google的MVVM框架:DataBinding+LiveData+ViewModel;
- 回顾Android开发中必用的 Google的MVP框架:Dagger2;
- 回顾Android开发必用的网络架构:Okhttp3+RxJava2+Retrofit2+Rxdownload4+Rxcache+Glide;
Android 逆向基础知识:
- 熟悉Android逆向工具的使用,如apktool,IDA,dex2jar,JEB,Androidkiller,Androguard等;
- 深入分析APK中包含的各文件格式,分析Android系统源码中解析APK的相关代码;学习和熟悉smali语言(重点);
- 仿微信写一个APP,并利用工具逆向出apk内的代码,并对比源码分析。 </