- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
最近下载
- 不锈钢管道安装施工与方案.doc VIP
- 喜茶运营管理手册和员工操作管理手册.doc VIP
- 施工总包合同.docx VIP
- 土木专业英国规范NA to BS EN 1991-1-4_2005+A1_2010.pdf VIP
- 软件风险管理计划.docx VIP
- 2024年秋季人教版7年级上册数学全册教学课件(新教材).pptx
- 中山市八年级下期末考试数学试题(有答案)-精品 .pdf VIP
- Module10 Unit 2 Don’t shout please!(教案)外研版(三起)英语五年级上册1.docx VIP
- 顶格筹码峰与平均成本双线合一选股公式.docx VIP
- Module 10 Unit 2 Don’t shout, please! (教案)外研版(三起)英语五年级上册1.docx VIP
文档评论(0)