Android项目实战经验分享

jopen 5年前

项目接近尾声,调试测试阶段。觉得一个项目完了之后,还是收获比较大的,在这里和大家分享一下。

首先一个项目要开始开发,需要先等三个东西 1、原型图  2、UI效果图 3、接口

原型图是最先给到你的,通过原型图,可以对整个项目的流程功能有一个初步的了解,进而可以开始搭建项目的雏形框架,如果是资讯类app,,网络框架就可以使用Volley,网络图片加载较多可以考虑ImageLoader诸如此类。但对于新手而言,使用快速开发框架是一件很爽的事情,现有框架大都有详细的API文档或者Demo,上手起来很快很爽,节约时间,代码也很简介清爽。但凡是都有利有弊,框架在提升开发效率的同时,牺牲的是应用性能。举个简单列子,注册类框架,只需要在通过在属性框架上加上控件ID,就实现了控件的绑定和初始化。再也不用的繁琐的findViewById 在进行强转操作。其内部则是通过反射加注解的方式实现控件的绑定和初始化,稍微有点基础的同学应该知道,反射这玩意有多吃性能。所以在选择快速开发框架的时候,需慎重。权衡其中的利弊,个人建议不要使用注解类框架

紧跟着你拿到的就是UI效果图,这也是Android开发中最蛋疼的一块东西。自定义控件、屏幕适配、版本适配什么的让人蛋疼。

最后拿到了就是接口文档了,这一块你的看运气,如果服务端哥们比较给力,什么请求方式,请求参数,数据类型,返回格式都给你写的清清楚楚明明白白的话,就相当nice了。遇到坑的服务端,你就先哭一会吧。这一块东西,最好在设计的时候,你就参与进去,不要别人怎么弄,你就怎么实现。如果是大公司,都有自己的一套规格规范,这就没什么问题。但如果是小公司,你就得去和服务端的哥们商量商量这玩意怎么弄,最好是度娘里面找一篇比较靠谱的模版来改改。不然后期真的很蛋疼。关于调接口的话,如果是普通GET请求,可以想拼好URL,先在浏览器上测一下,第一看能不能拿到数据,第二看数据格式是否符合你的预期,这能节省你很多时间。

接下来的时间,就是尽情撸代码的时间。下面是小白的做完一个项目之后一点小小建议与收获忘大神勿喷。

一、框架选择

访问网络Volley  个人比较喜欢使用Volley ,不仅速度快,而且非常灵活,自己进行一下简单的二次封装,用起来真的很爽  

xUtils 这是一个很黄很暴力的框架,基本上一个应用用这样一个框架就够,访问网络、存储数据、注解框架、加载图片。

zxing 一个二维码的框架

二、第三方SDK

百度地图SDK 关于百度地图的是同官方文档都写的很清楚,害怕看文档的同学,可以看demo,或者里面有个快速开发,分分钟上手

友盟SDK 一个很强大的SDK 统计和自动更新使用起来很方便,特别是统计,页面统计,错误Log日期记录等等

环形IM  即时通讯

三、自定义控件

这也是Android开发里面最难的一部分

自定义ImageView 现在很多需要都需要图片圆角处理,这个控件必不可少,我上一篇帖子就是专门讲自定义ImageView有兴趣可以去看看

下拉刷新下拉加载ListView GridView 也必不可少,实现起来稍微麻烦一点,新手同学也可以是同第三方库PullToRefresh 一个比较好用的第三方刷新框架

主页样式 ViewPager +Fragment

四、BroadcastReceiver是个好东西

个人觉得广播是一个非常好用的组件。实现组件间通信非常方便。举个商城的列子,商品加入购物车,购物车数量加1,实现方式有很多,发送广播、接口回调等等,

但个人觉得发送广播更符合Android程序设计。而且方便,易于拓展,代码也很干净。如果你觉得广播太麻烦也可以是同EventBus等组件通信框架

最后,谈一些小技巧

1、多用工具类 把一切重复的判断,重复的操作抽取成工具类 比如:Toast 、Dialog 分别一个工具类,用于弹框和吐司的统一管理,重复类似的模块一定要统一管理,血的教训,当需求变更的时候。

2、Activity跳转替换。当一个功能需要分几个页面完成时,这就很蛋疼了,要么再起Activity,要么揉再一个Activity里,大多数推荐使用Fragment。再起Activity耗资数据传递很麻烦、揉在一个Activity里面,代码不好管理,使用Fragment数据传递还是不方便,而且蛋疼的Fragment生命周期还不好管理。个人推荐使用Dialog,对,你没有听错,创建一个类继承Dialog,把这个Dialog设置成全屏的模拟成一个Activity,当一个功能被分成几个页面处理的时候,这样用起来非常之爽,不用管Fragment蛋疼的生命周期,代码也易于维护。

3、 推荐使用MVP模式,至于这个模式如何使用和好处,我这里就不再赘述,又兴趣和度娘找找Demo,或者给我私信


来自: http://blog.csdn.net/soul_code/article/details/50035289