如何高效的开发Android程序

Posted TaylorHere

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何高效的开发Android程序相关的知识,希望对你有一定的参考价值。

如何高效的开发android程序

这是我第一次写东西,笔者目前是一个大一在校生,开发android的时间要从高中算起,开发的东西不多,也没有实际参与过真正运营的项目,所以也只能说一些片面的观点,主要目的还是希望能养成写东西的习惯,其次是能够得到大家的指教。

先说架构

在Android里面,一定会涉及到的就是界面,业务逻辑,和数据。
而一个Android客户端基本就是这三者的结合。
所以在我的项目里面我会把这三块分别独立开来,所以我要推荐的就是MVP架构模式。
这种架构的方便之处就在于每层之间可以用interface进行沟通,所以同一个模块的不同层之间松耦合,假设有界面、逻辑、数据上的任意变动,都不会牵扯到其他层面的代码。
第二点好处体现在协作开发上面,我平常会把一个项目按功能划分成不同模块,而负责具体某个模块的程序员/组只需认领相关模块的三层任务即可。
第三点好处体现在层复用性上,在一个项目里面可能会有很多模块,但是在不同模块里面可能会有相同的业务逻辑或者相同的界面或者相同的数据,这时我们只需要和已经实现相似部分的小伙伴代码就行。

再说如何处理重复代码

在Android开发中会经常遇到要写重复代码的情况,比如RecyclerView的Adapter,我们可能会在每次把数据填充到ReclerView时都会去写一遍Adapter,都会去写一遍绑定、填充、ViewHolder等。
这是浪费时间的事情。
如果发现了有某件事会导致重复代码,应该立刻提出来,大家商讨解决方案(抽象成某个类等),可以自己解决的就不去GitHub,但是Adapter这种事我还是比较支持使用Adapter速构神器

接下来我们按照MVP的结构来谈每个部分

M-Model

这一层一般用来管理数据这里的管理可能是本地的的数据库读写,或者是网络请求的发送接收,注意:这里不能有逻辑,基本上在Android开发的时候我会使用Volley作为model层的网络框架,在这里我会把服务器URL不变的部分作为常量,变动的部分我会写一个set方法供P层调用,我会管理一个listener已方便回调,我会有一个叫做start的方法发出请求,volley框架会做剩下的事,包括缓存与重试与取消,我会在收到数据后,调用FastJson库将他解析为bean,并且使用listener回调onGetData方法告知并传送Bean到P层,至此M层基本上完成了他的使命。

可能会有帮助的文章:

  1. 如何在Android开发中使用JavaBean

P-Presenter

这一个层主要还是做一些业务上的逻辑,比如要判断用户的ID和密码是否正确,我会在拿到View层给过来的数据后构造需要的Parameters然后set到Model层,接着在回调函数里面去做判断(或者直接读取结果)然后将结果告知View层。
除了这些简单的判断外,我还会把adpter写在P层,因为我不希望填充数据这件事放在View层去做,但是我会把adpter里面的事件响应回调给V层。

V-View

在这一层我做的主要工作是展开xml界面,获取控件,响应事件,这里面一般不会出现if语句会其他更逻辑有关的东西(没那么绝对,但是绝不会有业务逻辑)。

最后说说工具

SVG转Drawable的工具

图标搜索工具

思维工具-百度脑图

图片压缩工具

还有android studio必备插件:wifi adb vim

大概就写这些。
才疏学浅,望点拨
TaylorHere

以上是关于如何高效的开发Android程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Marshmallow 平台上高效开发系统应用?

Android开发如何高效学习系统底层原理

Android开发如何高效学习系统底层原理

如何使用搜索技巧来成为一名高效的程序员

谷歌地图(安卓)如何如此高效地请求 GPS 修复如此频繁

Android的BroadcastReceiver组件