一. 开发背景
想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样。
我们的项目需要开发一款智能硬件。它由 Web 后台发送指令到一款桌面端应用程序,再由桌面程序来控制不同的硬件设备实现业务上的操作。从 Web 后台到桌面端是通过一个 WebSocket 长链接来进行维护,而桌面程序到各个硬件设
点击领取完整开源项目《安卓学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
备也是一个 TCP 长链接来维护的。
本文讲述的,其实是从桌面程序到各个硬件之间的通讯。
Android开发者打好编程基础
- Java基础(Kotlin)
- OOP思想与设计模式
- Android基础
- 数据结构与算法
- 其他,比如JVM相关
除了编程基础,我们还需要补充哪些能力
- 喜欢钻研的兴趣
- 良好的英语理解能力
- 善于思考和总结的习惯
- 高效率的学习方法
- 能够机智地利用Google搜索
- 善于利用工具
- 和现实事物关联类比的能力
- 对待问题的态度
1.喜欢钻研的兴趣, 尽管高级编程语言的出现让我们将精力更多的放到业务上,而不是编程细节。正所谓知其然知其所以然,钻研细节可以更好地帮助我们实现业务,做到了然于胸。
2.良好的英文理解能力。 由于一些原因,我们接触到的一些技术的资料都是二手资料,而这些二手资料往往在知识传递的效果上有一些折扣,甚至是偏差。英语可以说是(安卓)编程提升的加速器。同时,英语好的话,可以辅助我们写出更具有自解释的代码。
3.善于思考和总结的习惯。 真理越辩越明,同样技术越思考越清晰。对于一个技术通常我们需要抱有这样的疑问
- 它是什么 一句话概括
- 解决了什么问题 存在的意义
- 怎样解决了问题 内部的实现
- 它的缺点是什么 多角度分析
比如我们关于WebView的考虑点的总结
- 是否支持js
- 是否支持mixed content (https网页加载http图片)
- 与js通信的问题,比如给方法增加JavaScriptInterface注解
- 是否自身处理某些URL(协议不同,不让flipboard://showSection等)还是交给外部程序
- 关于UA中是否加入特定的标识,比如Flipboard字样
- 是否增加特定的header
有了思考,我们需要以文字的形式记录下来,这也应了那句老话,好记性不如烂笔头。建议以博客的形式总结出来。
4.高效率的学习方法。
- 理清楚概念很重要
- 做好控制变量法
- 多动手实践,与理论结合
- 抓住重点,剔除干扰因素
其实,任何复杂的事情都是由简单的事情组成,编程也是一样。在编程过程中,我们会接触到很多概念,这些概念很重要,对于概念的一知半解往往会使得我们越走越慢,学习起来原来越困难。因此对于编程中的概念要务必理解准确和深刻。
控制变量法:我们在初中做实验的时候,经常会用到控制变量法。在编程中红也是。当我们在解决问题时,也要做到控制一处修改。比如我们项目中需要修一个webview相关的bug,我们要想一想能不能脱离现在庞大而负责的项目,单独写一个简单的变量单一的sample来重现,做到快速和小粒度验证。
多动手实践与理论结合:很多时候,我们学习新技术的时候,我们应该先学会使用它,有了初步的认知之后,便于我们更好的理解和深入研究。比如关于GUI的东西,我们最好时不时做出一些东西,理论和实践要做到相辅相成。
建议
对于初学者,大学生我有一些建议希望你们能好好听听
- 越来越多的关于互联网寒冬的消息传出
- 听见越来越多的人抱怨Android找工作越来越难,已经趋近饱和。
- Android开发的红利期正在逐渐消逝,尤其是对于初级和中级开发人员
- 关于现在加入Android开发队伍,我并不反对。
- 仍然可以赶上红利期的有容器,机器学习和人工智能。
- 但是无论选择哪一种技术,即便是Android,请具备好的基础和较强的编程能力和足够的爱好。不要仅仅追求物质。
如果你已经成为了Android高级架构师,那么你根本不用担心Android开发前景,因为你就是前景!
最后
文末放一个小福利给大家,点击我的GitHub即可领取
群内有许多技术大牛,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~
偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!
料和面试资料包~**
偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!
[外链图片转存中…(img-xGWMJneg-1709723902519)]