我奇怪的安卓开发历程(内含本人不太成熟的技术观)(一)

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情 >> 希望大家可以帮忙点个赞,谢谢!

引子

本人进入安卓行业刚半年,虽然大学做过一个安卓APP的项目,但只是浑水摸鱼的,但这也是我进入这个行业的一个契机。刚进入公司时,其实基本上就是“从零开始的异世界生活”,真的什么都不会,但又需要快速去适应公司的开发速度。所以,我成长起来也十分迅速,只不过基础方面一直不扎实。下面我就从我行业历程来一步步讲述我的安卓开发历程。如有错误,希望各位大佬能指正。

**起步**

我进入公司的第一天,公司为我分配了一个工位,以及一台现在我都觉得不错的电脑(不想说的牌子),当时第一步就是简单按流程把电脑系统配置好,然后就安装安卓开发必备工具“Android Studio”,然后再根据公司新人指导文档去下载我早就了解但不熟悉的Git与它的小乌龟,以及SVN管理的小乌龟,生成公钥密钥,然后连接上公司的代码管理平台。

接着去克隆公司的项目代码,由于我们是和摄像头设备打交道,所以要有NDK,SDK,sdk的接口我们不用去管理,服务器写好我们去调用即可,虽然这一点也是我开发很长时间后才逐渐清晰的,当时第一天就是去尝试正常的编译项目,是的,我都没有运行项目,但我也一本正经的看了一天的项目代码,虽然没啥收获,但也看到了许多从未了解的结构,当然是百度的,是的,因为代码的结构让我感到疑惑,所以去百度了,我一开始以为我们是MVP架构的,因为有presenter这个字眼,加上我们老大说“这是反射过来得到的,我们要写的功能代码都在这里面”(大概是这么说的,我说的不够专业,实际上我不知道啥是反射,现在知道了Java反射但对其为什么要这么做再看了几篇博客后还是不懂其目的),然后一搜就得出了MVP架构这一结论,从CSDN找了一个图片,就是这样的:

image.png Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。上面是这样解释的,但第二天我又神奇的发现我们项目里竟然还有vm(viewmodel),心想这不是昨天看MVP介绍的博客中说的MVVM架构吗?我从网上找了一个说明图片:

image.png MVVM是Model-View-ViewModel的简写。

所以我又被彻底绕晕了,其实很久都有点搞不明白vm是干什么的,以至于开发我都不敢写vm,虽然当时给我的开发任务也不需要写这些,只是改动一些老项目(没有这些构架的乱七八糟代码),但我真正了解它们要到工作的第三个月了。 #

渐入佳境

其实开发这种事情真的是只有实践才能出真知,如今我在开发中知晓了如何去打断点去debug,如何去利用sp管理,如何去写日志输出让自己知晓代码问题出在哪(一开始都用log.d,结果打发版包后,测试那边反馈的日志没有我的日志,哭死),知道怎么用thread写子线程以及为何用子线程,也逐渐知道怎么去用服务器提供的接口以及怎么去使用scheme跳转协议(最近还接触到APPlink,知道自己原来用的是deeplink),还知道了handle的机制以及怎么给服务器api发送协议(说的好像有点毛病,但就是把参数给服务器,通过他们提供的api和url然后我们也会打开对应网页,支付之类的,可惜学的不精,仅仅会用,却说不出个道理),也明白了livedata的postvalue和observe监听,去刷新我们获取的信息以改变UI,等等等等。

**总结**

其实技术上我深入了解的并不多,基础当时也没有自己去重头学一遍,而是随着开发运用而变得熟练,然而这是有缺陷的,当时知道的四大组件,如今其实在开发中我接触多的也只是Activity,其他的如内容提供者(ContentProvider)(个人感觉就是自己建的model),以及服务(Service),广播(BroadCast)其实都不是很了解,但也就这么开发下去了,相信等到自己需要时也会快速理解运用的。

猜你喜欢

转载自juejin.im/post/7125437147536064525