怎样开发出一款不错的Androidapp?

发布时间:2020-01-15 05:59 | 浏览人次:浏览次数

本文从开发工具选择,UI界面、图片模块、网络模块、数据库产品选择、性能、安全性等几个方面介绍了假如开发1个Android软件。目前梳理出来共享给广大的Android程序员兄弟们。
怎样开发出一款不错的Androidapp?

开发工具的选择

开发工具我将使用 Android Studio,它是Google官方特定的Android开发工具,现在是1.2.2稳定版,1.3的预览版也已经上线了。 Android Studio的优势就不需多说了,GitHub上大多数的Android开源库也都已迁移到Android Studio上来,在未提供 jar文件时,采取Android Studio能够极为便利地集成开源库。最为主要的是Google已宣布将在年末前静止对 Eclipse Android开发工具的一切支持(Google Ends Support for Android Eclipse Tools),因而请早日转移到Android Studio上来。

App设计风格

这一点对于1个开发人员来说,貌似没有决策权,最后的决策权在产品部门手里。虽然这样,我还是会尽力说服产品部门将App设计成Material Design风格。

这一点说多了全是泪啊,作为1个Android开发人员,却整天开发着iOS风格的App,相信许多企业都这样,为了控制成本和时间,Android和iOS共用一套UI。

举1个最常见的例子,Android App中每个页面TitleBar的左上角放1个返回按钮,这在iOS里是必须的,但Android有返回键啊,这样设计对于 Android彻底是画蛇添足。

真心期望产品设计者尊重每种操作系统的风格及采取习惯,不要再设计不伦不类的产品。Material Design恰好提供了一种这样的规范,自MD规范上线以来,其优雅的设计和清新的风格已吸引了大量设计者和开发人员,如今MD设计不止在Android上(已有官方类库支持 MD风格),甚至在CSS、HTML、JavaScript网页设计上都越来越火。因而,对于App的设计风格,Material Design义不容辞,可能你曾经错失了Android Design,请不要再错失Material Design。

一些有关的链接:

Material Design官网

Material Design配色模板

MD1个设计案例网站

MD风格的Andorid抽屉源码:Android-MaterialDesign-NavigationDrawer

MD风格的1个App源码(有妹子哦):Android-MaterialDesign-DBMZ

版本支持

对于Android要支持的最低版本,能够借鉴各个版本的市场占到率,其实最可靠的是依据自家App的统计数据来决策,现在我们的App最低支持2.2。以个人看法认为,尽管2.x的版本依然有一部分会员,但其实手机升级换代尤其快,为了更好的用户体验,也为了软件更新的API(许多第三方库也都会有版本请求),应该提高最低支持的版本,大概3.0 为宜,即API Level为11。

App框架设计

相信大家都会有体会,伴随功能模块的增多,App越来越大,假如没有良好的构架设计,则代码将会变得臃肿且不易维护,各功能模块的耦合度会越来越高。因而能够把App模块化,将1个详尽的App区分为几个相对独立的模块,这样即能够减少模块间的耦合也利于复用。

1.网络模块

已经很少有单机版的App了吧,大多数都需求联网,从服务器要求数据,因而网络模模块不可缺少。GitHub上的开源网络框架也尤其多,个人认为能够采取开源框架,现在我会选okHttp或许Volley,可能之后会有更好的网络框架出现。留意假如采取开源框架,则必须要阅读其源码,必须可以驾驭它,这样就不至于当bug出现时无计可施。当然还能够自己写网络模块,现在我们的App网络模块就彻底是自己写的,这样的好处是自己熟知所写的代码,当有bug时能够快速定位问题,时候留意处理一些联网历程中的细节,如:

(1)对HTTPS的支持、HTTPS证书的检验(现在许多做法全是默认允许所有HTTPS证书的,其实这样做是不安全的,理应真正地做证书校验)

(2)支持Wap方法上网,移动、联通、电信代理的设立

(3)支持重定向、数据缩减传输等

(4)其他值得留意的问题

自己写网络框架能够完美地处理这些细节,但时间成本比较大。假如采取开源框架,普遍都没有处理这些细节,因而我们能够在第三方框架上做些更改,这样时间成本将会节约许多。

2.图片管理模块

图片也是App中不可少的元素,而且图片是占用内存的大户,因而图片管理框架尤其主要,不好的图片框架容易引起内存泄露甚至引致崩溃。当然能够自己实现图片框架(现在我们也是如此做的),实现图片的下载、解码、缓存等重点节点。个人建议能够选用一些比较好的图片库,可能会比我们自己管理图片修改进和有效。我会推荐如下几个图片管理库:

(1)Glide,Google的一些官方App,如Google photos都采取了,还要解释更多吗?

(2)Fresco,FaceBook的开源库,功能超级强大,支持WebP、Gif、JPEG渐进显示,重点是其对图片内存的设计思想,使得图片内存开销大大降低。

(3)Android-Universal-Image-Loader,在出现上述图片库之前,貌似这个最火吧,之前个人的App中也用了它。

(4)Picasso,Square的开源库,听说Glide就是借鉴Picasso设计的。

3.本地数据库模块

可能你的App需求用到本地数据库,那么建议你选耗时髦的ORM框架,如ActiveAndroid或greenDAO,采取第三方库会大大便利你对sqlite的操作,个人认为在采取中我们需求留意数据库升级以及多线程并发操作数据库的问题。

4.文件管理模块

1个App,必定会牵涉到一些文件,如配置文件、图片、视频、音频、SharedPreferences文件等。我们能够提供1个全局的文件管理模块,负责文件的增、删、改、查等操作。此外还需支持文件缩减,文件的上载与下载操作,对于下载需求支持多线程并发下载、断点续传等功能。

5.组件内、组件间通信机制

对于1个App,组件通信不可缺少,通信种类能够分成点对点和点对面的的通信,点对点即只有唯一的接收者能够响应消息,点对面则相似于消息广播,即所有注册过的都能够响应消息。在Android 中,通常采取消息机制来实现,但消息机制的耦合度比较高。现在也有一些通信框架,如EventBus、Otto等事件总线框架,这些框架能够极大地减少组件间的耦合,但没法完美地实现点对点通信,因而建议消息机制和事件总线机制结合采取。

6.数据处理框架

其实还应该有1个数据处理框架,当发出数据要求后(走子线程),经网络模块返回数据(普遍为JSON格式),JSON数据普遍不能直接交给View层采取,需求解析成对应的Model,时候如有需求,还要缓存数据,因而这些步骤能够抽象成1个数据处理的框架。这个框架能够认为接纳数据要求的url,并将数据Model返回给Activity或 Fragment。对于JSON数据解析,建议采取fastjson,速度快且稳定,缺省值也比较改进。

7.线程调度模块

其实Android中有许多操作,如要求数据、下载图片、清除缓存等全是需求在子线程中实施的,往往许多同时全是直接起1个Thread来做了,这样做就会很乱而且线程多了将难以管理。因而能够抽象出1个线程调度模块,它维护1个线程池,假如有需求线程的话就通过线程调度模块取线程来做,这样就便利统一管理。当然第三方库中的线程操作我们将没法归到线程调度模块来管理,但其他牵涉到线程的操作都应该来统一处理。

8.业务层

业务层大概就是四大组件、Fragment、View了,建议尽也许地采取源生组件,少用自定义组件,因为源生组件性能是最佳的。此外建议采取MVC模式就好,只要设计管理好自己的逻辑,至于MVP、MVVM等模式个人认为都会有瑕疵,总之寻求1个折中吧,有得必有失。

9.APK动态加载机制

伴随App的增大,功能的拓展,许多App已经选用了APK动态加载的机制,也可以够叫做插件化。由于本人没有在实际的App中软件过,所以不便发表过多评论。但这种机制个人认为大有前途,这种机制将利于App的解耦、功能拓展和局部升级。具体能够借鉴1个商用的解决办法:ApkPlug-移动软件模块化解决办法和1个开源的APK动态加载框架。

10.App的安全性思考

Android App的安全问题很少有人重视,但这确实是1个很严重的问题,一些好的App经常被人破解。建议将一些核心算法等写成.so库,主要的逻辑摆在服务器端,数据要求选用加密等,此外打包APK时起码要搞混代码,还能够选用APK加壳机制,总之这类的防范举措永远不嫌多。

一口气漫无逻辑地写了这么多,也许会有漏掉的内容,后续会补充改进。我想假如依照上述准则,起码能够开发出一款不错的App。

上述内容就是小编今天为您带来的关于《怎样开发出一款不错的Androidapp?》的全部内容,希望能对您有所帮助,我们是一家成立于北京的IT外包公司,如果您有app软件或者微信小程序需要定制开发,不妨联系我们。
免责声明:本站部分文章转载自网络,不代表本站的观点和立场,不以盈利为目的。如有侵犯公司或个人权益,本站会第一时间删除文章。我们是一家北京app开发公司,欢迎咨询免费获取思维导图!

本文地址:https://appbj.cn/article/1744/

网友热评

暂无更多评论
思捷智联

思捷智联是一家2009年成立于北京的IT外包公司,我们致力于为企业提供app软件开发和微信小程序开发服务。公司成立10年来,我们为民政部、方正电子、神州数码、联想控股、壹基金、首钢集团、北京大学、北京师范大学、今麦郎、丰汇租赁、万通控股等上百家企业提供了IT外包服务。我们努力实现每一位客户的托付,为客户创造实在的效益,让您与梦想走得更近。

微信咨询

扫描微信二维码
同市场经理沟通需求

我们积累了丰富的移动互联网开发和运营经验,在开发中为客户提供更多帮助!
咨询热线:18612209195