第一篇中介绍了整个项目的设计思路,接下来就介绍下我们安卓端代码的架构。
先来看下lib库:
alipaySdk-20160223.jar 这个jar包是为了集成支付宝支付需要
android-async-http-1.4.6.jar
async_http_post.jar 这两个Async包是网络请求需要的
baidumapapi_v3_5_0.jar 这个jar包是百度地图定位用到的
gson-2.3.1.jar 这个是google解析json数据的jar包
jackson-all-1.7.6.jar 这个是用来处理JSON格式数据的类库,它速度非常快,逐渐替代了Gson和json-lib
libammsdk.jar 这个jar包是做微信分享功能需要用到的
locSDK_6.13.jar 这个也是百度地图定位需要用到的jar包
mta-sdk-1.6.2.jar 这个jar包是用来集成qq登录和分享功能的
open_sdk_r5509.jar 这个也是用来集成qq登录分享的jar包
umeng-analytics-v6.0.1.jar 这个jar包是用来统计APP用户信息的,友盟的一个jar包
universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar 这个是图片异步加载框架
Volley.jar 这个是另一种网络请求Volley,个人感觉bug还是不少的
zxing.jar 这个是生成识别二维码的
从加载的jar包来看,我们需要做的功能已经很清楚了,实际上这个项目还是有点混乱的,比如说网络请求框架,一般只用一种就可以了,我习惯用Async,现在比较常用的应该算Volley和okhttp吧。
接下来我们在看下res文件夹:
anim文件夹一般是用来放动画效果的
drawable文件夹存放各种控件的多种效果的
下面的drawable-xxx 是用来存放不同的图片的,适配需要
values-xxx 用来适配不同的机型,存放不同的dimens.xml
接下来主要看下我们的代码文件夹:
这个目录也不是最优的,实际上http包是网络请求的源码可以省略,universalimage是图片加载的框架的源码可以省略,util和wiget都是存放一些公共的类,比如说弹出框、上拉刷新下拉加载、字符判断等一些常见的功能,这两个可以合并一起。common中也是存放一些公共数据的,整个项目的url和用到的魔法数字,项目中用到的字符串我都存放到common中,至于common要不要和util还有wiget合并,我觉得没必要。
符合自己的就是合适的,当然我们现在只讨论的是一款APP单个版本的情况,如果公司有多款APP或者一款APP多个版本,具体的架构要怎么设计那就需要仔细商榷了。
到这里准备工作基本就已经做得差不多可以尝试开发啦,其实最关键的还少了一个test包,单元测试用的,以前我也是随便找个地方就写了,没有规范起来,新开项目最好单独开一个单元测试用的包方便调试。