HTML5技术

独立开发 一个社交 APP 的架构分享 (已实现) - 指尖下的幽灵

字号+ 作者:H5之家 来源:博客园 2016-07-19 16:00 我要评论( )

(本博客为原创:) My BananaCloud Android Application 前言: 这算是我的第一个 完完全全 由自己开发的社交类安卓APP,截止2016-7-15,第二版本的优化完善已顺利完成,可以正常使用。下面我将一 一讲述各个点,日后如果不上线,那么将 考虑全面开源 ,含

(本博客为原创:)

 

My BananaCloud Android Application

前言:

    这算是我的第一个 完完全全 由自己开发的社交类安卓APP,截止2016-7-15,第二版本的优化完善已顺利完成,可以正常使用。下面我将一 一讲述各个点,日后如果不上线,那么将考虑全面开源,含移动端代码服务器接口代码,留意我的 GitHub。

  由于内容十分地多,我尽我自己的能力将各个功能模块的做法尽可能地去讲清楚,欢迎留言,有问必复,文章会不断更新,下面所有谈及的功能皆已实现。

  目录:(点击可跳转)

一 、

二 、

三、

一、功能架构 公共部分 用户管理
  • 注册
  • 登录
  • 公共部分
  • 登录设置缓存,一次登录后,不退出的话,那么以后的不用重复输入
  • 登录方式
  • 手机号码登录
  • 第三方登录,含微信、新浪微博
  • 帖子模块
  • 发布
  • 浏览:
  • 公共部分
  • 都会显示出用户头像、发帖或评论的时间和评论的数目
  • 按编辑
  • 图文混排类型
  • 图文加视频录制类型
  • 按类型(内容布局各不相同)
  • 操作:
  • 文章模块
  • 浏览:
  • 内容页纯html,网页浏览
  • 发布:
  • 由管理员通过网页后台编辑发布,形成html标签流
  • 兼容:
  • 使用x5浏览器内核显示,效果和微信相似,包括视频播放
  • 权限
  • 除了不能被帖子点赞,其他同帖子操作
  • 我的模块(用户信息)
  • 我的背景图片
  • 显示在个人信息页面
  • 点击可以修改,含剪辑
  • 我的消息模块
  • 资料管理模块
  • 帖子管理
  • 我的设置模块
  • 搜索模块
  • 功能
  • 支持模糊搜索
  • 具备搜索的历史缓存
  • 类型
  •        说实话,这个项目的文件夹已达1.5G,安装包混淆编译后27M,我在写之前,就在想要怎么把它摊开来讲,想想真的很复杂,脑子东西东西太多。

      二、移动端架构概述 1,框架层
  • 图片部分
          在说使用的框架之前,先说说,APP安装包的大小的影响,包的大小可以算进去用户体验的一部分,过多地使用框架只会加大APK体积和内存消耗,例如 static final int/String 或 65535限制,在使用框架的时很多时候,都是只使用其中的一个功能。
          现在我只保留了一个,不包括第三方SDK,例如OneKeyShare,保留的是 imageLoader,保留它的原因是,它的功能就是显示图片,而对于图片这类数据,可以说是占内存最大的大头,我能力有限,暂时还不能利用系统库封装好个比imageLoader更好的库,同类的库还有 picasso、fresco、volley等,曾经也引入过 fresco,比imageLoader多了很多API,考虑到框架的成熟性最后没使用,volley就不仅仅是显示个图片那么简单了,还有网络请求,上传等,网络请求和上传的代码这部分因为我自己能够写出还不错的几个函数,所以为了减少不必要的消耗,没使用volley。
  • 网络部分
           上面说到volley具备网络的大部分需求,例如get、post请求操作,除了这个,还有 android-async-http、okHttp 等,这些我都有了解过,也在别的项目里面使用过,但我没使用到BananaCloud,原因就是上面谈到的网络请求和上传的代码这部分,如果自己封装好,且封装得不错,就不需要再去使用框架。
  • 富文本编辑器
           这个在一个月前还有使用,基于gitHub 安卓开源项目-richEditor二次开发而来,原作者的项目,bug比较多,且兼容性非常差,在我修改完之后,最后一次发现bug是在红米手机上面,编辑框完全失效,逐弃之。修改的教程请转移到我的博文:点我
  • 视频播放器

  • 原生

  • Ijkplayer(轻量级)
    它是Blibli技术团队开源的一个视频播放框架,原框架需要自己编译.so,我当时在他们的基础上编译和封装好了一个,详情移至我 github 的 ijkplayerDemo
  • Vlc(重量级)
    国外的一个视频播放框架,体积比较大,一样需要自己动手编译.so,相比ijk,它功能强大一点,详情移至我 github 的 VlcDemo
  • 网页

  • 基于javaScript播放器
    这个是我最初的尝试,在使用原生播放器的时候,通过正则替换文章内容的video标签,提取 src,然后组合 js 的播放器里面,能够自定义很多功能,例如:调节亮度和声音。
  • 直接使用腾讯x5浏览器内核
    其实,我一直想做一个像微信打开公众平台文章那样的网页 webView,兼容性强,速度快且对视频的兼容十分好。这也是我最终的选择
  • 2,线程层

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

      Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

      2017-05-02 11:00

    • 【Vue 入门】使用 Vue2 开发一个展示项目列表的应用 - zhangjk

      【Vue 入门】使用 Vue2 开发一个展示项目列表的应用 - zhangjk

      2017-04-30 16:00

    • 在Delphi下使用迅雷APlayer组件进行免注册开发 - Delphi力量

      在Delphi下使用迅雷APlayer组件进行免注册开发 - Delphi力量

      2017-04-28 15:00

    • 随应潮流-基于ABP+Angularjs现代化应用软件开发框架(1)-总体介绍 - 在路在的张

      随应潮流-基于ABP+Angularjs现代化应用软件开发框架(1)-总体介绍 -

      2017-04-22 08:04

    网友点评
    <