前言:
本文介绍一个社交app的完整设计开发流程案例
一 、功能架构
二 、移动端架构概述
三、服务端架构概述
敏感词检索
,例如脏话内容布局各不相同
)
说实话,这个项目的文件夹已达1.5G,安装包混淆编译后27M,我在写之前,就在想要怎么把它摊开来讲,想想真的很复杂,脑子东西东西太多。
static final int/String
或 65535限制,在使用框架的时很多时候,都是只使用其中的一个功能。 只保留了一个
,不包括第三方SDK,例如OneKeyShare,保留的是 imageLoader
,保留它的原因是,它的功能就是显示图片,而对于图片这类数据,可以说是占内存最大的大头,我能力有限,暂时还不能利用系统库封装好个比imageLoader更好的库,同类的库还有 picasso、fresco、volley等,曾经也引入过 fresco,比imageLoader多了很多API,考虑到框架的成熟性最后没使用,volley就不仅仅是显示个图片那么简单了,还有网络请求,上传等,网络请求和上传的代码这部分因为我自己能够写出还不错的几个函数,所以为了减少不必要的消耗,没使用volley。网络请求和上传的代码这部分
,如果自己封装好,且封装得不错,就不需要再去使用框架。视频播放器
原生
轻量级
) 重量级
) 网页
我最终的选择
由于我网络请求这块没使用框架,所以线程的选用时 Thread + Handler
组合或AsyncTask
,需要明确一点,AsyncTask 比 Thread + Handler 更耗资源,不过使用起来比较方便。
Android 的数据存储方式有5种,分别是 SharedPrefrences、File、SQLite、ContentProvider、NetWork。我采用的是 SharedPrefrences 和 File即是文件存储,其中
加载
全部是自己基于 HttpUrlConnection 封装的工具类。
逻辑
帖子分享,我采用的 OneKeyShare SDK,之所以使用它,是因为它把绝大部分的平台的SDK分享接口都集成了,例如微信、QQ、QQ空间、新浪微博、知乎等等等等。
手机登录
第三方登录
编辑
文字部分
内容过滤
要过滤掉某些敏感词,防止色情或其他内容出现
用户位置获取
使用百度地图API
图片部分
鉴黄图,这是最重要的
!视频录制
上传
线程池
上传,一来方便控制并发数,二来方便回收内存
选用了安卓5.0 的 SwipeRefreshLayout + RecyclerView,原因是 SwipeRefreshLayout 自身带有下拉刷新,最早的时候使用的是 PullToRefresh 开源项目。RecyclerView 重写onScroll() 就可以搞定加载更多,还有一个原因,RecyclerView 自带有瀑布流布局属性。
早之前我使用的是 LinearLayout 实现的,不断地 addView 再 remove,致命的缺点是内存消耗不合理。
代码结构
帖子的类型有三种
,这三种帖子除了内容部分布局不一样,评论布局是一样的,分享、删除等按钮也是一样的,当然,也可以自己通过接口改变评论布局。所以在类的集成方面,我采用了三个抽象类父类
,子类只需要传进入自己布局、实现评论数据适配器 Adapter 即可。
逻辑
布局
采用的布局是 HeaderView + CommentView,HeaderView 用于显示帖子的所有内容含帖子点赞,CommentView 用来显示用户的评论
消息提醒采用了极光推送的SDK实现
收藏、删除、举报,这些操作进行一次get操作,传递帖子的id给服务器,服务器处理完毕后,就做对应操作
其他功能能的实现基本同上述。
关于:中科研拓
深圳市中科研拓科技有限公司专注提供软件外包、app开发、智能硬件开发、O2O电商平台、手机应用程序、大数据系统、物联网项目等开发外包服务,通过IT技术实现创造客户和社会的价值,成为优秀的软件公司,通过客户需求导向、开放式创新、卓越运营管理等战略的实施,全面打造公司的核心竞争力。优秀软件外包公司、软件开发公司,联系电话400-0316-532,邮箱sales@zhongkerd.com,网址www.zhongkerd.com