毕业设计论文--手机APP设计毕业设计论文
位置: 首页 >报告总结 > 文章内容

毕业设计论文--手机APP设计毕业设计论文

2020-10-17 08:03:19 投稿作者: 点击:

 1

 手机APP设计

  日期:

 2015.05.11

 第 1

 页 共

 54

 页

 2

  摘要

 当前信息化高速发展,人们社交日趋紧密,各种社交软件层

 出不穷,而且人们越来越注重社会个体的生活及创意的展现

  与记录。在这种展现个体生活与创意的主题上,手机

 app 市

 场仍存在极大的市场潜力。我们的创意世界

 app 基于此而设

 计,它是一款兼具社交性、游戏性、实用性的

 app。用户可

 通过原始模板或在线购买模板建造虚拟世界,并用自己创造的图画或文字加以填充,可记录生活,可展现创意,让用户充分享受“创世”与展现自己独特生活的快乐。我们的产品

 整体以缤纷绚烂色彩为主,象征大千缤纷世界,界面简洁婉约,整齐紧凑,背后却是内容丰富多彩的用户世界,给予用

 户简便却又不失为简单的体验效果。同时,我们的

 app 激发

 用户的创造性思维及对生活中点滴美好细节的关注,提高用户的文笔水平与艺术修养。

  第 2

 页 共

 54

 页

 3

  目录

 1. 项目概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 4

 2. 概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 12

 3. 技术支持。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 17

  4. 附录。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 43

  5. 问卷调查。。。。。。。。。。。。。。。。。。。。。。。。。。

 44

 6. 设计中遇到的困难和解决方案。

 。。。。。。。。50

 7. 设计体会。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 52

  第 3

 页 共

 54

 页

 4

  1. 项目概述

 1.1 项目目的及内容我们的作品主要是面向那些希望留下生活中美好回忆的那些人。

 因为每个人或多或少都有一些美好或者痛苦的记忆,但这些都是

  第 4

 页 共

 54

 页

 5

 这的怀恋以及记录下来的。而且用户可以那个根据自己的爱好及习惯创建自己的世界,并且可以在里面留下自己的回忆以及想说的话。

 内容就十分简单,初始时你可以根据自己的喜好及心情构建自己的世界,然后可以在里面附上自己的图片以及想说的话,可以永

 久保存下来, 并且可以分享到当前的一些主流聊天工具, 比如 QQ,微信。可以跟大家分享你的世界级心情。当然还有你系统推送功能,随时了解别人以及其他世界的动态,以及推荐一些精彩的文章借故事。当然还有一些付费功能功能,比如买一些炫酷的皮肤来装饰你的世界,主要是让玩家享受自己的世界,并让他们有成就感。

 1.2 项目分析 1.2.1 行业背景分析 1

 市场背景

 1.1

 电子游戏,是指人们通过电子设

 备,如电脑、电视游戏机等,进行游戏的一种娱乐方式。电子游戏按

 照玩游戏的终端设备来分类主要分为电脑游戏,

 电视游戏,和便携游

 戏。电脑游戏是指通过电子计算机来玩的游戏。

 而电脑游戏根据是否

 连接网又分为单机游戏和网络游戏。

 电视游戏是指用游戏机连接电视以电视屏幕为显示器的游戏。便携游戏是指在便携的移动终端如手 机, PAD 等上来玩的游戏。

 1.2

 电子游戏的发展

 1.2.1

 国际电子

 游戏的发展

 电子游戏产业的发展最早是从美国开始的

 , 很快扩展到

 全世界。电子游戏在日本发展很快

 , 到 80 年代末,日本游戏产业一年

 的经营收入超过

 200 亿美元 , 比他们的汽车工业一年的收入还多

 , 引

 起世界轰动。美、日、英、法、德、加拿大等世界经济强国,都把游

 戏产业作为本国的重点产业来发展。

 电子游戏比传统的休闲娱乐手段更具有科学性、 互动性 , 消费者犹如身临其境 , 能充分感受到它的逼真性和刺激性,又能锻炼人的体能和智能 , 同时还能使消费者得到心

 理满足,因而它成为目前人们最受欢迎的休闲娱乐方式之一, 能进入 千家万户拥有巨大的消费市场。

  1.2.2

  中国电子游戏发展 中国电 子游戏产业的发展,是从上个世纪的 80 年代末开始兴起的,市场展 现过的有大型机游戏、家用游戏、掌机游戏、

  PC 机游戏、动漫游戏、 网络游戏、手机游戏等几大类游戏。

 80

 年代末是大型机游戏时代

 ,

 主要经营游戏厅。

 90 年初家用游戏和掌机游戏发展较快 , 主要产品面向家用。到了 90 年代中期,个人计算机普及很快 , 因此 PC 机游戏比较流行。

 随着网络技术的发展 , 从 2000 年开始盛行网络游戏。

 现在 , 网络游戏发展很快 , 是目前游戏产业中规模较大的一个种类。最近几 第 5

 页 共

 54

 页

 6

 年 , 手机游戏、动漫、卡通又开始迅速发展。游戏产业发展很快

 ,

 游

 戏种类不断变化。

 1.3

 游戏行业市场分析及趋势

 随着游戏技术的

 发展游戏市场也在不断的变化。

 早期的电视游戏占有绝大市场, 而电脑游戏出现后又占领很大的市场, 现在智能手机平板电脑的发展又使便携游戏有了爆炸式的增长。

 但是 , 一种新游戏的兴起 , 并不表示旧的游戏被取代或者退出 , 许多旧的游戏仍然具有很强的市场和生命力。

 总体上游戏市场上呈现的是新旧游戏并存 , 互为发展的格局。

 1.4 云游戏 1.4.1 什么是云游戏 云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下, 所有游戏都在服务器端运行, 并将渲染完毕后的游戏画面压缩后通过网络传送给用户。

 在客户端,用户的游戏设备不需要任何高端处理器和显卡, 只需要基本的视频解压能力就可以了。可以简单概括为:所有的游戏运算处理都由云端服务器完成,再通过视频压缩以及网络传输技术, 只把视频画面传给用户, 用户的操

 作指令通过网络回传给服务器,如此循环。

 1.4.2

 云游戏的优势

 作为一名发烧级电玩爱好者需要的一个特质是什么?要有钱!

 需要购

 买先进的游戏主机。购买高级的显卡 CPU,频繁升级硬件,购买游戏软件。等等 ??而云游戏让普通玩家也能享受发烧级体验。

 不需要高硬件, 就可以享受高硬件带来的游戏体验不

 需要单独安装游戏, 就能玩所有云游戏授权的游戏。

 云游戏带来的势是显而易见的,用户不需要为玩游戏而花费费用在游戏硬件和软件上。只需要购买云游戏服务就能享受更好的游戏体验。

 云游戏这个通

 过网络来游戏的方式看上去非常让人兴奋!

 很可能会是未来游戏业的

 重点发展方向。国外也类似的云游戏平台譬如

 GaiKai 、 Geforce

 GRIDOnLive 等。

 1.4.3

 云电视游戏云游戏的特点是瘦终端。

 那么只需要简单的设备就能实现在电视屏上玩需要高硬件支持的游戏。通过一个简单的盒子就可以玩 PC、PS3、甚至大型网络游戏。用

 坐在电脑前, 随心所欲的享受电视屏高视觉和听觉效果, 以及游戏的无尽乐趣。从娱乐效果上讲,云电视游戏将比其他的屏游戏更具优势。

  1.5

 云联科技 国内云游戏服务供应商是云联科技。

  第 6

 页 共

 54

 页

 7

  主要做云游戏平台的设计、开发和运营。

 公司核心团队

 主要由在云计算、视频、游戏、移动互联网等领域拥有多年行业从业经历的专业人才组成。

 目前云联云游戏平台现在已经开始正式运营,

 向全国用户提供游戏服

 务

 。

 2

 概述

 2.1

 云服务平台引领电视互联网的到来

 云服务平台通过对应用页面的流化处理,以视频流的方式为机顶盒提供应用页面,使普通机顶盒访问互联网应用成为可能。

 云服务平台将成为了机顶盒访问互联网应用的入口,不同厂家、各种配置的机顶盒

  (

 包括单向广播式机顶盒配上带外交互遥控器、基本交互式机顶盒和增强交互机顶盒)

 都可以访问接入到云服务平台的各种互联网应用,如视频点播、游戏娱乐、

  电视商务、信息服务等,云服务平台将引领电视互联网时代的到来。

 电视云游戏丰富平台内容和高用户体验

 无论是互联网,还是电视,

 游戏娱乐功能都是一个重要的功能。云服务平台作为一个多元化

 的平台,云电视游戏可以满足用户游戏娱乐需求,带来高用户体验。

 第 7

 页 共

 54

 页

 8

 2.2

 合作关系

 基于云服务平台的业务加载平台,是一个开放的互联网应用承载平台,所有希望利用电视机

 屏幕拓展其业务的互联网企业都可以参与其中,主导其自有业务的运营,在复制其成功经验

  的基础上不断探索电视机终端的服务特性, 提供能真正让用户满意的服务。

  合作伙伴云游戏需要解决的问题

 1.

 服务器端资源开销极大;

 2.

 对网络环境要求极高;

 3.

 服务器端资源消耗大、带宽开销极大;

 4.

 某些游戏对响应延迟要求十分苛刻、网络稳定性要求很高等。

 5.

 成品不够成熟用户群还不具规模。

  华数优势

 1.2.2 典型用户分析

 我认为我们这个软件主要是吸引那些喜欢自己创造

  第 8

 页 共

 54

 页

 9

  和爱好游戏以及那些想将自己的人生经历记录下来的人因此适用范围极广不管你是小孩还是上班族或者是

 已经退休的老人, 只要你会一点电脑知识, 就可以随心的使用这款软件, 切该软件不会上瘾。

 切具有极强的使用性及价值。

  1.23

 同类型

 app

 分析

  第 9

 页 共

 54

 页

 10

  Lofter

 :原创内容多,且不乏高质量作品。平时自己可以写

 些随想,拍些日常,偶尔看看

 wanimal 。

 出品公司:网易

 出品时间:

 2012.11.12

 总评价量:

 3446

 美拍 :短视频版的美图秀秀!近乎能把一些拍得很渣的视频

  处理得很有唯美

 MV 的 feel~~

  第 10

 页 共

 54

  页

 11

 出品公司:

 Meitu , Inc.

 出品时间:

 2014.4.30

 总评价量:

 108030

 Flipagram

 :用照片做

 MV 的一款

 app!照片张数没有限制,

 BGM 可以选自己手机里的音频,也可以用自己录音。

 出品公司:

 Flipagram

 , Inc

 出品时间:

 2014.6.12

 总评价

 量:

 371

 用家 :相当文艺的照片处理

 app!滤镜和水印十分讲究,简

 单几步就能让自己的照片变得更有格调。

  出品公司:

 Donglan Zou

 出品时间:

 2014.3.18

 总评价量:

 229

 蝉游记 :旅游随记

 app!以文字,照片,时间,地点作为旅

 行回忆的元素,智能生成游记。随时随地记录你走过的里

 程。

  出品公司:

 Shanghai Chanyi Network Technology Co

 , Ltd

 出品时间:

 2013.6.13

 总评价量:

 3966

 path :

 UI 精美的私密社交

 app!微信朋友圈太过喧闹,不如

 重新整理一番自己的通讯录,找几个熟人组成圈子分享彼此

 最真实的生活。

  出品公司:

 path Inc

 出品时间:

 2013.4.3

 总评价量:

 12810

 第 11

 页 共

 54

  页

 12

 挖财 :要学会理财,先要学会记账。记账便捷,报表输出很直观,便于分析自己的财务状况,月光男女必备(土豪可忽

 略)

  出品公司:

 Hangzhou Caimi Technology Co.

 , Ltd

 出品时

 间:无资料

 总评价量:

 1337

 生活纪录片 :UI 小清新的一款记录

 app!图片音乐随意插入,

 可以把自己的故事做成超赞的幻灯片。

  出品公司:

 Shanghai Liba information Technology co

 。,

 Ltd

 出品时间:

 2013.10.2

 总评价量:

 680

 MindMeister

 :以思维导图的方式记录生活。除了可以整理

 一些创意想法, 还可以应用到生活中,

 例如读书笔记, 项目,

 目标管理

  出品公司:

 MeisterLabs

 出品时间:无

 总评价量:

 289

 第 12

 页 共

 54

  页

 13

  2. 概要设计

 2.1 创意来源

 首先,现代人类在节奏紧促的现代生活中难免经受种种

 生活上的压力及精神上的空虚,通常情况下相当大一部人通

 过社交或游戏来排遣压力和精神上的空虚。其次,越来越多

 人喜欢上在各种社交软件上记录和分享自己的生活或展现

 自己某一个得意的创意。事实上,很多人都有灵光一闪的创

 意,而且都有一种创造的欲望,

 会为自己独特的创意而自豪,

 乐于向人展现,却又无法及时地记录保存与人分享。我们的

  app 参考于一些记录生活的软件如我的

 365 天、回忆的时光

 及微信的朋友圈、

 qq 空间,同时参考了游戏我的世界,综合

 社交软件与游戏的特点,兼具了社交软件的记录展现特点及

  我的世界中引人瞩目的“创世”的

 idea ,吸引用户的浓厚兴

 趣,充分地满足用户游戏社交等各方面的需求,让用户既能

 享受到自己创造的快乐,又能让用户社交更加具象化、多元

 化。

  第 13

 页 共

 54

  页

 14

  2.2

 用户界面构成

  入口界面背景缤纷绚烂,引人瞩目。各模块入口却简洁

 婉约,以求方便用户使用。当然,用户也可以根据个人喜好

 自定义个人风格。在各虚拟用户世界中,各功能模块将类似

 于手游而排列于整个界面的上端,当然,功能模块在用户未

 使用时可以隐藏,这样以方便用户有更大的世界界面。

 2.3 设计表现说明

  第 14

 页 共

 54

  页

 15

 一、登陆界面

 账号:

  密码:

  登陆

 注册

 忘记密码?

  二、初始界面

 1. 世界模板

 2. 我的世界

 3. 今日亮点

  第 15

 页 共

 54

  页

 16

  4. 我的展馆

  三、世界模板界面

 初始模板

  在线模板

  四、我的世界界面

 图标 1- 我手写我心

 图标 2- 我手画我心

 图标 3- 分享 - 分享至朋友圈

 分享至 qq 空间

 分享至我的展馆

 分享至新浪微博。

 。。。。。

  图标 4- 模板导入

 图标 5- 我的成就

 图标 6- 我的会话

 第 16

 页 共

 54

  页

 17

  图标 7- 历史记录

 图标 8- 世界之门

 图标 9- 邀请好友

  今日亮点界面

 图标 1- 每日美文

 图标 2- 每日美图

 图标 3- 精彩创意

 图标 4- 英雄榜

  我的展馆

 一、上架展品

 二、上传展品

 三、今日访客

 四、展品说明及评论

  第 17

 页 共

 54

  页

 18

  3. 技术支持

 安卓环境搭建一 准备工作

 下载所需安装包,如下:

 JDK (Java Development Kit)

 Eclipse IDE for Java Developers

 Android SDK 、ADT

  二 环境搭建

 2.1 JDK

 安装

  运行 jdk-7u3-windows-i586.exe

 ,按照提示只需单击下一

  步,安装即可,安装完成后,单击

 " 开始 ",选择 "运行 " ,在

 出现的对话框中输入

 CMD 命令,打开

 CMD 窗口,在

 CMD

 窗口中输入

 java -version ,如果屏幕出现下面的代码信息,

 说

 明 JDK 安装成功了:

 C:\Users\ZC>java -version

 java version "1.7.0_03"

 Java(TM) SE Runtime Environment (build 1.7.0_03-b05)

 Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode,

 sharing)

 2.2 Eclipse

 安装

  第 18

 页 共

 54

  页

 19

  ( 1)

 Eclipse

 无须执行安装程序,解压下载的压缩文件

 eclipse-java-helios-SR1-win32.zip

 就可以用, 不过一定要先

 安装 JDK。

 本文假定

 Eclipse 解压后存放的目录

 为 D: \AndroidDevelop

 ( 2)进入解压后的目录,

 可以看到一个名为

 "eclipse.exe"

  的可执行文件,双击此文件直接运行, Eclipse 能自动找到用户先期安装的 JDK 路径,启动界面如图所示。

 ( 3)如果用户是第一次安装、启动

 Eclipse ,将会看到选

 择工作空间的提示,如图所示。

 第 19

 页 共

 54

  页

 20

  选择工作空间路径

 (用于存放工程项目文件

 ),然后单击 "OK"

  按钮,至此,

 JDK 和 Eclipse 已经安装完毕。

  2.3 Android SDK

 安装

 同 Eclipse 类似,不需要安装,解压

 android-sdk_r07-windows.zip

 文件之后就可以使用,

 我们把

 它解压到

 D:\ AndroidDevelop

 目录下

 ( 1)在用户变量中新建

 PATH

 值为:

 Android SDK

 中的

 tools 绝对路径(本机为

 D:\AndroidDevelop\android-sdk_r16-windows\android-s

 dk-windows\tools

 )

 如果有如下返回则表示安装成功:

  C:\Users\ZC>android -h

 Usage:

 android [global options] action [action options]

 第 20

 页 共

 54

  页

 21

  Global options:

 -v --verbose Verbose mode: errors, warnings and inform

 ational mes

 inted.

 -h --help

 Help on a specific command.

 -s --silent

 Silent mode: only errors are printed out.

  2.4 ADT 安装

  Android

 为 Eclipse 定制了一个插件,即

 Android Development Tools (ADT),目的是为用户提供一个

  强大的综合环境用于开发

 Android 应用程序。

 ADT 扩展了

 Eclipse 的功能,可以让用户快速地建立

 Android 项目,创建

  应用程序界面, 在基于

 Android 框架 API 的基础上添加组件,

 以及用

 SDK 工具集调试应用程序,

 甚至导出签名 (或未签名)

 的 APKs 以便发行应用程序。

 2.4.1 第一种情形

 ( 1)打开

 Eclipse, 在菜单栏上选

  择 help->Install New SoftWare

 出现如下界面

 :

  第 21

 页 共

 54

  页

 22

 ( 2)点击

 Add 按钮 ,出现如下界面

  ( 3)输入网

 址 : https://dl-ssl.google.com/android/eclipse/ ( 如果出错,

 第 22

 页 共

 54

  页

 23

 请将 https 改成 http) 名称 : Android ( 这里可以自定义

 )点击 OK,

 按提示向下操作,直到出现如下界面

 ( 4 )选择 I accept the terms of the license agreements 点击 Next,进入安装界面

 第 23

 页 共

 54

  页

 24

  ( 5 )安装完成后,出现重启界面

 点击 Yes 按钮,重启

 Eclipse

 2.4.2 第二种情形

  第 24

 页 共

 54

  页

 25

  打开 Eclipse, 在菜单栏上选

  择

 help->Install New SoftWare

 ,出现和第一种情形相同界

 面。

 点击 Add 按钮 ,出现如下界面

 点击 Archive ,添加 ADT-16.0.1.zip,并填上名称

  “ Android Plugin ”

 然后点击确定

  2.4.3 配置

 安装插件后,还需要做如下配置才可以使用

 Eclipse 创建

 Android 项目,需要设置

 Android SDK 主目录。依次单击

 "Window → Preferences" 项,

 第 25

 页 共

 54

  页

 26

  在弹出的界面左侧可以看到

 "Android" 项,选中

 Android

  后,在右侧设定

 Android SDK 所在目录为

 SDK Location(D:\AndroidDevelop\android-sdk_r16-windo

 ws\android-sdk-windows)

 ,单击 "OK" 按钮完成安装。

 2.4.4 安装需要的包

  在 Eclipse

 中。选择

 Windows > Android SDK and AVD Manager

 ,出现如下界

 面

  选择需要的平台等包(将

 2.2 和 2.3 版本都选中),点击

 Install Selected

 ,出现如下界面

 第 26

 页 共

 54

  页

 27

 选择 Accept All ,点击

 Install ,开始下载安装

  安装完成后有如下提醒,

 并可点击

 Installed Packeages

  2.5 创建 AVD (Android Vitural Device)

  为使 Android

 应用程序可以在模拟器上运行,必须创建

 AVD 。

 在 Eclipse 中。选择

 Windows > Android SDK and AVD Manager

 点击左侧面板的

 Virtual Devices

 ,再右侧点击

 New

 填入 Name ,选择 Target 的 API , SD Card 大小任意,

 Skin 要选择合适,

 Hardware

 目前保持默认值

 第 27

 页 共

 54

  页

 28

  点击 Create AVD

 即可完成创建

 AVD

 至此, android

 应用开发环境搭建完毕!

  用户信息存储

  1 、直接使用单机

 Mysql

 来解决数据层的问题

  第 28

 页 共

 54

  页

 29

 大部分开发者最初直接用

 Mysql ,因为这个阶段应用开发的

 主要矛盾并不是性能压力、容灾等方面,而是如何快速的实

  现功能和上线。而业界流行的

 LAMP

 架构具备上手快的优

 势,这时的数据层直接用单机

 Mysql

 就搭建起来了。

 ( 1)好处:

 Mysql 是一款非常知名的开源数据库软件,它功能丰富的、工具齐全,由于在全世界应用得非常广泛,基本上遇到任何问题都能够很快的找到讨论者和解决办法。同时在应用发展的早期数据库压力小,除了提供在线服务外,数据库往往还可以用来进行数据统计和经营分析。

 ( 2)不足:数据库需要专职的 DBA 管理人员进行维护工作(如数据备份、主从切换等),对于外部开发者来说,往往是开发人员兼任 DBA 的角色,风险固然有,但由于设备数量少,一般不会出现大问题。只是偶尔的设备故障、软件配

 置不当和

 Bug 等问题,对应用会有影响, 但总体上能够承受。

 2 、 使用 Memcached

 来分担读压力, 使用 Mysql

 来进行

 持久化 应用接入开放平台后,用户会增长非常快,整个系统迅速地 要接受新的考验。

 Mysql

 主要利用本机内存进行缓存,受单 机物理资源限制,难以胜任并发读写较高高的应用场景,而

 第 29

 页 共

 54

  页

 30

 很多 Social Game

 都有同时高并发读写的特点,

 这时会发现

 应用响应速度明显变慢。

  这种情况下常见做法是在

 DB 层之前加

 Cache ,目前最常用

 的 Cache

 就是 Memcached

 ,通过增加

 Cache

 设备和简单

 改造,可以快速上线。现在的数据层方案变成了

  Memcached

 缓存 +Mysql

 持久化。

 Memcache

 应对读请

 求, Mysql 应对写请求,效果立竿见影, DB 压力迅速降低。( 1)好处:

 Memcached 同 Mysql 一样,也是一款业内知名的开源软件。它具有接口简单、运行稳定、配置方便、性

 能出色的特点。

  ( 2)不足 :又多了一个模块需要开发者自己运营。

 而 Cache

 层机器如果出现问题的话,可能会导致缓存丢失,命中率大幅下降,一旦出现这种 DB 层就非常危险,很容易产生严重 的雪崩效应, 恢复非常困难。

 另外,由于 Cache 只能用于应对读的压力,解决不了高并发写的问题,这个才是 Social Game 发展过程中最让人头疼的问题。

 3 、使用分布式

 MemCached

 和分库分表的

 Mysql

 集群方

 案

 第 30

 页 共

 54

  页

 31

 单机的 Memcached

 和 Mysql

 眼看着抵挡不住日益上

 升的访问压力了,开发者心里是有喜有忧,喜的是应用得到

 了用户的喜爱,忧的是要命的数据层又要面临严峻压力。既

 然发展到这个地步了,对数据层进行适当重构是必须的,业

  界关于分布式的方法可以借鉴的甚多,

 很多 Memcached

 的

 SDK 库已经支持分布了,

 Mysql

 也有分库分表的设计办法。

 经过一段时间的代码重构和数据搬迁后,数据层已经是个分

 布式的了。

  ( 1)好处:现在的系统能够具备初步了较好的扩展性,可以根据用户活跃和访问情况进行扩容,用分布式的问题解决了单设备读写能力受限的困难

 ( 2)不足:虽然实现了系统的可扩展,可这并不意味着我们可以高枕无忧了。应用需要密切关注各服务的容量。对于

 Cache

 层来说,机器死机、扩容操作会导致缓存丢失,带来

 命中率大幅下降,而一旦

 DB 压力过大,可能很长一段时间

 都缓不过劲来。

 而 DB 层的容错和扩容更是是令人神经紧绷,

 主备切换需要人工干预,还需要前端修改数据库接入

 IP、进

 行授权等若干配置;而扩容和数据搬迁操作一般只敢选在夜

 深人静的时候进行,一旦发现问题也要顶着巨大的压力去回

 第 31

 页 共

 54

  页

 32

 滚和恢复数据,更是容易忙中出错。除此此外,要不要提前

 准备足够的资源也是令人十分纠结,准备多了会浪费资源,

  准备少了可能又满足不了业务的快速发展。而且

 Social

 Game

 的生命周期相对较短,往往数周之内迅速达到用户峰

 值,需要频繁的数据扩容和迁移,吃掉大量设备资源,接着

 就步入稳定和衰减期,又需要数据的合并和资源推出,对资

 源供应的要求非常高。而且此时的设备多,维护更加复杂,

 把如此庞大的精力都投在数据层显然是不明智的。

 其实,我们可以活的更好的!

  4 、使用

 CMEM

 云存储解决方案

 由于 Social Game

 的 SNS 特性, App

 在拥有一定的用户规

 模后,数据量大,读写请求非常多,读写比接近,大量的写

  到数据层,数据层由于

 IO 原因抗不住写压力。针对这类情

 况和腾讯在数据层研发过程中的实际经验,我们目前提供了

 两款高性能、低成本的云存储产品,分别是:

  ( 1)

 NoSQL

 的云存储产品:

 Cmem 。

 Cmem

 提供极高的

 并发读写能力,作为一款云存储产品,对用户透明的实现了

 自动容错、平滑扩容、数据备份、资源复用等一系列存储层

 第 32

 页 共

 54

  页

 33

 的必要功能。

 将在线数据以

 Key-Value

 形式存放和访问,

 解

 决了大并发读写和令人头疼的数据层管理问题。

  CMEM

 的介绍和相关讨论请见:

 http://yun.tencent.com/bbs/forum.php?mod=forumdi

 splay&fid=2

 CMEM

 全称为

 Cloud Memory Storage

 ,是腾讯提供的高

 性能内存级持久化存储服务。

 CMEM

 基于一个存储键

 / 值对的

 hashmap

 ,具备内存级别

 的访问性能,并保证数据的持久性。

  ( 2)

 SQL 的云存储产品:

 CDB 。

 CDB 是兼容

 Mysql

 协议

 的云存储产品, 以实例的方式进行

 Mysql

 数据库的供给, 并

 将数据迁移、实例扩容、数据备份等工作都放在了云中,对

  逻辑层透明,减少了开发者对于

 DB 层的维护成本。

 CDB 的介绍和相关讨论请见:

 http://yun.tencent.com/bbs/forum.php?mod=forumdi

 splay&fid=36

 CDB 全称为

 Cloud Database

 ,是腾讯提供的分布式数据存

 储服务。

 第 33

 页 共

 54

  页

 34

 CDB 提供了高性能, 高可靠的

 MySQL

 集群服务, 并且整合

 了备份,扩容,迁移等工具。

 这个时候的设计模式是,

 将大量需要在线高效访问的数据通

  过 Key-Value

 的形式放在

 Cmem

 中,将少量需要

 SQL 功能

 的数据放在

 CDB 中。

 ( 1)好处:

 Cmem

 完全兼容

 memcached

 协议, CDB 兼

 容 Mysql

 协议,这样对于开发者来说基本无门槛。

 在开发和

 运营过程中, 开发无需关心存储层的数据安全、

 容错、扩容,

 这些问题全部在云端解决。

  ( 2)不足:Cmem 是 Key-Value 存储,用于应对在线数据的实时高效访问, 不具备传统 SQL 存储的一些常用功能, 如 实时统计、分析等。但实际上,大部分应用在使用 Mysql 作为存储层使用的时候,基本上也都是同时只对一条记录进 行操作,这正式

  Key-Value

 的使用场景。如确实有 SQL 要 求并且数据量适中、性能要求不高的数据,可以使用 CDB 解决。

 第二部分:云存储——数据层解决方案

  看过应用开发过程中存储层方案变迁后,回到项目起始阶段,如果在应用开始设计时就考虑使用云存储来解决数据层

 第 34

 页 共

 54

  页

 35

 的问题是非常明智的。一来可以快速开发,使开发者更加聚

 焦于应用逻辑开发和产品运营;二来减少数据层后期扩容、

 运维成本,减少故障概率。我们再从各个纬度来全面看下数

 据层是否使用云存储的优劣。

  自行设计和

 使用 Cmem 、

 解决数据层

 CDB 等云存储方

 问题

 案

  熟悉 LAMP Cmem

 兼容

 架构和业界 MemCached

  协 开 知名开源软

 发 议 件如 CDB 兼容 Mysql 门 Memcache

 槛 协议 d 、Mysql

 即

 无门槛

 可

 研需投入专业

 无需关注数据层

 发人员进行数

 具体实现,通过云

 效据层的设计

 存储解决数据层

 第 35

 页 共

 54

  页

 36

 率和开发工作

 性能、容量、安全及可用性问题, 资源可投入到应用开发

 1、数据层开

 发要求高, 设

 计时的疏忽 1、成熟可靠的存可能带来运 储层方案,保障数

 维中的重大

 据安全和可用性;

 运

 数据灾难;

 2、全面的监控告

 维

 2、经常的重

 警、自动容错机

 质

 构和各类数

 制;

 量

 据运维操作

 3、云端资源池共

 带来额外风

 享,支持业务的极

 险;

 速成长

  3、业务极速 增长带来资 源的压力, 经

 第 36

 页 共

 54

  页

 37

 常会导致系

 统过载

  1、以实际设

 备投入来计

  算,即便只用 1、以实际使用资

 了 1/10

 的资 源来核算;

 源; 2、云存储资源的 运

 2 、需提前准

 复用,资源单位成 营

 备资源来应 本小于直接使用 成

 对可能的业 物理资源; 本 3、专业数据层研 务突发;

  3、业务开发

 发团队,从应用到

 人员兼顾数 硬件的极致优化据层优化, 性能提升有限

 表 1

  第 37

 页 共

 54

  页

 38

 可见,无论从性能、效率、质量、成本各个方面来看,对于第三方开发者来说,云存储都是更优的选择,不过这里还是有些研发模式的转变的。这一部分将就如何在云存储下进行数据层的设计进行一些分享。

 我们分析了 App 常用的数据类型、场景和访问情况,有一些基于 Key-Value 的 App 数据设计参考方案供参考。目前对于各类应用来说,所用到的主要数据类型大致有以下几种:

  数

 读

 修

 数据

 示例

 据

 取

 改

 类型

 量

 量

 量

 用户 昵称、等级、 1 中 多 多资料 金钱、经验

 背包 农场游戏的田 2 大 多 多数据 地、果实等

  3Fee

 “小明摘了我

 大

 少

 中

 第 38

 页 共

 54

  页

 39

 ds

 的菜” “小白帮我捉了虫”

  留言 好友留言、系 4 小 少 少信息 统消息

 购买 用户装饰、游 5 小 少 少物品 戏道具

 成果 某用户升级到 6 大 少 少归档 30 级

 好友排名、游 7 其他 中 多 少

 戏排名

  表 2

 除了第 7 点的排序工作外,通常应用对各类数据的在线访问都是以 Key 的形式来访问 Value ,并不会用到 SQL 功

 第 39

 页 共

 54

  页

 40

 能。比如用户经验值成长了, 我们根据用户 id 取出用户资料,修改经验值并设置回去就行了。特别是前几类高访问量的数据,非常适合 Cmem 的高性能存储场景。同时,将不同类型的数据分开存放在不同的数据表中是有好处的,同类数据的局部化可以方便 Cmem 根据不同模型进行更好的优化。

 那么有没有场景是涉及到多条记录操作的,答案是有。

  比如农场游戏中

 A 摘了好友

 B 的萝卜, A 的数量要增加,

 B

 的要减少,就涉及到多个记录的修改了。这个时候在分布式场景中如果要使用事务是极其不理智的,即便能实现(没有分库分表),在实际使用的性能消耗也非常高,基本上不可

 承受。其实上是有折衷的方案的,比如先增加

 A 的数量,再

 减少 B 的数量,这时出现问题的概率非常小,而且出现了也

 不会影响游戏效果和用户体验,但换来的却是系统扩展性和

 性能的大幅提升。在实际使用中,有的应用自己简单实现了

  一个非常轻量的

 transaction

 模块,效果也非常好。

 针对表 2 中的各类数据类型, 我们给出了建议使用场景,

 这里主要是根据访问密度和数据量

 2 个纬度来衡量 ( Cmem

 具备更高的性能和扩展性,

 CDB 提供 SQL 支持),下表中

 第 40

 页 共

 54

  页

 41

 “访问密度高”表示

 >500iops/GB

 ,“数据量高”表

 示 >150GB

 。

 示

 推荐云存

 数据

 例

 访问密度

 储方案方

 量

 数

 案

 据

 背

 包

 数

  高

 高

 Cmem

 据

 Fe

 ed

 s

 用

 高

 低

 Cmem

 户

 资

 第 41

 页 共

 54

  页

 42

 料

  Cmem (数 成

 据量有持

 果

 低

 高

 续增长的

 归

 需求)

 档

 CDB (数据 好友量相对固定 排名、且有 SQL 的用户需求)

 排名

 购

 买

  低

 低

 CDB

 物

 品

 留

 言

  第 42

 页 共

 54

  页

 43

 消

 息

  表 3

 根据上述一些原则,结合实际的应用策划,如果在早期能合理的进行数据层的规划,那么就可以避免在后期遭受巨

 大的数据层运营挑战。那么, Cmem 和 CDB 能解决所有的数据层问题吗,显然它们不是万能的,不过它们能解决我们目前在线上业务中最棘手的在线数据访问的根本问题。解决了这个,其他问题都好办了。如果还有什么疑问,请访问 yun.tencent.com ,那里有更多的信息和解答。

 第三部分:应用云存储的一些遗留问题

  1、事务操作

 应尽量通过业务逻辑来避免事务,

 在 Social Game

 开发

 中使用事务是极其不明智的行为,当然支付类操作除外,不

 过这个不属于游戏数据的在线访问,腾讯云平台也提供了相

 应的解决方案; 2、统计分析

  第 43

 页 共

 54

  页

 44

 提供数据导入到 DB 的功能,但 DB 分析能力终归是有限的,计划日后提供类似 MapReduce 原理的分析工具; 3、游戏运营

 比如需要对金钱 <100 的用户统一送 2000 金币,如果碰到这类问题,分析系统 + 操作工具应该是个不错的选择,直接去数据库修改太危险了,不是吗?

 4、用户排名,搭建额外的排名系统,效率更高

 设计个专用的排名系统把,逻辑实现即可,既高效又不影响在线数据的访

  4.

  附录

 一.分组

  姓名 学号 任务 黄俊阳 201430260143 设计及论文撰写 何伟龙 201436260123 资料收集及论文撰

  写 陈清睿 201436260048 问卷调查及论文撰

 第 44

 页 共

 54

  页

 45

 写

  林伟杰

 201430260302

 背景调研及论文撰

 写

 二.参考文献

 http://blog.csdn.net/pku_android

 )

 http://wenku.baidu.com/view/1ebfba611ed9ad5

  1f01df294.html

 5. 问卷调查

  你想创造属于自己的世界吗?-自定义查询

  作者:

 1178084156

 时间:

 2015 年 5 月 16 日

 调查背景:

 参考资料

  调查方法:

  开始时间:

 2015-5-16

 结束时间:

 2015-5-16

  样本总数:

 55 份

  原始数据来源:

 http://www.sojump.com/report/

 5005422.aspx?qc=

  本报告分析内容:

 自定义查询

  本报告样本筛选规则:

  本报告包含样本数量:

 55 份

  数据与分析:

  第 45

 页 共

 54

  页

 46

 第 1 题

 你平常喜欢用文字或图片记录生活吗?

 [单选题 ]

  选项 小计 比例 喜欢 27 49.09% 还可以 24 43.64% 不喜欢 4 7.27% 本题有效填写人次 55

  第 2 题

 你喜欢文字还是更喜欢图片记录生活?

 [单选题 ]

  选项 小计 比例 文字 21 38.18% 图片 29 52.73% 其他 5 9.09% 本题有效填写人次 55

 第 46

 页 共

 54

  页

 47

 第 3 题

 你愿意与别人分享生活中的点点滴滴吗?

 [ 单选题 ]

  选项 小计 比例 愿意 37 67.27% 不愿意 18 32.73% 本题有效填写人次 55

 第 47

 页 共

 54

  页

 48

 第 4 题

 你愿意创作一个属于自己的虚拟世界吗?

 [ 单选题 ]

  选项 小计 比例 是 31 56.36% 否 24 43.64% 本题有效填写人次 55

 第 48

 页 共

 54

  页

 49

 第 5 题

 你想了解别人的生活吗

 [单选题 ]

  选项 小计 比例 想 23 41.82% 不想 9 16.36% 随意 23 41.82% 本题有效填写人次 55

 第 49

 页 共

 54

  页

 50

 第 50

 页 共

 54

  页

 51

 第 6 题

 你平时投入到微信,微博等社交平台的时间

 [ 单选题 ]

 选项 小计 比例 1 小时 25 45.45% 2 小时 20 36.36% 其他 10 18.18% 本题有效填写人次 55

  第一题:了解人群中对产品可能感兴趣的比例;第二题:为了确定产品中文字和图片那个应该占主导地位第三题:为了确定产品社交功能受欢迎程度第四题:了解该产品的潜在用户

 第五题:测试该产品中世界之门的功能受欢迎程度第六题:为了确定人群对同类产品的热情结果分析:

 第一,三,四,六题显示,相当大一部分人对我们的产品有极大地兴趣,第二题显示,应该侧重于图片第三,五,六题显示我们应该要加倍重视产品的社交功能

 第 51

 页 共

 54

  页

 52

 6、设计中所遇困难和解决方案

 在设计创作过程中遇到困难是在所难免的,因为设计本身就是一种困难,发现并解决困难需要一个过程。在这次设计过程中,我和我的小组成员们遇到了不同种类的困难,但最后都想出了解决方法,我们认为,发现并解决困难的过程对于提升我们的设计素养有很大的帮助。

 我们小组遇到的最大的困难是,文本和图片如何完美地契合在一起。这样产品才能美观实用,给用户最好的体验,为此我们做出了很大的努力。

 每次开会讨论的时候我们都会认真讨论这个问题,每有一个新界面出现,我们也会首先讨论这个问题。经过查阅相关资料,激烈的小组讨论以及向组外同学请教,我们得出了以下几点,以求将产品做得更好:

 1. 文本和图片按场景分配,辅以相应氛围的背景和文本框及饰件,以求最为和谐的气氛和良好的用户体验。

 2. 必要时加上适当的背景音乐,增加文本及图片的表现力,但是提供开关以适应无声场合。

 3. 应用 GIF 或 Flash 小动画,主要是对配合表现主要图片的次要饰图的使用;动态显示文字,主要是对引入

 第 52

 页 共

 54

  页

 53

  文字和短句的使用。这样不影响主要内容的呈现,因

  为主要图片并不变动,

 整体显得稳定, 主体文字亦然;

  而动态的引入文字及短句介绍则凸出了主要内容,并

  且带来有层次感的用户体验。

  7、设计体会

  本次设计对于我们小组每一个成员而言,都是生平第一次,遇到的困难和阻碍不可谓不多,虽然没能把每个困难都结局,把每个缺陷都改正,但整个过程还是让我们学到了很多以往学不到、也没接触过的知识,我们认为,这远比设计本身要重要,前者是渔,后者是鱼。

 最开始构思的时候,我们基本上没有着手之处,因为以往一直是用别人设计的 APP,从未试过甚至从未想过能自己设计一款实用的 APP。然而,我们的思维是活跃的,我们从生活出发,从生活中找灵感,终于想出了“创意世界“这个想法。

 “创意世界”最初的概念是不完全的,然而经过我们小组成员多次讨论修改之后,才改正了许多不合理的地方,从而让 APP 向着一个正确的方向发展。

  第 53

 页 共

 54

  页

 54

 第 54

 页 共

 54

  页

猜你喜欢
推荐图文