Facebook 的那些开源项目

  作者:Trinea

本文首先发布在微信公众号 codeKK
介绍下 Android 领域的又一开源大户 Facebook。

一. Facebook 开源项目 ATC

之前 Facebook 就介绍过针对非发达国家环境,他们 Android 端 App 所做的性能优化,包括加载速度(延迟加载、提前加载)、数据大小(WebP 格式、不同分辨率图片、缓存算法调优)、网络(支持 SPDY 协议的 OkHttp、预取算法调整)、App 大小(利用 Google Play 不同分辨率分发不同 APK)

 

具体可见:improving-facebook-on-android (需翻墙)

 

今年他们开源了一个叫 Augmented Traffic Control(ATC) 的项目,这个项目的作用就是模拟不同的网络环境,再也不用担心若网络情况无法复现了!可控制的方面包括:

  1. 带宽
  2. 时延抖动
  3. 丢包率
  4. 错包率
  5. 包重排序率

这些都是衡量网络质量的重要指标。

 

ATC 原理实际是利用了 Linux 流量控制系统,通过纯 Python 的网络库 pyroute2 调用 netlink 的 API 控制。

 

二. Facebook 其他 Android 相关开源项目

Facebook 开源的 Android 相关项目,大都是偏工具类。
这恐怕也是不少人对他们的开源不够了解的原因了,因为只有到一定程度了你才能用得上这些东西。

 

1. buck

这个能够并行处理、支持增量编译的 Android 编译系统,比原生的编译速度快很多,对多模块的大型项目非常实用。

微信就对 Buck 进行了改造,增加 LinearAllocCalculator 和 DexMethodsCalculator 输出。

 

2. Stetho

这是个强大的 Android Debug 工具。
支持网络请求监控以及数据库查看,可以和 Chrome DevTools 结合或者命令行模式。

截图:
Network inspection
Database inspection

 

3. fa-adb

它是一个功能更强大的 adb。
没有 LF - > CRLF 识别码,区分标准输出和标准错误,支持程序退出状态(而不总是返回成功码 0),杀远程进程等。

 

4. shimmer-android

这是个支持 shimmer 效果的库。
shimmer

 

5. conceal

可用于 Android 上数据的快速加密,尤其是对于大文件。

 

6. Rebound

一个模仿弹簧反弹的 Java 库,可用于创建动画。

 

还有一些其他的开源项目就不列举了,他们的技术博客上也有很多不错的技术文章。

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools