facebook开源项目
2015-09-07 14:49
225 查看
一. Facebook 开源项目 ATC
之前 Facebook 就介绍过针对非发达国家环境,他们 Android 端 App 所做的性能优化,包括加载速度(延迟加载、提前加载)、数据大小(WebP 格式、不同分辨率图片、缓存算法调优)、网络(支持 SPDY 协议的 OkHttp、预取算法调整)、App 大小(利用 Google Play 不同分辨率分发不同 APK)具体可见:improving-facebook-on-android (需翻墙)
今年他们开源了一个叫 Augmented Traffic Control(ATC) 的项目,这个项目的作用就是模拟不同的网络环境,再也不用担心若网络情况无法复现了!可控制的方面包括:
带宽
时延抖动
丢包率
错包率
包重排序率 这些都是衡量网络质量的重要指标。
ATC 原理实际是利用了 Linux 流量控制系统,通过纯 Python 的网络库 pyroute2 调用 netlink 的API 控制。
二. Facebook 其他 Android 相关开源项目
Facebook 开源的 Android 相关项目,大都是偏工具类。这恐怕也是不少人对他们的开源不够了解的原因了,因为只有到一定程度了你才能用得上这些东西。
1. buck
这个能够并行处理、支持增量编译的 Android 编译系统,比原生的编译速度快很多,对多模块的大型项目非常实用。
微信就对 Buck 进行了改造,增加 LinearAllocCalculator 和 DexMethodsCalculator 输出。
2. Stetho
这是个强大的 Android Debug 工具。
支持网络请求监控以及数据库查看,可以和 Chrome DevTools 结合或者命令行模式。
截图:
![](http://static.open-open.com/lib/uploadImg/20150328/20150328215650_617.png)
![](https://github.com/facebook/stetho/raw/master/docs/images/inspector-sqlite.png)
3. fa-adb
它是一个功能更强大的 adb。
没有 LF - > CRLF 识别码,区分标准输出和标准错误,支持程序退出状态(而不总是返回成功码 0),杀远程进程等。
4. shimmer-android
这是个支持 shimmer 效果的库。
![](https://raw.githubusercontent.com/facebook/shimmer-android/master/shimmer.gif)
5. conceal
可用于 Android 上数据的快速加密,尤其是对于大文件。
6. Rebound
一个模仿弹簧反弹的Java库,可用于创建动画。
1. Android 图片缓存 - Fresco
GitHub:https://github.com/facebook/fresco特点:
两个内存缓存加上磁盘缓存构成了三级缓存
支持流式,可以类似网页上模糊渐进式显示图片
对多帧动画图片支持更好,如 Gif、WebP
更多样的显示,如圆角、进度条、点击重试、自定义对焦点
更多样的加载,如支持 EXIF、全面支持 WebP
支持 Android 2.3+ 有兴趣参与源码分析的可以联系我哦
PS:WebP 是 Google 最早在 2010 年提出的,希望能够减少图片在网络的传输时间,在相同图片质量下,WebP 比 JPEG 和 PNG 更小。
国外 Google、FB 已经在较广泛使用 WebP 格式,国内淘宝、微信也都有使用,微信公众号的图片一般默认就是 WebP 格式的。
2. 原生应用开发框架 - React Native
GitHub:https://github.com/facebook/react-native介绍这个开源项目必须先提下 React,React 还是 Facebook 在 2013 年中开源的用于网站 UI 开发的开源 JS 库。
React Native 就是用 React 进行 Native App 开发的框架。
应该不少人知道 FB 早期的 Android 和 iOS App 都是 H5(HTML5) 版本的,大概在 12 年因为响应太慢最终换回了 Native App,现在他们要重来了吗?
最后,Android 的小伙伴们,嗯啊,没错,这个框架目前只有 iOS 版,React Native 有很大一部分 Native Code 实现,Android 版应该还在搞。
3. 开发集成环境 - Nuclide
用于 React Native、Web 及原生移动开发的 IDE,基于 GitHub 的 Atom 构建,内部集成了 Buck 提高编译速度。
相关文章推荐
- 2014年公认最好的一篇文章,你看了没有?
- Trade.vcxproj.filters 作用,vs2010的逻辑目录结构 由该文件控制
- 断点缓存下载
- android自动化工具之--如何进行Monkey Test
- KVC
- nagios 批量安装客户端
- ubuntu快捷键
- GO环境设置
- 创建Fragment
- HDU 2899 Strange fuction
- Xcode下使用svn小结
- 数据存储详解(二)---->File存储:内部存储 -Cache和外部存储-SD卡
- hdu1213 并查集
- 连接迭代数据库
- in 和 exists的区别
- Anti Anti Windbg
- JavaScript中Canvas与Image互相转换
- PHP学习----Access denied for user 'root'@'localhost'
- c语言学习笔记1 - memset,memcpy的用法
- div包裹的iframe有5px的高度差问题