Facebook Open Source项目介绍(Android篇)

原创 2016年06月02日 11:49:25

FB Open Source项目地址(可能需要翻墙):https://code.facebook.com/projects/android

github地址:https://github.com/facebook


1. redex

此项目是一个Android APK字节码优化工具,可以使你的apk包更小,运行速度更快。

用redex处理过apk以后需要重新签名。


2. Infer

此项目是一个针对Android和IOS应用的静态分析工具,由OCaml语言编写的Infer目前能检测出空指针访问、资源泄露以及内存泄露,可对C、Java或Objective-C代码进行检测。Facebook使用Infer自动验证iOS和安卓上的移动应用的代码,bug报告的正确率达80%。Infer通过捕获编译命令,把要被编译的文件转换为可用于分析潜在错误的中间语言格式。整个过程是增量进行的,意味着通常只有那些有修改过并提交编译的文件才会被Infer分析。Infer还集成了大量的构建或编译工具,包括Gradle、Maven、Buck、Xcodebuild、clang、make和javac。


3. Stetho

此项目是一个强大的Android调试工具,使用该工具你可以在Chrome Developer Tools查看App的布局,网络请求,sqlite,preference,一切都是可视化的操作,无须自己在去使用adb,也不需要root你的设备。使用的方式很简单,配置好之后,在Chrome地址栏输入chrome://inspect 。


4. Network Connection Class

此项目是一个Android SDK,用于监听App当前网络流量以及将其按照网络质量进行分类。连接被分为几个“Connection Classes”,使它开发变得容易。该类库通过监听APP中现有网络的流量,以及当用户的网络连接质量发生变化时进行提醒。开发者可以利用“Connection Classes”的信息,以及调整应用程序的行为(请求低质量图像或视频、 throttle type-ahead等)。Network Connection Class目前仅仅测量用户下行的带宽。


5. React Native

React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。

React Native 使你能够使用基于 JavaScript 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验。React Native 把重点放在所有开发人员关心的平台的开发效率上——开发者只需学习一种语言就能轻易为任何平台高效地编写代码。Facebook 在多个应用程序产品中使用了 React Native,并将继续为 React Native 投资。


6. makeitopen

好像是一个学习FB open source的网站。


7. rebound

Rebound是Facebook推出的一款Android的物理和动画库,于2013年10月在Mobile@Scale大会上正式发布,旨在解决笨重、缓慢的传统移动网络界面。Rebound基于BSD许可协议,兼容HTML5和Node.js。

Rebound不是一款通用物理库,但其弹簧模型在应用程序中引入了现实世界的物理,易于集成,创建的动画能够让人感觉到非常自然,可用于滚动条、切换开关、呼叫等场景下。


8. buck

Buck是Facebook开发的一款开源Android Build工具,基于Apache License 2.0协议发布,可以通过独立构建并行来发挥多核的性能,加速开发者的Android应用构建流程。Buck基于单一的库构建,能够以最小的资源集重建,非常适用于Android项目组织与管理。

主要特性:

  • 加速Android构建。充分发挥多核处理器的优势,并行构建独立模块。通过追踪没有变化的源文件,减少增量构建实践,最少化需要重建的资源。
  • 对于不支持开箱即用的Android Ant编译脚本,引进ad-doc构建系统。
  • 在构建系统里保持生成构建的逻辑,无需另外的系统生成构建文件。
  • 基于构建规则生成一个Intellij项目,能同时匹配本地IDE以及无头文件编译开发。
  • 支持单元测试,选用最均衡的方式获得代码覆盖率。


9. conceal

Conceal提供了一套用于Android平台上进行文件加密和鉴权的Java API,专为速度设计,小巧而高速。它使用了OpenSSL算法的子集和一些预先定义的选项,能够让库保持在较小的体积。通过它,开发者可以实现对手机、平板电脑SD卡中的数据以及大型文件进行加密和存储。


10. Device Year Class

Android平台的开源库,用于分析设备并计算哪一年你的设备会被认为是“high end”,实际上就是获取设备基本信息,并为你的设备分级。主要功能是根据 CPU核数、时钟频率 以及 内存大小 对设备进行分级。代码很简单,只包含两个类:

  • DeviceInfo -> 获取设备参数,
  • YearClass -> 根据参数进行分级。

下表是 Facebook 公司提供的分级标准,其中 Year 栏表示分级结果。

Year Cores Clock RAM
2008 1 528MHz 192MB
2009 n/a 600MHz 290MB
2010 n/a 1.0GHz 512MB
2011 2 1.2GHz 1GB
2012 4 1.5GHz 1.5GB
2013 n/a 2.0GHz 2GB
2014 n/a >2GHz >2GB

Android面试一天一题(2)优雅地介绍自己的项目

先说句题外话,很多公司16年秋招的内推已经开始啦,我目前知道的在北京有网易、百度和微软,同学们可以开始关注了。之前在《Android面试一天一题——概述篇》中提到过,面试过程中围绕应聘者简历中的项目会...
  • iamsamzhang
  • iamsamzhang
  • 2016年07月15日 12:16
  • 3386

直接拿来用!Facebook移动开源项目大合集

摘要:移动开发生态圈日益成熟,基础的开源组件也越来越丰富,而Facebook不仅取之开源,更不断地开源其内部项目,将成果与开发者共享。本文特对Facebook在移动开发方面所推出的众多开源项目进行了系...
  • hyugahinat
  • hyugahinat
  • 2016年03月21日 18:15
  • 3078

Android背景介绍以及开发环境搭

一、Android前世今生 Android这个单词本身意思是“机器人”,就像Android的标志一样。现在指的则是由Google公司推出的基于Linux内核(2.6)的开源手机操作系统。在Google...
  • qinpengtaiyuan
  • qinpengtaiyuan
  • 2014年11月10日 14:59
  • 2581

10 Open Source Security Tools from Google, Facebook, Netflix and Cisco

原文地址:http://www.linux.com/news/software/applications/797378-10-open-source-security-software-tools ...
  • M173475237
  • M173475237
  • 2015年01月11日 15:49
  • 525

在Github上的开源项目:你的第一次贡献(原文:Open Source on Github: Your First Contribution)

原文地址:http://spencermoran.me/2013/08/13/open-source-on-github-your-first-contribution/ 注:本文只是我个人为练习翻...
  • u011003410
  • u011003410
  • 2013年08月28日 14:58
  • 652

在 VMWare 7.1.2 + Ubuntu 11.10(32位)中,编译 Android 2.3.7 (gingerbread) 源码 (Anroid Open Source Project)

在 VMWare 7.1.2 + Ubuntu 11.10(32位)中,编译 Android 2.3.7 (gingerbread) 源码 (官方 Anroid Open Source Project...
  • qing3962
  • qing3962
  • 2012年05月16日 16:54
  • 1013

Android Open Source Project Analysisx

Android Open Source Project Analysis作者: 郭孝星 邮箱: guoxiaoxingse@163.com 博客: https://guoxiaoxing.gith...
  • AllenWells
  • AllenWells
  • 2017年03月09日 17:14
  • 621

Android Open Source Projects

第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、...
  • fengwei_mm
  • fengwei_mm
  • 2014年04月14日 20:35
  • 2201

Android Frequently Asked Questions for Open Source

Open Source What is the Android Open Source Project? We use the phrase "Android Open Source ...
  • aqzwss
  • aqzwss
  • 2016年08月05日 17:34
  • 188

Android Open Source:陌陌(momo)源代码及实现(大部分UI+功能)

 Android Open Source:陌陌(momo)源代码及实现(大部分UI+功能) 这是一个Android开源代码实现了陌陌的大部分ui及ui相关的事件操作及功能,代码运行结果如图所示...
  • zhangphil
  • zhangphil
  • 2015年12月15日 23:05
  • 2815
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Facebook Open Source项目介绍(Android篇)
举报原因:
原因补充:

(最多只允许输入30个字)