(本博客为原创:)
My BananaCloud Android Application
前言:
这算是我的第一个 完完全全 由自己开发的社交类安卓APP,截止2016-7-15,第二版本的优化完善已顺利完成,可以正常使用。下面我将一 一讲述各个点,日后如果不上线,那么将考虑全面开源,含移动端代码、服务器接口代码,留意我的 GitHub。
由于内容十分地多,我尽我自己的能力将各个功能模块的做法尽可能地去讲清楚,欢迎留言,有问必复,文章会不断更新,下面所有谈及的功能皆已实现。
目录:(点击可跳转)
一 、
二 、
三、
一、功能架构 公共部分 用户管理说实话,这个项目的文件夹已达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是在红米手机上面,编辑框完全失效,逐弃之。修改的教程请转移到我的博文:点我
视频播放器
原生
它是Blibli技术团队开源的一个视频播放框架,原框架需要自己编译.so,我当时在他们的基础上编译和封装好了一个,详情移至我 github 的 ijkplayerDemo
国外的一个视频播放框架,体积比较大,一样需要自己动手编译.so,相比ijk,它功能强大一点,详情移至我 github 的 VlcDemo
网页
这个是我最初的尝试,在使用原生播放器的时候,通过正则替换文章内容的video标签,提取 src,然后组合 js 的播放器里面,能够自定义很多功能,例如:调节亮度和声音。
其实,我一直想做一个像微信打开公众平台文章那样的网页 webView,兼容性强,速度快且对视频的兼容十分好。这也是我最终的选择