零基础自学 Android是一定可以的,所以接下来面临的问题是该如何自学Android,并且在短时间内达到一定的效果!
学习Android开发,首先要有个大致的方向,这样才不至于两眼一抹黑,不知道怎么开始从哪开始
首先要学习的是Java基础,很多人哪怕是有了3年以上的开发经验,对Java的了解还是很片面
事实上,恰恰是这种看似很基础的东西,掌握和精通的差距是非常大的
很多人为了加薪往往会学习新出的开源框架,学习那种带“炫技”成分的技术,短期来看的话很有效,飞得很快,但是我们的工作不是一条百米赛道,而是贯穿你一生的一件事,飞得快是好,但我们还要飞得足够远,而这些“基础”的知识恰恰就确定了你能走多远
泛型、多线程、反射、JVM、Java IO、注解、序列化等,这些都是要学习并深入了解的
然后就要学习 Android框架体系架构 ,这块是现在使用者最多,但我们称之为Android 2013~2016年的“过时”技术
四大组件、高级UI、自定义View、数据持久化、framework、事件分发、Handler等
即使是这样的技术,很多开发者也因为经常网上Copy代码 而导致对这块经常“使用”的代码熟悉而又陌生:
天天在和它们打交道,天天在复制这些代码,但连个自定义View都玩不转(你可千万别说你是搞Android开发的……)
虽然天天和这些代码打交道,但是很多人并没有深入研究过这些代码的原理和代码深处的内涵。
这些都是做Android开发,做高级工程师的基础知识
基本学完上面这些,就可以独立开发一款APP了,而要继续深造的话,就要学习性能优化这块的知识了,光靠上面这些写出来的APP……emmm,自己体会
性能优化
六大设计原则、常用的设计模式、数据结构与算法,OOM问题、ANR问题
还有各种启动优化、执行效率优化、内存优化、耗电优化、网络优化、APK优化、屏幕适配等等
性能优化是针对整个app开发而言的。一个好的项目被开发出来,不单是产品要好,开发者也需要知道,为什么我开发的这个app能够在绝大多数的手机运行,为什么用户在使用的时候绝大部分的手机不会出现bug。我们的apk文件可以优化到很小的,比如你做一个项目,打包之后可能是10m,但是经过优化之后可能就只有8m,甚至更小。另外,我们做的项目安全性如何?我们凭什么断定我们做出来的app安全性好。这都是性能优化中会涉及的
一个app的性能好不好我们需要从两个层面努力。
第一个层面:从写代码的时候就需要注意,让自己的代码是高性能高可用的代码,这个过程是书写高性能代码;
第二个层面:对已经成型的代码通过工具检查代码的问题,通过检查到的问题来指导我们进行代码的删改,这个过程被称为调优
这一块所涉猎的知识会非常的广,这里一定要“深点…深点…再深点……”如果你能成为性能优化领域的专家的话,那简直是妙不可言,不信你随便去搜一下岗位,50W+、60W+……
这方面的人才都去了大公司,福利待遇那都是杠杠的
开源框架
热修复、插件化、组件化、强制更新、图片加载框架、网络加载框架、Rxjava、IOC架构方法,Hook技术、jetpack等等
深入源码,从底层研究,你就会发现其中的奥妙
多看,多做,多写,融会贯通以后基本上可以改进这些框架了,对原理的理解更强一点的可以实现手写
开源框架这块,大厂的朋友们会更有优势一些,大厂的框架都是用自己设计的定制框架
最近网上也流出腾讯、阿里等等大厂的一些框架,感兴趣的可以多去学习一下
NDK
C/C++、jni、Linux基础、音视频编解码技术、流媒体协议、ffmpeg,OpenCV、OpenGl等等
音视频、直播、“人工智障”,前些年比较火的一些项目最终都是落地与移动平台,而现在 NDK 技术已经成为了Android开发的必备技能了
Flutter
混合开发的flutter现在已经逐渐变成了主流的混合开发框架
另外由于阿里系的强大存在,导致阿里系的公司都在用Weex混合架构,这些都是一个Android工程师开拓视野,走向未来(大前端)必不可少的基本技能
至于如何学习
我个人推荐,有老师带>看系统的学习视频>有交流圈子>有系统的学习资料
为什么不推荐博客呢,博客很多人都看,甚至有些也在坚持写,不过你以后就会发现,很多博客只贴代码,不说原理,慢慢的就会养成CV的毛病了,并且CV能解决就算了,很多博客的代码还有这样那样的坑和问题也不做注明……瞎写博客的人你别跑!等我掏出我40米长的大刀出来!
心累啊……
有老师带效果排第一这是肯定的,出了校园的朋友可以考虑一下培训机构,虽然现在大家对培训机构褒贬不一,但不容否认,花点钱请培训机构系统的提升一下自己是非常有效且快速的,很多还提供面试指导、简历优化、内推这种服务,相比起你自己摸索两三年还学不会,血赚。
而且培训机构分为两张,一是线上,一是线下,互联网发展到今天,线上教育的优势越来越明显。。。
看系统的学习视频
这里要注意必须要系统,零零散散的那种毫!无!用!处!
学习就像以前LOL的天赋点,基础天赋还没点呢,你想直接点最高级的?根本不可能的事!
圈子的重要性(附)
很多人对圈子的使用还只停留在遇到不会的问题甩群里的阶段
你有没有想过,别人甩群里的问题可以变成以后你面试时“我之前遇到的问题”?
然后:“我是这么解决的……”
以及一些资源的共享和消息的互通,比方说你准备去面A公司,群里A公司内部的人说公司内部存在****问题,你不会全信,但是完全可以作为你参考对比的信息,不是吗?
以及内部消息的降薪、裁员……
更别说别人的思路对你也很有帮助,以及在圈子中积累的人脉了
“做程序员,圈子很重要”圈子可以让你少走弯路,拓宽人脉,拓展思路,学习他人失败和成功的经验,获取最新经验与信息,抱团取暖等!圈子的高度决定人生的高度!
系统的学习资料
这一块本来不想说的,因为作用其实很小,大多都是电脑几十G,存着就不看了……
其实主要还是你们保存的资料太零散了,根本提不起看的兴趣,几十G,几百G,有用吗?
这里我做一个推荐:↓↓↓ 这是我21年9月底才做出来的,偶尔有空我也在做补充
Github地址:https://github.com/hunanmaniu/AndroidNoteshttps://github.com/hunanmaniu/AndroidNotes
Codechina地址:Android.md · master / Android · CODE CHINACODE CHINA——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlabhttps://codechina.csdn.net/weixin_55362248/android/-/blob/master/Android.md



