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

相关文章推荐

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 ...

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

原文地址:http://spencermoran.me/2013/08/13/open-source-on-github-your-first-contribution/ 注:本文只是我个人为练习翻...

Android studio 下使用 StaggeredGridView open source plug (11.26)

StaggeredGridView 详解 在网上 阅读了大量的Android studio 下怎么引用Library 结果都在我的项目中没有把这个StaggeredGridVie...

收集的一些android open source app

1.  10 Open Source Android Apps which every Android developer must look into  http://sudarmuthu.com...

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

 Android Open Source:陌陌(momo)源代码及实现(大部分UI+功能) 这是一个Android开源代码实现了陌陌的大部分ui及ui相关的事件操作及功能,代码运行结果如图所示...

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
  • 173

Android Open Source Project Analysisx

Android Open Source Project Analysis作者: 郭孝星 邮箱: guoxiaoxingse@163.com 博客: https://guoxiaoxing.gith...

Android Open Source Projects

第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、...

在 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...

IntelliJ IDEA :decompiled.class file bytecode version:52.0(java 8) ,open source file.

引入第三方jar包或者查看Java源码的时候,经常遇到问题如下: decompiled.class file bytecode version:52.0(java 8) ,   open source...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Facebook Open Source项目介绍(Android篇)
举报原因:
原因补充:

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