2020 一切的结束 ● 一切的开始

目录:

  1. 过去的自己
  2. 模块学习
  3. Android自定义View
  4. 性能优化
  5. 多线程并发编程
  6. C/C++ NDK 开发流程 实现 OpenCV 身份证银行卡数字识别
  7. FrameWork 源码
  8. 换肤、热修复原理
  9. 音视频 ffmpeg的编译、算法
  10. 计划

1. 过去的自己

一晃眼一年又过去了,毕业已经三年半了。失去了很多,也的到了很多。不管最终的结果如何,过去的就让ta释然、未来的都满存着期待、现在的尽力做到最好。

从2015年大四开始到小公司实习,领着一个月3000的工资,那时候也不知道自己坚持着什么,从一开始做着简单的app开发。说是实习其实整个android app 都是自己做、没人带、没人教、直接做需求。没办法作为新人,每天下班都要坚持学习,一直很难忘刚来南京的时候,也是我第一次来南京。租了一个360块一个月非常狭小的房子(其实是厨房改的)。自己每天都会学习到12点。那段时间真的真的非常累、压力很大、我不怕类,我就怕遇到做不了的需求,记得那时候对我来说最难的就是自定义View、界面显示和一些复杂的业务逻辑等,对于我这个完全新人来说,全是压力。也许我是农村小孩能吃苦吧(现在家庭条件还可以,只是小时候很穷养成了这种习惯,说实话很感谢那时候的生活)。

过年回家亲戚问工资都不好意思说,但是我还是很自然的说了3000,亲戚都说那个老表初中毕业一个月在酒店还能拿5000多呢。确实会被别人投入有色眼神,我没有和他们争论也没有回答他们,因为我知道这工资只能代表我现在,我一直都在努力,未来的我肯定会比现在更好。时间一天天的过去,我的努力也得到了相应的回报,至少能让家人过的更好。

其实我也很庆幸自己当初选择走入这一行,我是自动化专业,毕业的时候我依然绝然的选择了这个行业,同学都问我为啥选择这个,其实我也不知道为什么。毕业的时候我们班就我自己做了这个行业。这三年我也明白了一个道理:选择真的比努力重要。

我感觉在当今社会不靠关系、不靠家人、只通过自己努力能让自己过的更好,摆脱贫困的行业”程序员“行业算一个。所以程序员们既然我们选择了这个行业,就人我们好好努力吧,未来的日子会给你更多。不管何时会失业,至少现在的我们过的很好。

说了这么多其实也算是对自己毕业这段时间的一个总结吧,其实作为一个初级android程序员,大家应该都经历过迷茫的阶段,我之前也是大概是从2017年开始,那时候我很迷茫,天天不知道做什么、不知道学些什么、先后我学习了 html/cs/js/jq/h5等 开始学习混合开发,说实话这些并不难,在小公司里面确实能用到,因为小公司什么都要做,最终因为自己感觉这些知识还是太片面。然后又开始学了一段时间的java web服务端开发,后来发现全是框架,感觉还不是自己想要的方向,最终又放弃了。后来想了想最后还是坚持学习了android方面的知识。经过我走的这些弯路,我明白了其实android的市场还是很 宽阔的。一直到今天android的市场依然很宽阔。所以如果你现在也处在这个阶段,请你不要怀疑自己、不要怀疑android市场,对于android你可以坚持学下去,时间会给你答案。

说了这么多现在就来总结一下这段时间学习的android知识点。

2.模块学习

对于android的学习我大致分为几个阶段:

  1. 初级开发各种控件能够基本运用、一般的app开发没有问题
  2. 数据结构、设计模式
  3. Android自定义View 能够自己定义一些View、动态界面效果
  4. 简单的内存泄漏、内存优化、app启动优化等
  5. 多线程并发编程 JVM等
  6.  C/C++ NDK 开发流程 : Android NDK/C/C++开发实战 
  7. OpenCV 银行卡/身份证号识别涉及到 NDK 开发的应用(学习了C/C++NDK就做个例子)  Android NDK/C/C++开发实战 
  8. 学习了 C/C++ NDK 可以学习 FrameWork 源码 系统启动流程等
  9. 音视频开发、算法

个人学习分的模块,我的学习方式是一个模块一个模块的学、不乱学、学完之后写博客总结、一个模块一个模块的容易复习。

对于1、2学习没有做记录,看书/看博客。对于后面的,列出一下章节。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3.Android自定义View

  1. Android自定义view基础详解及开发流程
  2. Android自定义view中必不可少的哪些方法和参数详解
  3. Android自定义view案例一气泡框
  4. Android自定义view半圆形"错误提示框"和简单动画使用
  5. 自定义view增加动画效果
  6. 仿微信二维码扫描自定义view
  7. Android自定义view --Path 的高级用法之-搜索按钮动画
  8. ViewDragHelper仿美团订单拖拽功能 初探
  9. Android自定义view --之--仿“滴滴打车”等车倒计时
  10. Android 自定义view之 Xfermode 制作动态文字加载动画
  11. Android 加载SVG动画
  12. Android 自定义view综合实战
  13. 仿网易云音乐均衡器调节UI效果
  14. Android 绘制录音波浪 + 拓展: 让“字体”迎波而浪

列举效果图:

                                       

4.性能优化

  1. Android 开发中OOM内存泄漏问题案例
  2. Android studio + MAT内存分析优化 一
  3. LeakCanary-性能优化分析 二
  4. Java8和enum枚举简单使用 优化代码
  5. 布局优化,启动优化,cpu占用率版本问题profile不能用、(待完成)
  6. 卡顿优化,耗电量优化, apk体积优化,ANR解决,代码优化技巧(待完成)

5.多线程并发编程

  1. Java虚拟机引发的连环血案
  2. 多线程并发 (一) 了解 Java 虚拟机 - JVM
  3. 多线程并发 (二) 了解 Thread
  4. 多线程并发 (三) 锁 synchronized、volatile
  5. 多线程并发 (四) 了解原子类 AtomicXX 属性地址偏移量,CAS机制
  6. 多线程并发 (五) ReentrantLock 使用和源码
  7. 多线程并发 (六) 了解死锁
  8. 多线程并发 (七) 线程池原理

6. C/C++ NDK 开发流程 实现 OpenCV 身份证银行卡数字识别

  1. c语言基础
  2. Android studio配置NDK开发环境
  3. JNI/NDK 开发 C/C++ 典型基础知识点
  4. JNI/NDK开发 C 调用java方法
  5. JNI/NDK开发 配置CMakelist文件加载第三方 so
  6. OpenCv NDK 银行卡/身份证号识别(1) OpenCv NDK项目集成
  7. OpenCv NDK 银行卡/身份证号识别(2) Bitmap和Mat相互转化
  8. OpenCv NDK 银行卡/身份证号识别(3) 银行卡/身份证图像处理和卡号区域剪切
  9. OpenCv NDK 银行卡/身份证号识别(4) 基于openCv SVM的机械学习模型训练识别

当然这些只是我学过列出来的关键的一些学习,还有一些没有总结,学习的时候要根据自己情况,去搜索相关知识点。
效果图:

7.FrameWork 源码

  1. 源码学习总结《1》Android 系统启动流程
  2. 源码学习总结《2》Android 应用程序进程启动
  3. 源码学习《3》Layout.xml 的解析和 xml 标签生成 View 对象的过程(App 换肤原理 1)
  4. 源码学习《4》Launcher 启动 app 和 apk 资源的加载流程 (App 换肤原理 2)
  5. 源码学习《5》PMS 的启动 和 AndroidManifast.xml 解析流程
  6. 源码学习《6》Classloader 类加载机制 (热修复 1)原理篇
  7. 源码学习《7》Classloader 类加载机制 (热修复 2)实现篇
  8. 源码学习《8》Handler,Message,MessageQueue,Looper,ThreadLocal 通讯机制
  9. Binder IPC跨进程通讯学习记录
  10. Android 语言切换时发生了什么,源码是怎么调用的,对我们app有何影响,我们该怎么做去避免发生异常
  11. Android SQLite 数据库不丢失数据自动升级流程

等等这些,还会持续源码学习
看过的一些书籍:

以上这些基本上是自己这段时间以来,一直坚持学习的,对于2020的计划是

8.换肤、热修复原理

  1. 源码学习《3》Layout.xml 的解析和 xml 标签生成 View 对象的过程(App 换肤原理 1)
  2. 源码学习《4》Launcher 启动 app 和 apk 资源的加载流程 (App 换肤原理 2)
  3. 源码学习《6》Classloader 类加载机制 (热修复 1)原理篇
  4. 源码学习《7》Classloader 类加载机制 (热修复 2)实现篇

9.音视频 ffmpeg的编译、算法

  1. C/C++ NDK 编译ffmpeg 视频流等
  2. 算法

这些还在坚持学习,作为2020年的计划,相信学过C/C++NDK 开发 OpenCV之后,在此基础上,再来用C/C++NDK 开发ffmpeg应该会有帮助。

10. 2020计划

在2020年希望自己的努力都能有所收获,在2020年首先是坚持 framework源码的学习、性能优化、音视频相关、算法等。希望自己能更上一层楼。

过去这段时间一直学习的标签、也通常会问自己问题:

  

希望2020自己能变得更努力、更幸运、加油!

大步的、勇敢的、走下去、未来就是答案。

发布了120 篇原创文章 · 获赞 140 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/WangRain1/article/details/104042797