Home

Awesome

Android开源框架分类

Android开源框架库分类,挑选出最常用,最实用的开源项目,本篇主要介绍的是优秀开源框架库和项目,UI个性化控件会独立介绍。
UI个性化控件

Gitter

Index

Dependency Injections

AndroidAnnotations

Repository: https://github.com/excilys/androidannotations
Description: android快速开发框架。
Features:

PS:与roboguice的比较:roboguice通过运行时读取annotations进行反射,所以可能影响应用性能,而AndroidAnnotations在编译时生成子类,所以对性能没有影响。

Butter Knife

Repository: https://github.com/JakeWharton/butterknife
Description: JakeWharton的开源作品,利用annotation帮你快速完成View的初始化,减少代码。
Features:

Dagger

Repository: https://github.com/square/dagger
Description: sqaure开源的依赖注入框架,是Guice的一个子集,更轻量,更适合在Android平台使用。
Features:

依赖注入框架的对比:dagger-and-butter-knife-vs-android-annotations,依赖注入浅析

<a href="#dependency-injections" title="返回目录" style="width:100%"><img src="https://raw.githubusercontent.com/yeungeek/awesome-android-libraries/master/art/ic_arrow.png" align="right"/></a>

Networking

Android Lite Http

Repository: https://github.com/litesuits/android-lite-http
Description: 一款‘智能’的HTTP框架类库。国人开发的一套框架。
Features:

Asynchronous Http Client for Android

Repository: https://github.com/loopj/android-async-http
Description: Android异步Http请求
Used By:

Features:

Async Http Client

Repository: https://github.com/AsyncHttpClient/async-http-client
Description: Java异步Http和WebSocket请求。使用NIO实现异步操作,默认的异步实现是基于Netty之上。

HttpCache

Repository: https://github.com/Trinea/AndroidCommon
Description: Trinea大神写的Http缓存工具。
Features:

Http Request

Repository: https://github.com/kevinsawicki/http-request
Description: Java HTTP请求库。

Ion

Repository: https://github.com/koush/ion
Description: Android异步网络和图片加载. Used By: https://github.com/koush/ion#projects-using-ion
Features: https://github.com/koush/ion#features

OkHttp

Repository: https://github.com/square/okhttp
Description: Square开源的http库,支持http和spdy协议.
Features:

Retrofit

Repository: https://github.com/square/retrofit
Description: Square开源的Android和Java的REST风格请求库.

Volley

Repository: google volley | https://github.com/mcxiaoke/android-volley
Description: Google提供的网络通信库,使得网络请求更简单、更快速
Features:

Volley OkHttp Android

Repository: https://github.com/lxdvs/Volley-OkHttp-Android
Description: 整合OkHttp和Volley。

<a href="#networking" title="返回目录" style="width:100%"><img src="https://raw.githubusercontent.com/yeungeek/awesome-android-libraries/master/art/ic_arrow.png" align="right"/></a>

Image Loader

Android 三大图片缓存原理、特性对比

Fresco

Repository:

Description: Facebook 开源的一个强大的图片加载组件。
Features:

Cube SDK

Repository: https://github.com/etao-open-source/cube-sdk
Description: 一淘开源的一款Android开发包,包括图片加载和网络请求服务,综合了Android-Universal-Image-Loader和square等组件优点。
Features:

Glide

Repository: https://github.com/bumptech/glide
Description: 一个高效、开源、 Android设备上的媒体管理框架。灵活的API,可以和很多网络框架进行整合。
Features:

ImageCache

Repository: https://github.com/Trinea/AndroidCommon
Description: Trinea开源的图片缓存,包含内存和Sdcard缓存。 Features:

Picasso

Repository: https://github.com/square/picasso
Description: square开源的图片缓存。
Features:

Universal Image Loader for Android

Repository: https://github.com/nostra13/Android-Universal-Image-Loader
Description: 应该是使用最多的图片缓存,支持主流图片缓存的绝大多数特性。
Features:

Used By:
Applications using

<a href="#image-loader" title="返回目录" style="width:100%"><img src="https://raw.githubusercontent.com/yeungeek/awesome-android-libraries/master/art/ic_arrow.png" align="right"/></a>

O/R Mapping

5个推荐的orm框架

ActiveAndroid

Repository: https://github.com/pardom/ActiveAndroid
Description: ActiveAndroid是一个轻量级的orm框架,名称命令方式类似于Yii、Rails等使用的orm框架ActiveRecord。

GreenDAO

Repository: https://github.com/greenrobot/greenDAO
Description: GreenDAO是一个轻量级,快速的orm框架。简化建表、查询、更新、插入、事务、索引的操作。
Features:

OrmLite-Android

Repository: https://github.com/j256/ormlite-android
Description: OrmLite不是Android平台专用的orm框架,它是一个Java orm,OrmLite For Android增加了对Android平台的支持。

Realm

Repository: https://github.com/realm/realm-java
Description: 移动端的数据库,适用于 Phone、Tablet、Wearable,支持 ORM,线程安全、支持连表及数据库加密,比 SQLite 性能更好。
Features:

Sugar ORM

Repository: https://github.com/satyan/sugar
Description: Android平台专用orm框架。
Features:

<a href="#or-mapping" title="返回目录" style="width:100%"><img src="https://raw.githubusercontent.com/yeungeek/awesome-android-libraries/master/art/ic_arrow.png" align="right"/></a>

Event Buses

EventBus

Repository: https://github.com/greenrobot/EventBus Description: 事件总线框架,非注解,效率非常高,这里是和square的otto的对比
Features:

Otto

Repository: https://github.com/square/otto
Description: Square开源的事件总线框架,在Guava基础上加强,基于注解形式。

AndroidEventBus

Repository: https://github.com/bboyfeiyu/AndroidEventBus
Description: bboyfeiyu开源的事件总线框架,吸收了greenrobot的EventBus以及square的otto的优点, 并在此基础上做出了相应的改进,使得事件总线框架更适合用户的使用习惯,也使得事件的投递更加的精准、灵活。

JSON

fastjson

Repository: https://github.com/alibaba/fastjson
Description: 阿里巴巴开源JSON解析库,是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法, 把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。各种JSON库的比较
Features:

GSON

Repository: https://github.com/google/gson
Description: google开源的JSON解析库

Jackson

Repository: https://github.com/FasterXML/jackson-core
Description: Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象

Moshi

Repository: https://github.com/square/moshi
Description: square开源的JSON库,与GSON相比,更少的内建类型,更少的配置,安全的html转义等。

Background Processing

Bolts-Android

Repository: https://github.com/BoltsFramework/Bolts-Android
Description: Parse发布的面向Android的底层库集合,参见parse-announces-bolts

android-priority-jobqueue

Repository: https://github.com/path/android-priority-jobqueue
Description: Path开源的android优先级任务队列框架。

Image Processing

android-gpuimage

Repository: https://github.com/path/android-priority-jobqueue
Description: GPUImage是个功能十分强大、又十分易用的图像处理库。提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。

ImageFilterForAndroid

Repository: https://github.com/daizhenjun/ImageFilterForAndroid
Description: 国内的代震军开源的滤镜效果框架。

Camera

cwac-camera

Repository: https://github.com/commonsguy/cwac-camera
Description: commonsguy开源的camera操作封装。

SquareCamera

Repository: https://github.com/boxme/SquareCamera
Description: 正方的摄像机,有前后摄像头等操作。

CameraModule

Repository: https://github.com/Yalantis/CameraModule
Description: Yalantis开源的摄像机,有自动聚焦功能等。

OpenCamera

Repository: https://github.com/almalence/OpenCamera
Description: 完整的摄像机,功能很全,不过代码有点乱。

StickerCamera

Repository: https://github.com/Skykai521/StickerCamera
Description: 这是一款集成了相机,图片裁剪,给图片贴贴图打标签的相机应用。

<a href="#camera" title="返回目录" style="width:100%"><img src="https://raw.githubusercontent.com/yeungeek/awesome-android-libraries/master/art/ic_arrow.png" align="right"/></a>

Video

AndroidFFmpeg

Repository: https://github.com/appunite/AndroidFFmpeg
Description: FFmpeg视频解析的例子。

Vitamio

Repository: https://github.com/yixia/VitamioBundle
Description: Vitamio是一款Android 与iOS 平台上的全能多媒体开发框架。
Features:

Logging

Logger

Repository: https://github.com/orhanobut/logger
Description: 简单、美观而且十分强大的 Android 日志工具。

DebugLog

Repository: https://github.com/MustafaFerhan/DebugLog
Description: 可以帮你创建更简单和更容易理解的调试日志,能够友好的显示调试信息所在类和函数。

hugo

Repository: https://github.com/JakeWharton/hugo
Description: 用于打印函数信息及执行时间的工具,仅在 debug 模式生效。

Android Plugin

DynamicAPK

Repository: https://github.com/CtripMobile/DynamicAPK
Description: 实现Android多apk/dex方式的apk加载,支持资源分包。 携程Android App插件化和动态加载实践

AndroidDynamicLoader

Repository: https://github.com/mmin18/AndroidDynamicLoader
Description: 点评的插件化实现方式,是用 Fragment 以及 Schema 的方式实现。

dynamic-load-apk

Repository: https://github.com/singwhatiwanna/dynamic-load-apk
Description: Apk动态加载框架,热部署,利用 ClassLoader 以及 Activity 代理的方式解决。

android-pluginmgr

Repository: https://github.com/houkx/android-pluginmgr
Description: 一种无须规范限制的动态加载解决方案,插件不需要依赖任何API
Features:

DroidPlugin

Repository: https://github.com/Qihoo360/DroidPlugin
Description: DroidPlugin 是360手机助手在Android系统上实现了一种新的插件机制:它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处。
Features:

限制和缺陷:

RePlugin

Description: RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案。
Features:

VirtualAPK

Description: VirtualAPK 是滴滴出行自研的一款优秀的插件化框架。
Features:

VirtualApp

Description: VirtualApp 是一个App虚拟化引擎,允许你在App内创建一个虚拟空间,你可以在虚拟空间内任意的安装、启动和卸载APK,这一切都与外部隔离,就如同一个沙盒。

Android Hot Fix

参考 各大热补丁方案分析和比较

Dexposed

Description: 基于Xposed的AOP框架,方法级粒度,可以进行AOP编程、插桩、热补丁、SDK hook等功能。

AndFix

Description: 阿里巴巴的另一个团队的hot fix方案。同样是方法的hook,AndFix不像Dexposed从Method入手,而是以Field为切入点。

下面的几种是基于ClassLoader机制来实现hot fix方案。是原腾讯空间Android工程师,陈钟发明的热补丁方案,是他在看源码的时候偶然发现的切入点。 比较:

  1. Dexposed不支持Art模式(5.0+)
  2. AndFix支持2.3-6.0
  3. ClassLoader方案支持2.3-6.0
    在兼容性稳定性上,ClassLoader方案很可靠,如果需要应用不重启就能修复,而且方法足够简单,可以使用AndFix,而Dexposed由于还不能支持art

Nuwa

Description: 纯java实现的hot fix方案
Features:

HotFix

Description: 安卓App热补丁动态修复框架

DroidFix

Description: AndroidHotFix/Android 代码热修复

AnoleFix

Description: Another hotfix 另一个热修复方案 Alpha,来自InstantRun 和 Robust 类似

Amigo

Description: 饿了么团队开源的 Android hotfix框架

Tinker

Description: 微信开源的Android Hot fix方案,具体说明:微信Tinker的一切都在这里,包括源码(一)

Security

Conceal

Repository: https://github.com/facebook/conceal
Description: Conceal是一套用于Android上的文件加密和鉴权的Java API

SQLCipher

Repository: https://github.com/sqlcipher/android-database-sqlcipher
Description: Sqlite 加密工具

Showcases

PocketHub

Repository: https://github.com/pockethub/PocketHub
Description: Github 的 Android 客户端项目

iosched

Repository: https://github.com/google/iosched
Description: The Google I/O 2014 Android App

Cheesesquare

Repository: https://github.com/chrisbanes/cheesesquare
Description: Demos the new Android Design library

muzei

Repository: https://github.com/romannurik/muzei
Description: 定时更换桌面精美壁纸

u2020

Repository: https://github.com/JakeWharton/u2020
Description: 开源框架集成的demo

RxJava

Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM

这是RxJava在github上的描述,它是响应式编程在JVM上的一个扩展,核心在于异步。那对于Android来说,带来了什么。 具体的可以看看扔物线写的给 Android 开发者的 RxJava 详解,非常的详细,该有的都有。下面的是一些RxJava的延伸。

RxJava

这是本尊,基类,下面的库都是基于RxJava。

RxAndroid

RxJava在Android的扩展,从版本0.25升级到1.x后,改变非常大,现在1.x剩下来的就只有AndroidSchedulers。从中剥离出来RxBinding,RxLifecycle,rx-preferences等,详细请看How to upgrade to RxAndroid 1.0

RxBinding

Jake大神的作品,Android UI控件的RxJava实现

RxLifecycle

RxAndroid的生命周期控制

rx-preferences

SharedPreferences的实现

sqlbrite

android sqlite的实现

Retrofit

Restful网络请求框架,目前是Jake大神主持,发布了Retrofit2.0.0-beta。
而且从1.0开始已经支持Observable。用 Retrofit 2 简化 HTTP 请求

RxPermissions

RxJava实现的Android运行时权限控制

RxFile

RxJava实现,从文件,图片或者视频中获取缩略图

xBus

EventBus的RxJava实现。 最简单的RxBus实现

Agera

Agera(瑞典文的意思是"采取行动")是一个超轻量级的Android库,帮助Android应用中有生命周期的组件(比如:Activities)或者组件中的对象(比如:Views)预准备数据。 通过加入函数式响应式编程,Agera可以在 什么时机, 什么线程 和 什么数据 层面上更清晰的分离数据处理流程,并且使用一个接近自然语言的单个表达式就能编写一个复杂的异步流。
from Agera中文wiki
Google Agera vs Reactivex:Reddit的讨论, 详细对比

Javascript

现在基于H5 + JavaScript来构建原生APP的技术,当下真的是很火爆。

React Native

React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。 React Native着力于提高多平台开发的开发效率 —— 仅需学习一次,编写任何平台。(Learn once, write anywhere)
Facebook已经在多项产品中使用了React Native,并且将持续地投入建设React Native。

Weex

阿里的Weex框架是针对动态编程和发布项目的一个可扩展、跨平台的解决方案。
具体介绍:Weex详解:灵活的移动端高性能动态化方案
Weex vs ReactNative

JsBridge

大头鬼开源的一个JsBridge框架

Safe Java Js WebviewBridge

WebView中的Java与JavaScript提供【安全可靠】的多样互通方案实现

RainbowBridge

A safe JsBridge framework

Scripto

Java and JavaScript interaction library

Rexxar

Rexxar 是一个针对移动端的混合开发框架。现在支持 Android 和 iOS 平台。并有一个 Web 基础库。
豆瓣的混合开发框架 -- Rexxar

Weapp

上周被微信小程序刷屏了,各种大号都出来说微信小程序,为了能够迎合变化,不能落后,提供一些资源给大家。

什么是小程序:小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下即可打开应用。 也体现了"用完即走"的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载. ---- 张小龙

微信小应用资源汇总整理

整理收集大部分微信小程序的信息,非常管用

微信小程序接入指南

weapp ide crack

微信小程序的IDE破解,目前只有300个内部邀请资格,用了这个开发小程序无忧,但是不能上传(没有appid)
已经不需要破解,官方支持

APM

APM (Application Performance Manage)

matrix

Matrix is a plugin style, non-invasive APM system developed by WeChat.

ArgusAPM

Powerful, comprehensive (Android) application performance management platform

Scouter

Scouter is an open source APM (Application Performance Management) tool.

AndroidGodEye

AndroidGodEye:A performance monitor tool for Android , you can easily monitor the performance of your app in real time in pc browser

Assistant

Develop Assistant

DoraemonKit

A full-featured APP ( iOS & Android ) development assistant

DebugDrawer

Android Debug Drawer for faster development

<a href="#index" title="返回目录" style="width:100%"><img src="https://raw.githubusercontent.com/yeungeek/awesome-android-libraries/master/art/ic_arrow.png" align="right"/></a>

Reference