写点什么

互联网寒冬下,原生 Android 开发的路该怎么走?,flutter 代码扫描

用户头像
Android架构
关注
发布于: 刚刚

第一层:普通程序员第二层:熟练开发者、高级开发工程师、技术组长第三层:技术专家、架构师、一线经理第四层:科学家、研究员、首席(资深)架构师、部门研发总监

Android 如何过冬

上帝总是偏爱那些爱思考的人,爱思考的人运气一般也不会太差,在 哪有什么互联网寒冬?只是你穿的少而已! 一文中,作者大概聊了聊关于思考的话题,我觉得大家应该去看看,然后思考下自己


技术是我们的基本盘,但不是全部,最近阿里不是放话了吗,以后其他岗位的尽量挑有技术背景的,我看到这种思想渐渐再国内获得认同,越来越多的公司都在更考虑有技术背景的人,这是我们的机会,年龄大了,年纪到了,总是只有很少的一部分人才能顺利的晋升管理岗位,其他的同学必须面临转岗,转岗不是换行业,产品,项目经理,运营等等其他我们 coder 都可以干,这些岗位需要的技术,知识点相比 coder 来说简直是小巫见大巫,在我们平时对这些岗位有深入了解,有深入的交流经验,有深刻的认识后,我们 coder 转这些岗位其实不难,很快就能上手,但是这需要我们提前考虑好自己转岗的位置,平时要多去专注,交流, 学习,能再本公司内转岗是最好的了,这样公司会对大家比较宽容


coder 们要是打算换工作了,那就不要研究其他的了,就专心 android 技术吧,python,H5 等稳定下来再说吧,我们毕竟是做 android 开发的,找的也是 android 开发的工作,其他方向虽然更好但不是公司考虑的重点。

Android 的核心知识点

做 Android 开发,无外乎那么一些知识点:(这里先放上一份知识大纲)



  • 各大开源框架的研究,包括但不限于下面几个 OKhttp、Retrofit、eventbus、Glide、eventbus、Rxjava、blockcanary、mvvp、dagger2 等。

  • 组件化是基本要会的,插件化大公司要求会实操的。

  • java 部分,包括 常见的数据结构和算法,hashmap,二叉树,红黑树,apt 注解,aop 插桩,整套多线程知识点


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


,包括 ThreadLocal 实现原理


  • flutter/Dart 大家要开始学了,就和当年我们学 kotlin 一样,flutter 基本一锤定音了,google 下一代就是 flutter 的天下。

  • android 的系统原理,Lru 算法,Binder 机制,EventBus 实现原理和为什么不能跨进程,跨进程几种方式,AIDL,handler 机制。

  • 音视频开发,直播、点播、音视频通话、音视频会议,短视频,这些不一定要多深入,但是基本的各大平台的 SDK 要会集成,能根据开源的 哔哩哔哩 IJKMediaPlayer 编写自己的视频,音频播放模块。

  • 最后,就是 Android 的优化了,Android 的优化无外乎以下几个方面:内存优化(稳定性)、交互优化(流畅度)、耗电优化(省电)、安装包大小优化、网络优化、应用启动优化等几个方面。


如果大家想要深入的话,可以重点关注下以下几个方面的内容:


  • 图形图像开发,不限于 OpenGL ES,EGL,GLSurfaceView,滤镜,美颜,canvas,paint

  • 应用层开发。主要还是原生开发,提高性能优化技能(启动耗时、内存、耗电、网络、数据库、稳定性等),达到高级开发者的水准

  • 深入 Android 专业技能提升。主要是阅读源码,理解透 Android 开发常见的流程和原理(activity 启动流程、事件分发机制、广播机制、Binder 机制、内存管理机制等)


向 Android 架构师发展。从平时的一点一滴开发中,有意训练 Android 架构设计能力,这需要站在一个更高的角度来统筹 App 开发。


  • 跨平台开发能力。如 RN、Weex、Flutter 等。大部分公司目前都需要有跨平台开发能力,所以我们很有必要提高这方面的能力

  • SDK 和框架开发。可以通过研究开源项目或者实际项目开发,抽象提取有用 SDK 和框架供其他人使用

  • 研究 Android 安全开发。App 加固原理和实现,熟悉常见加密方式(如:RSA、DES 等)、Https、支付安全等。

  • Android 自动化测试工具开发。这需要对 ADB、Android 截图、Android 布局解析、Android 测试框架等相当熟悉

  • 音视频开发。前两年比较火的直播,还有这一两年比较火的短视频,都是与音视频相关。所以,我们可以了解音视频的编解码以及传输协议等。

  • 手游开发。游戏给鹅厂带来了稳定的收入,所以这也是不错的方向。这就需要熟悉常见的游戏开发框架 cocos2d-x、Unity3D

  • 图像开发。比如美图秀秀、天天 P 图,都用到图形的合成、滤镜等技术,对图像处理有很高要求。

  • Android Framework 开发


除此之外,要成长为一个架构师,还需要开发者具备系统设计能力。具体来说,为如果你仅仅是对各种各样的技术都熟悉,有技术广度,也有一定的技术深度,实际上是不够的。如果你的系统设计能力不到位,可能导致你在开发系统的时候会乱用技术。


比如说,有的系统他有一些自己特殊的业务场景和技术挑战,实际上在这个场景之下比较合适的是采用 “缓存 + 数据库” 的技术方案来应对。但是呢,有的工程师会很多技术,但是缺少这种准确的分析系统问题,提出合理的技术方案的能力,也就是缺少系统设计能力,导致他可能会引入 Elasticsearch 这种技术来尝试解决这个问题,那么结果必然是失败的。

规范代码

不管如何,你的代码得先能让人看。这是我在刚刚入行时,一个老司机指导我的,随着我在学习的深入,了解的更多,我们在基本功上的追求不就是为了代码更加好看吗,好看的代码才更好懂,才能好改,设计模式,代码架构,框架设计,MVP(多端分离) 不都是追求的这个最终结果嘛。


因此,我们可以从以下几个方面着手:


  • 实现功能前先设计好代码,好的框架层次,让我们可以快速的了解整个框架实现,快速的找到想要的代码,优秀准确的名字我们可以知道类是干什么的,

  • 注释写的尽量详细

  • 不要写太长的方法

  • 不要写太“牛”的代码了,有的程序员喜欢写非常有个性的代码,喜欢写一些别人很难看懂的代码,他认为这样才能显示出自己的“高水平”,这样就不是高水平了,只能说代码的可读性太差了。


最后,互联网不存在所谓的寒冬,只是你没有努力罢了!!!

最后的最后

不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。


对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!在这里我放上我自己整理的所有的学习资料,一直以来不断学习,如今整理的资料不知不觉居然已经有将近 80G 了,,,在这里作为读者福利免费分享给大家,希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习,希望大家都可以安然度过这次的互联网寒冬!

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
互联网寒冬下,原生Android开发的路该怎么走?,flutter代码扫描