【每日源码】仿B站Android端项目

一款基于 MVP+RxJava2+Retrofit+Dagger2+Butterknife+Fresco+MultitypeAdapter+MD 的仿 B 站设计风格客户端。


用到的开源库

  • RxJava2 最coooooool的响应式编程框架

  • RxLifecycle 解决Rxjava内存泄漏

  • Retrofit 最流行的Android网络请求的框架

  • Okhttp3 和Retrofit搭配,项目中签名逻辑使用该库的拦截器模块实现

  • Dagger2 门槛略高但功能强大的依赖注入框架

  • Butterknife 绑定View的依赖注入框架

  • Eventbus 组件间通信

  • Fresco 图片的加载和处理,功能强大,但相比其他图片库有点大

  • Fragmentation 简化Fragment操作并填坑的库

  • Multitype RecyclerView多类型库

  • IjkPlayer b站出品基于FFmpeg的开源视频播放框架

  • DanmakuFlameMaster 烈焰弹幕使-b站开源弹幕解析绘制引擎项目


前期准备

一、B站网络请求抓包

首先是对B站的网络请求进行抓包,环境是mac,开始尝试使用Charles,由于B站的网络请求大多为Https,Charles的证书设置总是不成功(没找到正确的打开方式),无法抓到Https的包,就放弃了。

这里推荐mitmproxy,是一款在github上托管的开源抓包工具。


二、反编译

上述文章反编译的版本比较老(文章作者后续也没有更新),老版本中SecretKey直接存放在了so库中,在反编译新版本的时候(我当时用的v5.4),B站对于SecretKey使用了AES加密,在反编译源码中可以找到算法模式,秘钥以及偏移量等参数(具体为bl包下的chd、chb类,和nativelibrary包下的LibBili类),但是经过试验没有成功......这方面了解非常少,如果有大佬能试验成功,请不吝赐教!最后还是找了老版本中的AppKey和AppSecretKey,都存储在libbili.so中,具体版本号为v3.14。


源码下载地址:

链接:https://github.com/TeamNB/FakeBiliBili

— THE END —


推荐阅读

关注「互联网技术分享」,热门阅读集结

1.

【每日源码】Phantom — 唯一零 Hook 稳定占坑类 Android 热更新插件化方案

2.

【源码下载】开源社区 vue + springBoot - 前后分离微服务的最佳实践

3.

【全】阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准

4.

用React、Redux、Immutable做俄罗斯方块(源码分享)

| 互联网技术分享 |

ABOUT US


开发 · 干货 · 生活

jiandaima.com|关注微信公众号互联网技术分享限时免费领取视频教程

推荐阅读更多精彩内容

  • 请允许我借鉴前辈们的东西~~~~ 感激不尽~~~~~ 以下为Android 框架排行榜 么么哒~ Android...
    嗯_新阅读 484评论 2 26
  • 东西有点多,但是资源绝对nice,自己都全部亲身体验过了,大家可放心使用 github排名: https://gi...
    Rance935阅读 9,080评论 27 315
  • 地图 百度地图– Android百度地图 线路规划,模拟运动轨迹,及全景效果。 AirMapView– 支持多个本...
    ListenToCode阅读 1,178评论 0 30
  • 自己总结的Android开源项目及库。 github排名https://github.com/trending,g...
    passiontim阅读 1,301评论 1 22
  • 一.榜单介绍 排行榜包括四大类: 单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架 混合开发框架:...
    夼0756阅读 451评论 0 6