写点什么

初级开发:我还在 Android 路上披荆斩棘,转眼就被大厂的程序员凡尔赛了

用户头像
Android架构
关注
发布于: 17 小时前

解决加载图片的 OOM 应该先选择 Picasso、Glide、Fresco 等框架以尽快解决工作中的问题,然后利用个人时间学习 Android 缓存机制——LruCache 和 DiskLruCache;地图、视频的 OOM 应该在界面被回收时清除控件、停止服务;其他的 OOM 应该用弱引用和软引用解决。


RecyclerView


Android 最常用也是最复杂的控件是 RecyclerView(2014 及以前的资料是 ListView),因为滑动冲突、列表中


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


数据修改等问题都会在 RecyclerView 中体现。为了克服这些瓶颈,必须要搞清楚 RecyclerView.Adapter(也包括以前的 BaseAdapter)的工作原理,ViewHolder 的工作原理,以及 ViewGroup 的事件分发机制等内容,这些内容不下大力气学习是不能完全掌握的。


克服了以上瓶颈后,估计实习生也该到了毕业转正的时间了,进阶路上还有新的瓶颈。新瓶颈有新的玩法:这种玩法需要双手操作,如果用另一只手按住打开着的瓶口撸瓶颈,你可以一边撸一边使劲摇,玩 HIGH 的时候突然松开按住瓶口的手。


自定义控件


Android 自带的控件不能满足太复杂的界面控件需求,因此绘制自定义控件也是 Android 工程师的必备技能。绘制自定义控件需要掌握 View 的几个常见方法的重写,如 onDraw()、onMeasure()、onLayout()等;对事件分发机制的了解也应该比 RecyclerView 更精熟;此外还需要掌握 Canvas 和 Animator 的相关知识,Android 的 Canvas 和 HTML5 的 Canvas 有很多相似性,可以以此突破 Canvas 的学习瓶颈。


进程间通信


不同 App 之间以及同一个 App 的不同进程之间需要多进程通信,多进程通信在视频播放等占用大量资源的场合是很有必要的。进程间通信的初学者百度“多进程”会被 AIDL 绕得云里雾里,其实你只要试试 Messenger 框架,一切进程间通信的难题都会迎刃而解。


Android 性能全面优化和 crash 分析


Android 初学者会遇到的最后一个瓶颈是 Android 性能全面优化。前面提到的 Android 内存优化是 Android 性能优化中最重要的部分,但也只是一小部分,Android 性能优化还包括安装包体量优化、GUI 绘制优化、电量和流量优化等。


GUI 方面可以利用 ViewStub 和去掉其他不必要的背景来避免 OverDraw;安装包体积可以用压缩图片、去除重复且无用的依赖等方式进行优化;电量和流量可以通过用推送代替轮询、用 GZIP 文件格式下载过长的数据流等方式进行优化。


在移动应用性能方面,崩溃(Crash)带来的影响是最为严重的,Crash 指 App 在运行过程中出现大段用户正在进行的操作的强制关闭现象。Crash 会造成关键业务中断、产品口碑变差、用户流失等问题。Crash 可以用 UncaughtExceptionHandler 捕捉,也可以利用 UMeng 和 Bugly 等服务分析,请注意:如果打算跳槽到阿里,就用 UMeng,想要跳槽到腾讯,就用 Bugly。


突破了上述所有瓶颈以后,Android 程序员的技术水平都可以达到独当一面的程度,甩掉了初学者帽子的程序员会发现头顶不再是瓶颈,而是从技术到管理的天花板。


Android 进阶学习路上的技能储备


很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我针对 Android 程序员,我这边给大家整理了一套学习宝典


  • Android 学习路线图


首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!



  • 模块化学习资源


接下来是每个模块我整理出来的文档学习资料,帮助大家更细致化的学习。


《Android 汇总复习资料—Java》



《Android 汇总复习资料—Android》



《Android 汇总复习资料—Android 扩展》



《Android 汇总复习资料—Kotlin》



《Android 汇总复习资料—Flutter》



《Android 汇总复习资料—算法》



除了上面的学习路线,还可以额外的配合以下方式学习,效果翻倍~

Android 进阶学习

①看视频进行系统学习


前几年的 Crud 经历,让我明白自己真的算是菜鸡中的战斗机,也正因为 Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去 B 站进行学习,B 站上有很多学习视频,唯一的缺点就是免费的容易过时。


另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。


②读源码,看实战笔记,学习大神思路


“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。


主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。



③面试前夕,刷题冲刺


面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。


关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:



④2020 大厂面试高频知识点


  • 图片

  • 网络和安全机制

  • 数据库

  • 插件化、模块化、组件化、热修复、增量更新、Gradle

  • 架构设计和设计模式

  • 性能优化

  • Android Framework

  • Android 优秀三方库源码



用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
初级开发:我还在Android路上披荆斩棘,转眼就被大厂的程序员凡尔赛了