ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

安卓开发基础面试题,带着问题深入学习Handler

2021-07-11 07:02:24  阅读:158  来源: 互联网

标签:面试题 BC% 安卓 理解 E4% Handler 原理 Android android


# 初级 我对初级研发攻城狮的定义是掌握基础的 android 知识,能够独立完成一个功能。这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。 **需要的技能有:** 1. 掌握android 四大组件知识,深入了解相关生命周期;对于Application、Fragment、Intent也必须掌握。 2. 掌握android 基本布局和控件的属性和使用,常用布局有LinearLayout\RelativeLayout\ConstraintLayout等,控件有TextView\ImageView\RecyclerView\ScrollView等。 3. 对android的资源访问使用有基本了解,了解android针对不同国家、语言、屏幕、API的适配原理。 4. 掌握android系统服务和工具类的使用,对网络访问和数据库操作有基本认知。 5. 熟练掌握研发工具,如IDE、模拟器、网络代理、日志等。 # 中级 而到达中级就需要付出一些努力了,需要了解更多知识,可以仿照开源库去造轮子练习。中级工程师要能够熟练完成功能研发。 **需要的技能有:** 1. 熟悉SOLID基础设计原则,掌握23种设计模式。 2. 对于研发语言特性java/kotlin有深入理解,如反射、动态代理、apt等。 3. 对android架构有基础了解,对apk结构和打包原理有深入了解。 4. 对于android各个版本特性有基本了解,如MD设计、权限管理、doze模式等。 5. 熟练掌握各种研发调试工具,如git、gradle、mat、layout inspector等。6\. 掌握Handler\AsyncTask原理,熟悉多线程开发。 6. 对绘页面制原理有初步理解,能够实现一个复杂自定义控件。 7. 能够熟练掌握开源库的使用,如图片库(Glide\Fresco)、网络库(Volley\okhttp\Retrofit)、工具(Dagger\RxJava\EventBus)等。 8. 熟悉图片优化常用方法,避免编写内存泄漏的代码。 ![](http://www.icode9.com/i/li/?n=2&i=images/20210711/1625957528994189.jpg) # 高级 如果到达中级,那么恭喜你已经可以应付大部分情况了。但要能更进一步,就需要深入理解android系统的运行原理,达到融会贯通,可以作为 android 端上的架构师。 1. 掌握java高级特性,如JUC、线程池、NIO\BIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。 2. 对android运行环境有深入理解,理解android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。 3. 掌握热修复原理,各大厂商方案的优缺点。 4. 对于android事件分发有深入理解,重点掌握触摸事件机制。 5. 深入理解android绘制原理,理解VSYNC和surface机制和窗口原理。 6. 深入理解android动画原理,包括补间动画和属性动画。 7. 对于android安全机制有基本认知,理解android安全原理。 8. 深入理解端上设计范式思想,如mvc\mvp\mvvm\clean-arch等。 9. 理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。 10. 对新技术敏感,理解掌握下一代架构dynamic feature等。 至此,android 端研发你已经炉火纯青,能够面对各种情况,达到泰山崩于前而色不变的境界。如果还想继续前进,就需要突破技术栈,从更高架构层次考虑问题。 # 资深 而到了资深层次,技术栈已经不再是阻碍。能够从更高层面看待问题,理解整个系统的设计,作为系统架构师的角色存在。 1. 理解微服务、SOA思想,对于后端开发有一定涉猎。 2. 了解前端研发工具和思想,知道vue react等研发框架。 3. 深入理解跨端技术,如phonegap、weex/RN flutter、小程序快应用等。 ### 最后说一下我的学习路线 **其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:** 1. **架构师筑基必备技能** 2. **Android框架体系架构(高级UI+FrameWork源码)** 3. **360°Androidapp全方位性能调优** 4. **设计思想解读开源框架** 5. **NDK模块开发** 6. **移动架构师专题项目实战环节** 7. **移动架构师不可不学习微信小程序** 8. **混合开发的flutter** ![](http://www.icode9.com/i/li/?n=2&i=images/20210711/1625957528134045.jpg) **Android学习的资料** 我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。需要的小伙伴可以私信我【进阶】我免费分享给大家,或者直接点击下面链接领取,谢谢大家这么久以来的支持。 [Android学习PDF+架构视频+面试文档+源码笔记](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md) 如果你有其他需要的话,也可以在GitHub上查看,下面的资料也会陆续上传到Github **330页PDF Android学习核心笔记(内含上面8大板块)** ![](http://www.icode9.com/i/li/?n=2&i=images/20210711/1625957528861009.jpg) **Android学习的系统对应视频** ![](http://www.icode9.com/i/li/?n=2&i=images/20210711/1625957528445256.jpg) # 总结 我希望通过我自己的学习方法来帮助大家去提升技术: * 1、多看书、看源码和做项目,平时多种总结 * 2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理 * 3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习 * 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧! **[进阶学习资料领取方式:GitHub](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)** > 希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!

标签:面试题,BC%,安卓,理解,E4%,Handler,原理,Android,android
来源: https://blog.51cto.com/u_15299334/3035160

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有