从零开始搭建架构实施Android项目.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

从零开始搭建架构实施Android项目

我们先假设一个场景需求:刚有孩子的爸爸妈妈对用照片、视频记录宝

宝成长有强烈的意愿,但苦于目前没有一款专门的手机APP做这件事。

A公司洞察到市场需求,要求开发团队尽快完成Android客户端的开发。

以下模拟团队和工作开展。

团队情况:产品经理1人,Android开发2人,服务端开发2人,UI

设计1人。

开发周期:两个月。

工作量:大约50个界面。

隐含需求:考虑到用户群体有可能激增的情况,服务端需要有一定的并

发能力。

前提:原型已设计完成。

1服务端概要设计

1.1系统架构

先给出服务端的架构图。

由于服务端开发有Java、PHP背景,为了快速完成开发任务,我们选

择PHP作为服务端开发语言,顺便也把数据库定为MySQL。考虑后期

扩展和数据库访问性能,拟引入Redis非关系型数据库。同时为了提高

数据读的性能,在云服务器和数据库之间用上缓存,并为数据库主从备

份、读写分离。服务器就不搭建在本地了,管理是一大问题。现在云服

务器一大把,七牛、阿里云、腾讯云、百度云、金山云等等,技术成熟,

而且价格还算公道。在此我们选择阿里云。为了应对可能面临的并发问

题,云服务器要考虑负载均衡。项目中可能存在大量的需要上传和下载

照片和视频,我们选择阿里云的开放存储服务,同时为了提升各个地区

的下载体验,我们引入CDN。客户端通过APIService和服务端交换数

据,图片和视频的下载直接通过CDN。

1.2模块划分

根据需求和原型设计,可能的模块划分如下:

注册登录模块

用户模块

小孩模块

媒体(图片+视频模块

相册模块

……

1.3数据交换和API接

服务端与客户端使用JSON交换数据,使用自定义JSON格式,约定

返回code、message,实体封装在result中,支持单个实体、实体列

表、多个实体列表,定义如下:

1{

2code:500,

3message:系统异常,请稍后重试,

4result:

5}

6{

7code:200,

8message:登录成功,

9result:{

10user:{

11userId:1,

12nickName:Leo,

13email:Leo@,

14gender:0

15}

16}

17}

18{

19code:200,

20message:SUCCESS,

21result:{

22album:{

23kid:{

24kidId:1,

25nickName:LEE,

26gender:1,

27birthday:2014-3-6,

28

29},

30media:{

31mediaId:123,

32mediaType:1,

33createdTime:193743546746,

34mediaDescription:这是小孩第一次出去春游,

35

36}

37}

38}

39}

主要API接口设计如下:

/service/v1.0/user/login

/service/v1.0/user/third-login

/service/v1.0/user/register

/service/v1.0/user/logout

/service/v1.0/user/info/update

/service/v1.0/album/upload

/service/v1.0/album/update

/service/v1.0/album/delete

也许你看到了,API做了二级域名映射,同时为了服务端后期API版本

的升级管理,在URL中加上了版本标识V1.0。命名方面我尽量做到

restful的风格。对了,此处没有使用Https。为了解决数据传输的安全,

我做了点特别的处理:对请求体和响应结果进行RSA加密(如果服务端

返回的数据稍稍过大,这个RSA严重影响客户端解密,后来我换成了

AES,所有请求为POST请求,所以APIURL后面没有带参数,你也

看不到任何请求相关的信息。

1.4数据库设计

根据需求和原型设计,数据库的设计大概需要两周时间。其实一周基本

搞定了,但为了考虑充分,留出一周时间来检验和调整。数据库E-R图

略。

2Android客户端

2.1基本结构

Android本身就是MVC,所以我不打算引入MVP或MVVM。我的理念

是职责分层,快速推出Android1.0。主要的包结构如下:

工程的搭建和包的划分有各种各样的,适合自己的就行了。想讨论或想

看别人怎么做的,点击这里:A

文档评论(0)

166****9181 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档