前言

这一年,是动荡的一年,但也是逆风翻盘的一年。一颗种子要想成长为苍天大树,必须具备坚韧不拔的意志,这一点比学习本身更加重要。下面,我们就来回顾一下我的2020年主要做了哪些事情。

一、回顾我的2020年

第一季度(1-3月):

1、深入学习Android性能优化 & 开源 Awesome-Android-Performance

众所周知,性能优化是Android细分领域中最难且也是知识面涉及最深和最广的方向之一,但是如果你想要成为一名顶尖的Android工程师,性能优化细分领域则是非常好的实战与理论结合的场所。因此,为了将性能优化涉及的各个层面的知识成体系地融合到一起,笔者创建了Awesome-Android-Performance这个项目,希望能带领读者从Android系统架构中的应用层、Framework层、Native层、ART/Dalvik甚至Linux内核层这一垂直领域去深入探索与挖掘性能优化的极致技术。目前,除了IO优化与存储优化之前,其它的性能优化文章均已发布,内容如下:

一、稳定性优化

深入探索Android稳定性优化(已完成)

Android稳定性优化是一个需要长期投入,持续运营和维护的一个过程,上文中我们不仅深入探讨了Java Crash、Native Crash和ANR的解决流程及方案,还分析了其内部实现原理和监控流程。到这里,可以看到,要想做好稳定性优化,我们必须对虚拟机运行、Linux信号处理和内存分配有一定程度的了解,只有深入了解这些底层知识,我们才能比别人设计出更好的稳定性优化方案。

二、启动速度优化

深入探索Android启动优化(已完成)

想要极致地提升App的启动速度,我们需要有一定的广度,在文中引入了始于后端的AOP编程来实现无侵入式的函数插桩,也需要有一定的深度,从里面的探索之旅来看,我们先后涉及了Framework层、Native层、Dalvik虚拟机、甚至是Linux IO和文件系统相关的原理

三、内存优化

Android性能优化之内存优化(已完成)

内存优化可以说是性能优化中最重要的优化点之一,可以说,如果你没有掌握系统的内存优化方案,就不能说你对Android的性能优化有过多的研究与探索。

深入探索Android内存优化(已完成)

真正的将内存优化做到极致,还不点击去一探究竟?

四、绘制优化

Android性能优化之绘制优化(已完成)

首先,让我们从全局的角度去认识绘制优化,并为其打下良好的优化基础。

深入探索Android布局优化(上)(已完成)

深入探索Android布局优化(下)(已完成)

布局优化看似是Android性能优化中最简单的专项优化项,但是笔者却花费了整整三万字的篇幅才能比较完整地将其核心知识传授给大家。因此,不要小看每一个专项优化点,深入进去,必定满载而归。

深入探索Android卡顿优化(上)(已完成)

深入探索Android卡顿优化(下)(已完成)

卡顿优化可以说是Android性能优化中最复杂的环节,笔者从卡顿优化分析方法与工具、自动化卡顿检测方案及优化、ANR分析与实战、卡顿单点问题检测方案、界面秒开、优雅监控耗时盲区等多个维度来展开对App的卡顿优化进行深入讲解,相信读者必定有所收获。

五、包体积优化

深入探索Android包体积优化(已完成)

如果要想对包体积做更深入的优化,我们就必须对 APK 组成,Dex、So 动态库以及 Resource 文件格式,还有 APK 的编译流程 有深入地了解,这样我们才能有 足够的内功素养 去实现包体积的深度优化,而此文将会带我们深入其中。

六、网络优化

《深入探索 Android 网络优化(一、网络核心筑基篇)》(已完成)

《深入探索 Android 网络优化(二、网络优化筑基篇) 》(已完成)

《深入探索 Android 网络优化(三、网络优化篇) 》(已完成)

网络优化一直被认为是移动优化水最深的领域之一,因此,我们有必要对其进行深入学习。

七、耗电优化

深入探索 Android 耗电优化(已完成)

在 Android 应用开发中,我们需要考虑如何优化电量使用,让我们的 App 不会因为电量消耗过高被用户排斥,或者被其他安全应用报告,以此确保用户黏性。因此,电量优化也是需要去考虑的。

第二季度(4-6月):

1、深入探索编译插桩与 Gradle 自动化构建技术技术

现如今,Gradle + 编译插桩 的应用场景越来越多,无论是 各种性能优化中的插件工具制作,还是用来支持 插件化、热修复的各种插件,都会使用到这个组合,因此,掌握 Gradle + 编译插桩 技术能够大大提升我们的技术竞争力。内容如下:

编译插桩技术

深入探索编译插桩技术(一、编译基础)(已完成)

深入探索编译插桩技术(二、AspectJ)(已完成)

深入探索编译插桩技术(三、Class字节码)(已完成)

深入探索编译插桩技术(四、ASM)(已完成)

Gradle自动化构建

深入探索 Gradle 自动化构建技术(一、配置篇)(已完成)

深入探索 Gradle 自动化构建技术(二、Groovy 筑基篇)(已完成)

深入探索 Gradle 自动化构建技术(三、Gradle 核心解密)(已完成)

深入探索 Gradle 自动化构建技术(四、自定义 Gradle 插件)(已完成)

深入探索 Gradle 自动化构建技术(五、Gradle 核心源码剖析)(已完成)

深入探索 Gradle 自动化构建技术(六、Gradle 插件开发平台化框架 ByteX 解密)(已完成)

第三季度(7-9月):

1、算法地图构建 & 开源 Awesome-Algorithm-Study

这是一份从零构建算法核心知识的地图,它是以算法面试为根基而打造而成,里面涉及到的都是非常高频的算法面试题。因为算法非常重要,所以从今年7月份开始,我就开始系统从0开始学习了数据结构和算法,具体的学习路径如下:

在系统学习算法的过程中,我逐步构建出了我的算法地图,内容简要如下:

2、计算机基础巩固路线

主要基于《编程必备基础 计算机组成原理+操作系统+计算机网络》系统学习了组成原理、操作系统、网络等核心的计算机基础知识,这对加深我们的内功是非常有帮助的。

3、NDK入门

NDK是深入Android必备的一项技术,因此,我开始了NDK的学习,主要完成的学习内容如下:

  • 1、C基础复习。
  • 2、C++基础复习。
  • 3、JNI、编译原理与语法、Linux基础系统学习。
  • 4、了解如何实现增量更新、高效加载Gif图、MMKV组件。

第四季度(10-12月):

1、深入学习和实践组件化、插件化、热修复技术

为了提升架构能力与加深对Android Framework层的理解,那么学习组件化、插件化、热修复技术是必不可少的。这里我就简单聊一聊如何去学习它们。对于组件化来说,关键点就在于掌握如何进行组件化重构,并深入了解如何进行跨组件通信。对于插件化来说,这里有一些问题我们可以去思考一下:

  • 如何规避 Android P 对访问私有 API 的限制?
  • 如何进行插件化重构?
  • 插件化的原理:如何动态加载类?四大组件如何实现插件化?资源如何插件化?So如何插件化?对目前各个热门插件化框架实现的了解?(例如VirtualApk、Replugin、Shadow)
  • 对插件化这一整套技术的理解?

对于热修复来说,我们可以先自己手写一个简单的热更新框架,然后再去深入学习某一个热修复框架的使用和实现,例如Tinker。对于热修复的原理来说,也同样包括代码修复、资源修复、So的修复,这些我们都应该去深入了解。

2、Android Framework层深入学习

主要基于 剖析Framework面试 冲击Android高级职位 课程 将Framework的设计思想与实现细节、总体流程融合起来,追求真正的融会贯通。

3、知识体系系统复习

故而知新,可以为师矣。学习不是看你学了多少,而是看你真正掌握了多少,一味地追求学习的速度反而会让我们掉入一个黑洞:花费了大量的时间学习,但是真正理解的东西却很少。这让我想起了在读书时代的一位朋友,他非常努力,一天到晚都在学习。有时他甚至在就寝灯熄灭之后还约我一起去厕所看书(因为厕所有灯),但是我坚持了两天就不行了。由于他的努力,我一直以为他未来的成就不可限量,但是我和他偶然的一次联系才知道事情并非如此。为什么努力却得不到好的结果?可能最核心的问题就在于我们没能真正地把知识融会贯通,如何融合贯通?唯有不断的练习与复习,请无论如何都要记住:学会只是第一步,真正的掌握需要很多次的重复练习,这样你第一步的努力才不会白费。因此,从11月份开始,我就开始系统整理与复习当前我所掌握的知识,并将它转化了为思维导图的形式,如下所示:

计算机基础

编程语言

Android基础

稳定性优化

基础架构

Framework

NDK

二、展望我的2021年

随着对性能优化与基础架构技术的研究逐渐深入,我发现目前所处的环境很难提供一个足够体量的APP去让我深入实践。因此,由于不确定性较大,下面我就简要列一下明年的主要目标:

  • 1、能够有机会去开发、优化一个复杂的APP
  • 2、以实践为主,继续深入性能优化领域的学习
  • 3、每天坚持练习算法,以培养开阔的算法思维
  • 4、能够有机会深入学习Flutter,甚至造一些Flutter的轮子
  • 5、继续深入学习Framework,以加深对Framework层的理解
  • 6、能够有机会深入实践Google的JetPack组件

三、总结

这一年,我的确做出了一些努力,也得到了一些收获与掌声。但仅仅靠单纯的努力是不够的,学会如何学习(温故而知新非常重要),学会如何管控好自己的精力与时间,也许会让我们的努力更加高效,从而让我们的内心更加充实。2021年,我们一起加油,希望这是一场真正的蜕变!

Contact Me

现如今,Android 行业人才已逐渐饱和化,但高级人才依旧很稀缺,我们经常遇到的情况是,100份简历里只有2、3个比较合适的候选人,大部分的人都是疲于业务,没有花时间来好好学习,或是完全不知道学什么来提高自己的技术。对于 Android 开发者来说,尽早建立起一个完整的 Android 知识框架,了解目前大厂高频出现的常考知识点,掌握面试技巧,是一件非常需要重视的事情。

去年,为了进入一线大厂去做更有挑战的事情,拿到更高的薪资,我提前准备了半年的时间,沉淀了一份 「两年磨一剑」 的体系化精品面试题,而后的半年,我都在不断地进行面试,总共面试了二三十家公司,每一场面试完之后,我都将对应的面试题和详细的答案进行了系统化的总结,并更新到了我的面试项目里,现在,在每一个模块之下,我都已经精心整理出了 超高频和高频的常考 知识点。

在我近一年的大厂实战面试复盘中逐渐对原本的内容进行了大幅度的优化,并且新增了很多新的内容。它可以说是一线互联网大厂的面试精华总结,同时后续还会包含如何写简历和面试技巧的内容,能够帮你省时省力地准备面试,大大降低找到一个好工作的难度。

这份面试项目不同于我 Github 上的 Awesome-Android-Interview 面试项目:https://github.com/JsonChao/Awesome-Android-Interview,Awesome-Android-Interview 已经在 2 年前(2020年 10 月停止更新),内容稍显陈旧,里面也有不少点表述不严谨,总体含金量较低。而我今天要分享的这份面试题库,是我在这两年持续总结、细化、沉淀出来的体系化精品面试题,里面很多的核心题答案在面试的压力下,经过了反复的校正与升华,含金量极高。

在分享之前,有一点要注意的是,一定不要将资料泄露出去!细想一下就明白了:

1、如果暴露出去,拿到手的人比你更快掌握,更早进入大厂,拿到高薪,你进大厂的机会就会变小,毕竟现在好公司就那么多,一个萝卜一个坑。

2、两年前我公开分享的简陋版 Awesome-Android-Interview 面试题库现在还在被各个培训机构当做引流资料,加大了现在 Android 内卷。。

所以,这一点一定要切记。

现在,我已经在我的成长社群里修订好了 《体系化高频核心 Android 面试题库》 中的 ”计算机基础高频核心面试题“ 和 ”Java 和 kotlin 高频核心面试题“ 部分,后续还会为你带来我核心题库中的:

  • “Android基础 高频核心面试题”
  • “基础架构 高频核心面试题”
  • “跨平台 高频核心面试题”
  • “性能优化 高频核心面试题”
  • ”Framework 高频核心面试题“
  • ”NDK 高频核心面试题“

获取方法:点击此处查看。

出身普通的人,如何真正改变命运?

这是我过去五、六年一直研究的命题。首先,是为自己研究,因为我是从小城镇出来的,通过持续不断地逆袭立足深圳。越是出身普通的人,就越需要有耐心,去进行系统性地全面提升,这方面,我有非常丰富的实践经验和方法论。因此,我开启了 “JsonChao” 的成长社群,希望和你一起完成系统性地蜕变。

星球目前有哪些服务?

  • 每周会提供一份让 个人增值,避免踩坑 的硬干货
  • 每日以文字或语音的形式分享我个人学习和实践中的 思考精华或复盘记录
  • 提供 每月 三 次成长、技术或面试指导的咨询服务。
  • 更多服务正在研发中...

超哥的知识星球适合谁?

  • 如果你希望持续提升自己,获得更高的薪资或是想加入大厂,那么超哥的知识星球会对你有很大的帮助。
  • 如果你既努力,又焦虑,特别适合加入超哥的知识星球,因为我经历过同样的阶段,而且最后找到了走出焦虑,靠近梦想的地方。
  • 如果你希望改变自己的生活状态,欢迎加入超哥的知识星球,和我一起每日迭代,持续精进。

星球如何定价?

365元每年

每天一元,给自己的成长持续加油

JsonChao 的 2020 年终总结相关推荐

  1. DayDayUp:2019.12.30吴晓波2020年终秀演讲《预见2020:来海边,拾起信心》读后有感

    DayDayUp:2019.12.30吴晓波2020年终秀演讲<预见2020:来海边,拾起信心>读后有感 导读:2019年,过的好不好?有人豪情万丈,有人强颜欢笑. 互联网平台带来了方便快 ...

  2. 2020年终总结和展望

    文章目录 前言 一.2020年终总结 二.2021年展望 前言 2020年马上过去了,现在对2020年做一个简单的年终总结,然后对2021年做一个简单的展望. 一.2020年终总结 2020年是不平凡 ...

  3. 2020年终总结——卖公众号赚第一桶金后的心痛

    2020年终总结--卖公众号赚第一桶金后的心痛 2020年好难呀! 2020年好快呀! 这一年,我们努力过,我们拼搏过: 这一年,我们有欢笑,也有泪水. 这一年,我们大学生在学校少待了一学期,导致大三 ...

  4. 2020年终总结 - 灾难之年,砥砺前行

    2020年终总结 - 灾难之年,砥砺前行 ​

  5. 来自过气科技网红的2020年终总结

    今年过得很快,转眼又到了年终总结的时候了.今年是我写科技类文章的第8个年头,很有意思的是,之前在学生时代做过的很多能挣钱的创业项目都没坚持下来,写文章这件事却坚持下来了.虽然现在我的文章可能没法像以前 ...

  6. 2020 年终总结:变化 积累

    这是「进击的Coder」的第 32 篇个人随想 作者:崔庆才 之前写年终总结都是在每年正月,今年也不例外了. 2020 年,对每个人来说都是特殊的一年,突入其来的新冠疫情给大家的生活带来了很大的变化, ...

  7. 我的2020年终总结:新的角色,新的开始

    [年终总结]| 作者/Edison Zhou 又到了一年一度的年终盘点时刻,熟悉我的朋友应该都知道,这个时候我都会写一篇推文盘点一下这一年来的得失. 1也谈2020 关键事件回顾 (1)扯证了,结婚了 ...

  8. 2020年终回顾:时间会回答成长,成长会回答梦想

    前言 2020年是脚踏实地,慢慢成长的一年,由于疫情的缘故,今年社区没有像去年一样举办多场线下活动,不过 .NET CONF CHINA 大会昨天也在苏州顺利召开,回顾这一年,也有不少惊喜与感悟 20 ...

  9. niceyoo的2020年终总结-2021年Flag

    碎碎念,向本命年说再见! 又到了一年一度立 Flag 的时间了,怎么样,去年的 Flag 大家实现的怎么样?还有信心立下 2021 年的 Flag 吗~ 今年我算比较背的,年初的一次小意外,直接在床上 ...

最新文章

  1. python 带随机指针的链表深度复制_LeetCode:复制带随机指针的链表
  2. (翻译) MongoDB(7) 安装MongoDB
  3. Summary of GATT Profile Attribute Types
  4. tos win10打开ip_win 10 系统 Docker 的安装和使用
  5. PUCCH Format
  6. 手机在线测试黄疸软件,在家怎么用手机测黄疸
  7. VGA、DVI、HDMI区别
  8. javascript中使用 闭包重载函数,记录日志功能
  9. sublime cscope使用方法
  10. 攀枝花a货翡翠,晋城a货翡翠
  11. iphone NSTimer
  12. BCD码干什么用的?
  13. js 转化为实体符_js字符实体 转义字符串
  14. zz:Android APP Monkey信息自动收集脚本
  15. 公开我的信息过滤器!
  16. CSGO 制作cfg文件及一些常用命令
  17. C#将秒转换为 时分秒
  18. SciPy稀疏矩阵类 scipy.sparse(持续更新ing...)
  19. android 加速度计算公式,android – 使用加速度计计算旋转矩阵
  20. 《学Unity的猫》——第十八集:Unity3D游戏开发工程师笔试刷题,皮皮收到面试邀请

热门文章

  1. kubernetes-dashboard登录出现forbidden 403
  2. 2021年5月5日大学化学无机原理(11)—氧化还原反应,原电池,电极电势,能斯特方程。
  3. 利用 FFmpeg 和 ImageMagick, AVI 转 GIF(不失真)
  4. 激活函数与损失函数及其常见问题
  5. 文字到底应该如何雕琢
  6. tags文件生成及使用
  7. 计算机cpu风扇不转怎么办,CPU风扇不转但是能开机,电脑风扇不转了怎么修理
  8. r语言各形状编号_R语言的基本图形操作
  9. 序列处理的深度学习框架——从RNN到Transformer
  10. 看富士康跳楼事件与风水神棍们