涵盖Android方方面面的技术, 目前保持更新. 时刻与Android开发流行前沿同步.

目录

  • 一、工具
    • Android开发工具
    • 在线工具宝典大全
  • 二、框架
    • *缓存框架*
      • DiskLruCache
      • ASimpleCache
      • base-diskcache
    • *图片加载框架*
      • Android Universal Image Loader
      • Picasso
      • Fresco
      • Glide
    • *图片处理框架*
      • Picasso-transformations
      • Glide-transformations
      • Android-gpuimage
      • photoview
      • circleimageview
      • RoundedImageView
      • android-gif-drawable
      • Luban
      • Compressor
      • android-stackblur
      • Blurry
      • blurkit-android
      • BlurView
      • ImageBlurring
    • *图片裁剪框架*
      • uCrop
      • cropper
      • Android-Image-Cropper
      • PhotoCropper
      • PhotoCrop
    • *图片选择框架*
      • MultiImageSelector
      • TakePhoto
      • RxGalleryFinal
      • boxing
    • *网络请求框架*
      • Android Async HTTP
      • AndroidAsync
      • OkHttp
      • Retrofit
      • Volley
    • *数据解析框架*
      • Gson
      • Jackson
      • Fastjson
      • Jsoup
    • *数据库框架*
      • OrmLite
      • Sugar
      • GreenDAO
      • ActiveAndroid
      • SQLBrite
      • Realm
      • android-database-sqlcipher
      • storio
      • ObjectBox
    • *依赖注入框架*
      • ButterKnife
      • Dagger2
      • AndroidAnotations
    • *图表框架*
      • WilliamChart
      • HelloCharts
      • MPAndroidChart
    • *后台处理框架*
      • Tape
      • Android Priority Job Queue
    • *事件总线框架*
      • EventBus
      • Otto
      • HermesEventBus
    • *响应式编程框架*
      • RxJava
      • RxJavaJoins
      • RxAndroid
      • RxBinding
      • Agera
      • RxLifecycle
    • *Log框架*
      • Logger
      • Hugo
      • Timber
    • *测试框架*
      • Mockito
      • Robotium
      • Robolectric
    • *调试框架*
      • Stetho
    • *性能优化框架*
      • LeakCanary
      • ACRA
      • Google Guava
    • *热修复框架*
      • tinker
      • AndFix
      • dexposed
    • *二维码框架*
      • Zxing
      • BGAQRCode-Android
      • zxing-android-embedded
    • *多媒体框架*
      • ijkplayer
      • DanmakuFlameMaster
      • Vitamio
      • FFmpeg
      • ExoPlayer
    • *金山云Android采集推流SDK*
      • KSYStreamer_Android
    • *汉语转拼音框架*
      • TinyPinyin
    • *下载框架*
      • MultiThreadDownload
      • FileDownloader
      • RxDownload
      • FileDownloader
    • *动画框架*
      • ViewAnimator
  • 三、优秀的开源项目
      • BGAPhotoPicker-Android
      • material-calendarview
      • MaterialDateTimePicker
      • AndroidPicker
      • Android-PickerView
      • AndroidUtilCode
      • 仿抖音APP
      • Eyepetizer
      • 悬浮窗需求终结者

一、工具

Android开发工具

1. Android开发工具下载【SDK、NDK、JDK、GRADLE…】:https://www.androiddevtools.cn/
2. Android中文开发者指南【无需】https://developer.android.google.cn/guide/
3. Kotlincn语言中文站:https://www.kotlincn.net/
4. Google Android官方培训课程中文版:http://hukai.me/android-training-course-in-chinese/index.html
5. 阿里巴巴-矢量图标库:https://www.iconfont.cn/collections/index?spm=a313x.7781069.1998910419.3
6. Android开发者指南:http://www.android-doc.com/reference/android/package-summary.html
7. Android ADB调试:https://blog.csdn.net/qq_43094133/article/details/102871850
8. Java教程:https://how2j.cn/?p=17361

在线工具宝典大全

1. PDF派,20个好用的PDF在线工具,包括PDF转换,PDF压缩,PDF合并等,目前没有限制。
2. 网易见外工作台,用网易邮箱账号登陆,每天开放 2 小时的白嫖时间,新建一个项目,可以用来翻译视频,AI 自动生成中英文双语字幕,字幕翻译,文档翻译,图片文字识别,语音翻译等,每天快乐白嫖 2 小时,对于我们这种业余用的,足够了。
3. 临时接收手机验证码,注册一些不常用的网站时可以用这个网站的临时手机号接收验证码,这些号码都可以点击进去阅读短信,避免用自己真实号码经常收到骚扰短信。
4. 临时邮箱,有时在有些网站需要填写邮箱登录,但我们可能只是一次性用下,这时如果你不想用你自己常用的邮箱注册,可以用这个临时邮箱,等你决定长久用这个网站了,再换成你自己的邮箱,这样就避免了信息干扰。邮箱可以持续 24 小时有效,可以任意设置邮箱名,随时更换邮箱,方便。
5. 爱资料工具,爱资料在线工具,为开发运维提供全面的在线工具箱,目前已开发工具270款,包含开发工具、运维工具、常用工具、SEO站长工具等,是好用,方便的在线工具网站。
6. SmartResize,基于 JavaScript+HTML5 编写的一个批量裁剪缩放图片神器(适合简单的人工智能图像数据预处理)。
7. TinyPNG,免费的在线图片压缩工具,压缩率高,无损画质,直接拖拽使用,独特且强悍的JavaScript 算法,能极速压缩 80% 的图片大小,而不损害其质量。
8. waifu2x无损放大图片,waifu2x 是一位来自日本的开发者所开源的项目,该项目利用人工智能深度卷积神经网络技术来无损放大图片,堪称是一款图片放大神器。一般图片在放大后可能会出现边界锯齿、线条模糊等问题,而 waifu2x 的算法对此提供了非常好的图片拉伸、降噪、填补机制,使得放大前后的图片给人观感基本一致。 GitHub源码:https://github.com/nagadomi/waifu2x
9. 图片无限变大,让你的图片无损放大,放大,再放大!只需要稍稍处理一下就可达到意想不到的效果。
10. 稿定设计,稿定设计是一款多场景商业视觉在线设计平台,提供操作简单、功能强大的在线服务,抠图简单高效,支持在线PS、人工智能抠图和证件换背景等操作。
11. 冷熊简历:http://cv.ftqq.com/

二、框架

缓存框架

DiskLruCache

Java实现基于LRU的磁盘缓存,DiskLruCache不是google官方所写,但是得到了官方推荐,DiskLruCache没有编写到SDK中去,如需使用可直接copy这个类到项目中去。使用场景:如“清除缓存”,DiskLruCache一句话就可以搞定!
地址:
github
https://github.com/JakeWharton/DiskLruCache
作者:JakeWharton
使用:

implementation 'com.jakewharton:disklrucache:2.0.2'

ASimpleCache

一个为android制定的轻量级的开源缓存框架
地址:
github
https://github.com/yangfuhai/ASimpleCache

base-diskcache

Android 缓存库,融合了DiskLruCache和ASimpleCache
地址:
github
https://github.com/hongyangAndroid/base-diskcache

图片加载框架

Android Universal Image Loader

UIL曾经的图片加载框架王者,android开发老手都用过它。提供了大量配置方式,图片加载状态的回调(成功,失败,进行中),加载动画等;以及提供了移动端图片加载框架的缓存思路:三级缓存策略 sd卡-内存-网络

github https://github.com/nostra13/Android-Universal-Image-Loader
作者 nostra13
使用:

implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’

Picasso

强力的图片下载、缓存框架。更强调图片下载,你可以将picasso集成进你的项目中,你也可以结合gilde和UIL与picasso,三者一齐封装至你的项目中,按需所用。
github
https://github.com/square/picasso
作者 square团队
使用:

implementation 'com.squareup.picasso:picasso:2.5.2'

Fresco

可以管理图片内存的框架在管理图片内存领域上有着它的一片天地,渐进式加载、加载gif。
官网地址: https://www.fresco-cn.org/
github https://github.com/facebook/fresco
作者 facebook
使用:

implementation ‘com.facebook.fresco:fresco:0.12.0’
下面的依赖需要根据需求添加:
// 在 API < 14 上的机器支持 WebP 时,需要添加

implementation 'com.facebook.fresco:animated-base-supp

Glide

是一款专注于提供流畅划动能力的“图片加载和缓存框架”图片加载类框架排名第一的框架,google 在2014开发者大会上演示的camera app就是基于gilde框架开发的地址:
github https://github.com/bumptech/glide
作者 Bump Technologies团队
使用:

implementation ‘com.github.bumptech.glide:glide:4.5.0’

图片处理框架

Picasso-transformations

Picasso提供多种图片变换的库。
地址:github https://github.com/wasabeef/picasso-transformations
作者 square团队
使用:

implementation 'jp.wasabeef:picasso-transformations:2.1.0'// If you want to use the GPU Filtersimplementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'

Glide-transformations

为众多著名图片加载框架(glide,Picasso,Fresco等)提供图片形状变幻能力的框架 。
github https://github.com/wasabeef/glide-transformations
作者:Daichi Furiya
使用:

implementation ‘jp.wasabeef:glide-transformations:2.0.2’// If you want to use the GPU Filtersimplementation ‘jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1’

Android-gpuimage

一款基于OpenGL的图片渲染引擎,Android版的android-gpuimage就提供多达70多种图片渲染效果,你还在好奇美图秀秀是如何实现图片变幻的?有了它,一 切都不是问题。如果你是美图工具类的工程师,此框架的建设思路也会对你大有裨益。
地址:
github
https://github.com/CyberAgent/android-gpuimage
作者:CyberAgent 团队
使用:

implementation ‘jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1’

photoview

PhotoView旨在帮助生成一个易于使用的缩放Android ImageView实现。
地址:
github
https://github.com/chrisbanes/PhotoView
使用:
Add this in your root build.gradle file (not your module build.gradle file):

allprojects {repositories {        maven { url "https://jitpack.io" }    }}

Then, add the library to your module build.gradle

dependencies {    implementation 'com.github.chrisbanes:PhotoView:latest.release.here'}

circleimageview

一个快速的圆形图像视图,非常适合侧面图像。这是基于来自文斯米的RoundedImageView,它本身基于Romain Guy推荐的技术。
地址:
github
https://github.com/hdodenhof/CircleImageView
使用:

dependencies {    implementation 'de.hdodenhof:circleimageview:3.1.0'}

RoundedImageView

基于Romain Guy的原始示例,支持圆角(和椭圆形或圆形)的快速ImageView(可绘制)。它支持许多附加特性,包括椭圆、圆形矩形、scaleType和TileModes。
地址:
github
https://github.com/vinc3m1/RoundedImageView
使用:

repositories {    mavenCentral()}dependencies {    compile 'com.makeramen:roundedimageview:2.3.0'}

android-gif-drawable

Android中GIF的视图和绘图。
地址:
github
https://github.com/koral–/android-gif-drawable
使用:
Insert the following dependency to build.gradle file of your project.

dependencies {    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'}

Note that Maven central repository should be defined eg. in top-level build.gradle like this:

buildscript {    repositories {        mavenCentral()    }}allprojects {    repositories {        mavenCentral()    }}

Luban

Android图片压缩工具,仿微信朋友圈压缩策略。
地址:
github
https://github.com/Curzibn/Luban
使用:

implementation 'top.zibin:Luban:1.1.8'

Compressor

Compressor是一个轻量级且功能强大的android图像压缩库。压缩器可以将大照片压缩成更小尺寸的照片,而图像质量的损失非常小或可以忽略不计。
地址:
github
https://github.com/zetbaitsu/Compressor
使用:

dependencies {    implementation 'id.zelory:compressor:3.0.0'}

android-stackblur

Android StackBlur是一个库,可以根据渐变或半径对位图执行模糊效果,并返回结果。
地址:
github
https://github.com/kikoso/android-stackblur

Blurry

Blurry是Android的一个简单的模糊库。
地址:
github
https://github.com/wasabeef/Blurry
使用:

dependencies {    compile 'jp.wasabeef:blurry:3.x.x'}

blurkit-android

BlurKit是一个非常容易使用和执行的实用程序,可以在Android中渲染实时模糊效果。
地址:
github
https://github.com/CameraKit/blurkit-android
使用:

dependencies {    implementation 'io.alterac.blurkit:blurkit:1.1.0'}

BlurView

BlurView可以用作常规框架布局。它模糊了其底层内容,并将其作为子对象的背景。当检测到视图层次结构中的更改时,BlurView将重新绘制其模糊的内容(调用draw())。它支持其位置和大小的更改,包括视图动画和属性动画。
地址:
github
https://github.com/Dimezis/BlurView
使用:

implementation 'com.eightbitlab:supportrenderscriptblur:1.0.2'

ImageBlurring

Android 中通过 Java 与 JNI 分别进行图片模糊。
地址:
github
https://github.com/qiujuer/ImageBlurring/blob/master/README-ZH.md

图片裁剪框架

uCrop

该项目旨在提供一个终极和灵活的图像裁剪体验。
地址:
github
https://github.com/Yalantis/uCrop
使用:

allprojects {   repositories {      jcenter()      maven { url "https://jitpack.io" }   }}implementation 'com.github.yalantis:ucrop:2.2.5' - lightweight general solutionimplementation 'com.github.yalantis:ucrop:2.2.5-native' - get power of the native code to preserve image quality (+ about 1.5 MB to an apk size)

cropper

该项目是一种图像裁剪工具。它提供了一种以XML和编程方式设置图像的方法,并在图像顶部显示可调整大小的裁剪窗口。
地址:
github
https://github.com/edmodo/cropper
使用:

repositories {mavenCentral()}dependencies {  compile 'com.edmodo:cropper:1.0.1'}

Android-Image-Cropper

该项目功能强大(缩放、旋转、多源)、可定制(形状、限制、样式)、优化(异步、采样、矩阵)和简单的Android图像裁剪库。
地址:
github
https://github.com/ArthurHub/Android-Image-Cropper
使用:

dependencies {    api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'}

PhotoCropper

PhotoCropper是一个重量轻但又锋利又智能的工具,可以帮助你在android设备上裁剪照片。通过为开发人员提供一个简单的回调接口,并将裁剪照片的技巧封装到库中。它使逻辑变得更容易和简单。
地址:
github https://github.com/ryanhoo/PhotoCropper
使用:
It’s really easy to use

PhotoCrop

PhotoCrop是一种图像裁剪工具。它提供了一种以XML和编程方式设置图像的方法,并在图像。使用方法getCroppedImage()返回由裁剪窗口标记的位图。
它提供了裁剪图像的功能,图像可以调整大小,缩放,而裁剪窗口保持静态,类似于facebook用户可以进行循环裁剪和矩形裁剪图像。裁剪窗户也有圆形和矩形。
地址:
github
https://github.com/albinmathew/PhotoCrop
使用:

compile 'com.albinmathew:photo-crop-library:1.0.3'

图片选择框架

MultiImageSelector

Android设备的图像选择器。支持单选和多选。
地址:
github
https://github.com/lovetuzitong/MultiImageSelector
使用:

repositories {    maven { url "https://jitpack.io" }}dependencies {    compile 'com.github.lovetuzitong:MultiImageSelector:1.2'}

TakePhoto

TakePhoto是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库
地址:
github
https://github.com/crazycodeboy/TakePhoto
使用:

  compile 'com.jph.takephoto:takephoto_library:4.1.0'

Maven:

  com.jph.takephoto  takephoto_library  4.1.0  pom

RxGalleryFinal

RxGalleryFinal是一个android图片/视频文件选择器。其支持多选、单选、拍摄和裁剪,主题可自定义,无强制绑定第三方图片加载器。
地址:
github
https://github.com/FinalTeam/RxGalleryFinal
使用:

 compile 'cn.finalteam.rxgalleryfinal:library:1.1.3'

boxing

基于MVP模式的Android多媒体选择器,B站出品。
地址:
github
https://github.com/bilibili/boxing/blob/master/README_CN.md
使用:

compile 'com.bilibili:boxing:1.0.4'

网络请求框架

Android Async HTTP

一款基于Http协议的异步请求的网络框架。
github https://github.com/loopj/android-async-http
作者:James Smith
使用:

implementation ‘com.loopj.android:android-async-http:1.5.0-SNAPSHOT’

AndroidAsync

异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程。
地址:
https://github.com/koush/AndroidAsync/tree/master/AndroidAsync/src/com/koushikdutta/async
使用:

implementation ‘com.koushikdutta.async:androidasync:2.+’

OkHttp

okhttp是一款基于HTTP和HTTP2.0协议的网络框架,服务于java和android客户端,专注网络请求的安全高效。
地址
http://square.github.io/okhttp/
github https://github.com/square/okhttp
作者:square团队
使用:

implementation ‘com.squareup.okhttp3:okhttp:3.8.0’

Retrofit

一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言。
Retrofit2.0开始内置okhttp框 架,Retrofit专注封装接口完成业务需求,okhttp专注网络请求的安全高效
地址

github https://github.com/square/retrofit
作者:square团队
使用:

implementation ‘com.squareup.retrofit2:retrofit:2.3.0’

Volley

google推荐使用的Android端网络请求框架
github
https://github.com/google/volley
作者:google

数据解析框架

Gson

Gson是谷歌官方推出的支持 JSON – Java Object 相互转换的 Java序列化/反序列化 库。
地址:
github
https://github.com/google/gson
作者:google
使用:

implementation ‘com.google.code.gson:gson:2.8.4’

Jackson

相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换。
地址:
github
https://github.com/codehaus/jackson
使用:

compile ‘org.codehaus.jackson:jackson-mapper-asl:1+’compile ‘org.codehaus.jackson:jackson-core-asl:1+’

Fastjson

一款基于json解析、生成的框架,快速是它最大的特性,阿里巴巴的出身保证了代码的质量和优越。
github
https://github.com/alibaba/fastjson
作者:alibaba
使用:

compile 'com.alibaba:fastjson:1.2.70'compile 'com.alibaba:fastjson:1.1.71.android'

Jsoup

方便的增删查改HTML中的元素
地址:

https://github.com/jhy/jsoup
使用:

compile ‘org.jsoup:jsoup:1.9.2’

数据库框架

OrmLite

JDBC和Android的轻量级ORM java包
地址:

https://github.com/j256/ormlite-core
https://github.com/j256/ormlite-android
使用:

compile ‘com.j256.ormlite:ormlite-core:5.0’compile ‘com.j256.ormlite:ormlite-android:5.0’

Sugar

用超级简单的方法处理Android数据库,不用写复杂的sql语句,而用简单的API即可完成创建和操纵数据
地址:

https://github.com/chennaione/sugar
使用:

compile 'com.github.satyan:sugar:1.5'

GreenDAO

GreenDAO是一款高效、快速的SQLite型数据库,号称Android最快的关系型数据库支持数据库加密 greendao支持SQLCipher进行数据库加密
github https://github.com/greenrobot/greenDAO
使用:

//Add the following Gradle configuration to your Android project. In your root build.gradle file:buildscript {    repositories {        jcenter()        mavenCentral() // add repository    }    dependencies {        classpath 'com.android.tools.build:gradle:3.5.3'        classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' // add plugin    }}//In your app modules app/build.gradle file:apply plugin: 'com.android.application'apply plugin: 'org.greenrobot.greendao' // apply plugindependencies {    implementation 'org.greenrobot:greendao:3.3.0' // add library}

ActiveAndroid

极大的简化数据库的使用,使用面向对象的方式管理数据库,告别手写SQL历史。每一个数据库表都可以映射为一个类。
地址:

https://github.com/pardom-zz/ActiveAndroid
使用:

compile ‘com.michaelpardo:activeandroid:3.1.0-SNAPSHOT’

SQLBrite

响应式数据库框架,对 Android 系统的SQLiteOpenHelper和 ContentResolver 的轻量级封装,配合Rxjava使用。
地址:

https://github.com/square/sqlbrite
使用:

compile ‘com.squareup.sqlbrite:sqlbrite:0.7.0’在处理线程问题时,由于要使用到RxAndorid中相关的类,所以我们还要引入compile ‘io.reactivex:rxandroid:1.1.0’

Realm

Realm是一款移动端数据库框架,核心数据引擎C++打造,比普通的Sqlite型数据库快的多。
地址:
github
https://github.com/realm/realm-java
作者:Realm团队
使用:

compile ‘org.jsoup:jsoup:1.11.3’

android-database-sqlcipher

数据库加密
地址:
github
https://github.com/sqlcipher/android-database-sqlcipher
使用:

implementation "net.zetetic:android-database-sqlcipher:4.4.0"implementation "androidx.sqlite:sqlite:2.0.1"

storio

SQLiteDatabase和ContentResolver的API
地址:
github
https://github.com/pushtorefresh/storio
使用:

// If you need StorIO for SQLiteimplementation 'com.pushtorefresh.storio3:sqlite:3.0.1'// If you need StorIO for ContentResolverimplementation 'com.pushtorefresh.storio3:content-resolver:3.0.1'// Notice that RxJava is optional dependency for StorIO,// So if you need it -> please add it manually.

ObjectBox

ObjectBox是一个超高速的面向对象数据库,具有强大的关系支持。ObjectBox嵌入到Android、Linux、macOS或Windows应用程序中。相信不少人都用过GreenDao和EventBus,这两库都是greenrobot公司出品。ObjectBox也是该公司出品。GreenDao号称是最快的与SQLite的对象关系映射(ORM)。但是自从2011年以来,公司声称发现了许多的缺陷,有很多问题影响了性能。所以开发出另外一套性能最好且易用的NoSQL数据库,优于其他数据库5-15倍的性能。
地址:
github
https://github.com/objectbox/objectbox-java
使用:
Add this to your root build.gradle (project level):

buildscript {    ext.objectboxVersion = '2.6.0'    dependencies {        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"    }}

And this to our app’s build.gradle (module level):

apply plugin: 'io.objectbox' // after applying Android plugin

依赖注入框架

ButterKnife

提供了一种能力——使用注解生成模板代码,将view与方法和参数绑定。帮助开发者省却了频繁findviewbyid的烦恼,最新的Butter Knife还提供了onclick绑定以及字符串的初始化。
地址:
github:
https://github.com/JakeWharton/butterknife
作者:JakeWharton ,也是square团队成员之一
使用:

  implementation 'com.jakewharton:butterknife:10.2.1'  annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'

Dagger2

一款通过依赖注入降低程序间耦合的开发框架,如今google团队接手的dagger2版本,强力开发团队保证了代码在 设计上的优越性
地址:
github :
https://github.com/google/dagger
作者:google
使用:

// Add Dagger dependencies

dependencies {  api 'com.google.dagger:dagger:2.x'  annotationProcessor 'com.google.dagger:dagger-compiler:2.x'}

//If you’re using classes in dagger.android you’ll also want to include:

api 'com.google.dagger:dagger-android:2.x'api 'com.google.dagger:dagger-android-support:2.x' // if you use the support librariesannotationProcessor 'com.google.dagger:dagger-android-processor:2.x'

AndroidAnotations

可以加速Android的开发。它负责管道,让你专注于真正重要的事情。通过简化代码,它简化了代码的维护。
地址:

https://github.com/androidannotations/androidannotations
使用:

dependencies {annotationProcessor “org.androidannotations:androidannotations:2.7”compile “org.androidannotations:androidannotations-api:2.7”}

图表框架

WilliamChart

Android图表库,已支持的功能,折线图,条形图,横向条形图,堆叠柱形图,横向堆叠柱形图
地址:

https://github.com/diogobernardino/WilliamChart
使用:
// Charts

implementation 'com.diogobernardino:williamchart:3.7.1'

// Tooltips

implementation 'com.diogobernardino.williamchart:tooltip-slider:3.7.1'implementation 'com.diogobernardino.williamchart:tooltip-points:3.7.1'

HelloCharts

一个用来生成统计图表的三方库,目前支持折线图、柱状图和饼状图等常见图表。支持缩放、滑动和动画效果。
地址:

https://github.com/lecho/hellocharts-android
使用:
//Maven Central/jCenter, add dependency to your build.gradle:

   dependencies{compile 'com.github.lecho:hellocharts-library:1.5.8@aar'   }

//JitPack.io, add jitpack.io repositiory and dependency to your build.gradle:

repositories {       maven {           url "https://jitpack.io"       }   }   dependencies {       compile 'com.github.lecho:hellocharts-android:v1.5.8'   }

MPAndroidChart

快速、简洁。强大著称的图表框架
地址:
github
https://github.com/PhilJay/MPAndroidChart
作者:PhilJay
使用:

repositories {    maven { url 'https://jitpack.io' }}dependencies {    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'}

后台处理框架

Tape

Android和Java中使用的与队列类相关的集合类,轻快的、事务性的、基于文件的FIFO(先进先出)
地址:

https://github.com/square/tape
使用:

compile 'com.squareup.tape2:tape:2.0.0-beta1'

Android Priority Job Queue

提供后台任务管理能力的框架,不论是Activity重新加载、Service使用线程池时的任务优先级和并发问题,都不要担心,Job Manage会照顾优先级,持久性,负载平衡,延迟,网络控制,分组,优秀的多线程管理能力。
地址:
github
https://github.com/yigit/android-priority-jobqueue
作者:Yigit
使用:

  compile 'com.birbit:android-priority-jobqueue:2.0.1'

事件总线框架

EventBus

是一款本地组件间通信框架,在大型项目的Activities,fragments,Threads,Services都可以看到它的使用场景,尽管 EventBus在向未创建的组件传递事件时有些局限,仅适合在“活着的”组件间传递消息,但仍不妨碍它活跃在各个大型项目各个场景里。
地址:
github
https://github.com/greenrobot/EventBus
作者 greenrobot
使用:

implementation 'org.greenrobot:eventbus:3.2.0'

Otto

一款老旧且强大的事件总线框架。是 square团队早先推出的事件响应型框架,淘宝app的事件驱动也是基于此框架封装的,如今square已经建议开发者采用RxJava RxAndroid来代替otto了。
地址:
github
https://github.com/square/otto
作者:square
使用:

implementation 'com.squareup:otto:1.3.8'

HermesEventBus

HermesEventBus是一个基于EventBus的、能在进程间发送和接收event的库,在IPC或者插件开发中非常有用。它底层基于EventBus,并且和EventBus有相同API。
地址:
github
https://github.com/Xiaofei-it/HermesEventBus/blob/master/README-zh-CN.md
使用:

dependencies {    compile 'xiaofei.library:hermes-eventbus:0.3.0'}

响应式编程框架

RxJava

一款Android客户端组件间异步通信的框架,RxAndroid是用来取代AnsyTask的。
地址:
github
https://github.com/ReactiveX/RxAndroid
作者 JakeWharton
使用:

allprojects {    repositories {        maven { url "https://oss.jfrog.org/libs-snapshot" }    }}dependencies {    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'    // Because RxAndroid releases are few and far between, it is recommended you also    // explicitly depend on RxJava's latest version for bug fixes and new features.    // (see https://github.com/ReactiveX/RxJava/releases for latest 3.x.x version)    implementation 'io.reactivex.rxjava3:rxjava:3.0.0'}

RxJavaJoins

RxJava提供Joins操作(排列组合效果)
地址:

https://github.com/ReactiveX/RxJavaJoins
使用:

compile 'io.reactivex:rxjava-joins:0.22.0'

RxAndroid

一款Android客户端组件间异步通信的框架
地址:
https://github.com/ReactiveX/RxAndroid
使用:

allprojects {    repositories {        maven { url "https://oss.jfrog.org/libs-snapshot" }    }}dependencies {    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'    // Because RxAndroid releases are few and far between, it is recommended you also    // explicitly depend on RxJava's latest version for bug fixes and new features.    // (see https://github.com/ReactiveX/RxJava/releases for latest 3.x.x version)    implementation 'io.reactivex.rxjava3:rxjava:3.0.0'}

RxBinding

一款提供UI组件事件响应能力的框架,通过RXBinding,你将理解响应式编程的快乐,让项目里的事件流程更清晰。
地址:
github
https://github.com/JakeWharton/RxBinding
作者:JakeWharton
使用:
Platform bindings:

implementation 'com.jakewharton.rxbinding4:rxbinding:4.0.0'

AndroidX library bindings:

implementation 'com.jakewharton.rxbinding4:rxbinding-core:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-appcompat:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-drawerlayout:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-leanback:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-recyclerview:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-slidingpanelayout:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-swiperefreshlayout:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-viewpager:4.0.0'implementation 'com.jakewharton.rxbinding4:rxbinding-viewpager2:4.0.0'

Google ‘material’ library bindings:

implementation 'com.jakewharton.rxbinding4:rxbinding-material:4.0.0'

Agera

google专门推出一套响应式编 程框架服务于Android开发者,相比于之响应式编程框架榜首的 RxJava RxAndroid,它更轻量,两者最大的不同点在于agera基于push event、pull data (VS Rx系列 push data)。
地址:
github
https://github.com/google/agera
作者:Google
使用:

 compile 'com.google.android.agera:agera:1.4.0'

扩展能力

 compile 'com.google.android.agera:content:1.4.0' compile 'com.google.android.agera:database:1.4.0' compile 'com.google.android.agera:net:1.4.0' compile 'com.google.android.agera:rvadapter:1.4.0' compile 'com.google.android.agera:rvdatabinding:1.4.0'

RxLifecycle

使用RxJava的Android应用程序的生命周期处理api
地址:
github
https://github.com/trello/RxLifecycle
使用:

implementation 'com.trello.rxlifecycle4:rxlifecycle:4.0.0'// If you want to bind to Android-specific lifecyclesimplementation 'com.trello.rxlifecycle4:rxlifecycle-android:4.0.0'// If you want pre-written Activities and Fragments you can subclass as providersimplementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.0'// If you want pre-written support preference Fragments you can subclass as providersimplementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.0'// If you want to use Android Lifecycle for providersimplementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.0'// If you want to use Kotlin syntaximplementation 'com.trello.rxlifecycle4:rxlifecycle-kotlin:4.0.0'// If you want to use Kotlin syntax with Android Lifecycleimplementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle-kotlin:4.0.0'

Log框架

Logger

一款让log日志优雅显示的框架。它最大的亮点是优雅的输出log信息,并且支持多种格式:线程、Json、Xml、List、Map等
地址:
github
https://github.com/orhanobut/logger
作者:Orhan Obut
使用:

implementation 'com.orhanobut:logger:2.2.0'

Hugo

在调试版本上注解的触发方法进行日志记录
地址:
github
https://github.com/JakeWharton/hugo
使用:

buildscript {  repositories {    mavenCentral()  }  dependencies {    classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'  }}apply plugin: 'com.android.application'apply plugin: 'com.jakewharton.hugo'

Timber

一个小的,可扩展的日志工具
地址:
github https://github.com/JakeWharton/timber
使用:

implementation 'com.jakewharton.timber:timber:4.7.1'

测试框架

Mockito

用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。
(http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html)
https://github.com/mockito/mockito

Robotium

面向Android端的开源自动化测试框架,Robotium结合Android自身提供的测试框架可以对应用程序进行自动化测试。另外,Robotium还支持对WebView的操作。Robotium的核心类是Solo,通过Solo可以对控件进行各种操作。
https://github.com/RobotiumTech/robotium

Robolectric

一款不依赖于Android设备的单元测试框架。
github
https://github.com/robolectric/robolectric
作者:robolectric
使用:

testImplementation "org.robolectric:robolectric:4.3.1"

调试框架

Stetho

一款提供在Chrome开发者工具上调试Android app能力的开源框架
github
https://github.com/facebook/stetho
使用:

implementation 'com.facebook.stetho:stetho:1.5.1'

性能优化框架

LeakCanary

一款内存检测框架,服务于java和android客户端,最大的特点,只需在应用的apllication中集成,就可以直接使用它;
github
https://github.com/square/leakcanary
作者 square团队
使用:

debugCompile ‘com.squareup.leakcanary:leakcanary-android:1.5.1’releaseCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.1’testCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.1’

ACRA

一款提供记录APP崩溃日志能力的框架,acra有足够的能力记录线上APP,并且发回服务端,acra也提供了相当棒的崩溃日志统计服务端框架Acralyzer,cralyzer工作在Apache CouchDB
github
https://github.com/ACRA/acra
服务端github https://github.com/ACRA/acralyzer
作者:acra团队

Google Guava

Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。
地址:
github
https://github.com/google/guava

热修复框架

tinker

Tinker是一个针对Android的热修复解决方案库,它支持dex、库和资源更新,而无需重新安装apk。
地址:
github
https://github.com/Tencent/tinker
使用:
Add tinker-gradle-plugin as a dependency in your main build.gradle in the root of your project:

buildscript { dependencies {        classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1')    }}

Then you need to “apply” the plugin and add dependencies by adding the following lines to your app/build.gradle.

dependencies {    //optional, help to generate the final application    provided('com.tencent.tinker:tinker-android-anno:1.9.1')    //tinker's main Android lib    compile('com.tencent.tinker:tinker-android-lib:1.9.1')}......apply plugin: 'com.tencent.tinker.patch'

AndFix

AndFix是一种在线修复bug的解决方案,而不是重新发布Android应用程序。它是作为Android库分发的。Andfix是“Android热修复”的缩写。AndFix支持从2.3到7.0的Android版本,包括ARM和X86架构,Dalvik和ART runtime,都是32位和64位。AndFix补丁的压缩文件格式是.apatch。它会从您自己的服务器发送到客户端,以修复应用程序的错误。
地址:
github
https://github.com/alibaba/AndFix
使用:
For your maven dependency,

  com.alipay.euler  andfix  0.5.0  aar

For your gradle dependency,

dependencies {compile 'com.alipay.euler:andfix:0.5.0@aar'}

dexposed

Dexposed是基于开源Xposed framework项目的工作,为Android应用程序开发提供了一个功能强大且无侵入性的运行时AOP(面向方面编程)框架。任何非侵入性的、非侵入性的代码都是由AOTEP实现的。集成非常简单,只需在应用程序的初始化阶段用一行代码加载一个小的JNI库。不仅是你的应用程序的代码,还有运行在你的应用程序进程中的Android框架的代码可以被钩住。这个特性在Android开发中非常有用,因为我们开发人员非常依赖Android平台(SDK)的碎片化旧版本。在不改变应用程序的动态加载行为的情况下,可以有效地将动态加载到一个小的应用程序类中。
地址:
github
https://github.com/alibaba/dexposed
使用:

dependencies {    compile 'com.taobao.android:dexposed:0.1.1@aar'}

二维码框架

Zxing

一个二维码开源框架
地址:
github
https://github.com/zxing/zxing

BGAQRCode-Android

扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
地址:
github
https://github.com/bingoogolapple/BGAQRCode-Android
使用:
ZXing

dependencies {    implementation 'cn.bingoogolapple:bga-qrcode-zxing:latestVersion'}

ZBar

dependencies {    implementation 'cn.bingoogolapple:bga-qrcode-zbar:latestVersion'}

zxing-android-embedded

安卓条形码扫描库,使用ZXing用于解码。该项目松散地基于中兴安卓条形码扫描仪应用,但不隶属于正式的ZXing项目。特点:
可以通过Intents使用(只需要很少的代码)。
可以嵌入到活动中,用于用户界面和逻辑的高级定制。
扫描可以在横向或纵向模式下进行。
摄像机在后台线程中管理,以加快启动时间。
示例应用程序可在中获得 Releases。
默认情况下,安卓SDK 24+是必需的,因为中兴:核心3.4.0。要支持SDK 14+,请参见旧的SDK版本。
地址:
github
https://github.com/journeyapps/zxing-android-embedded
使用:
Add the following to your build.gradle file:

repositories {    jcenter()}dependencies {    implementation 'com.journeyapps:zxing-android-embedded:4.1.0'    implementation 'androidx.appcompat:appcompat:1.0.2'}android {    buildToolsVersion '28.0.3' // Older versions may give compile errors}

For Android SDK versions < 24, you can downgrade zxing:core to 3.3.0 or earlier for Android 14+ support:

repositories {    jcenter()}dependencies {    implementation('com.journeyapps:zxing-android-embedded:4.1.0') { transitive = false }    implementation 'androidx.appcompat:appcompat:1.0.2'    implementation 'com.google.zxing:core:3.3.0'}android {    buildToolsVersion '28.0.3'}

多媒体框架

ijkplayer

Bilibili开源的视频播放器
地址:
github
https://github.com/Bilibili/ijkplayer
使用:

# requiredallprojects {    repositories {        jcenter()    }}dependencies {    # required, enough for most devices.    compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'    compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'    # Other ABIs: optional    compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'    compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'    compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'    compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'    # ExoPlayer as IMediaPlayer: optional, experimental    compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'}

DanmakuFlameMaster

android上开源弹幕解析绘制引擎项目。
地址:
github
https://github.com/Bilibili/DanmakuFlameMaster
使用:
Download the latest version or grab via Maven:

  com.github.ctiao  dfm  0.9.25

or Gradle:

repositories {    jcenter()}dependencies {    compile 'com.github.ctiao:DanmakuFlameMaster:0.9.25'    compile 'com.github.ctiao:ndkbitmap-armv7a:0.9.21'    # Other ABIs: optional    compile 'com.github.ctiao:ndkbitmap-armv5:0.9.21'    compile 'com.github.ctiao:ndkbitmap-x86:0.9.21'}

Vitamio

一款全能多媒体开发框架,全面支持硬件解码与 GPU 渲染
地址:
github
https://github.com/yixia/VitamioBundle
使用:
https://github.com/yixia/VitamioBundle/wiki/Getting-Started

FFmpeg

一个基于C语言的多媒体开源框架
地址:
github
https://github.com/FFmpeg/FFmpeg
.

ExoPlayer

ExoPlayer是一款适用于Android的应用程序级媒体播放器。它为Android的MediaPlayer API提供了一个替代方案,可以在本地和互联网上播放音频和视频。ExoPlayer支持Android的MediaPlayer API目前不支持的功能,包括DASH和SmoothStreaming自适应回放。与MediaPlayer API不同,ExoPlayer易于定制和扩展,并且可以通过Play Store应用程序更新进行更新。
地址:
github
https://github.com/google/ExoPlayer
使用:

implementation 'com.google.android.exoplayer:exoplayer:2.X.X'

金山云Android采集推流SDK

KSYStreamer_Android

金山云Android采集推流SDK(Livestream SDK),支持内置/自定义美颜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Voice Mixer)、混响(Reverb)、画中画(PIP)、连麦(RTC)、动态贴纸(Sticker)

汉语转拼音框架

TinyPinyin

适用于Java和Android的快速、低内存占用的汉字转拼音库。
地址:
github
https://github.com/promeG/TinyPinyin
使用:

buildscript {  repositories {    jcenter()  }  dependencies {    compile 'com.github.promeg:tinypinyin:2.0.3' // TinyPinyin核心包,约80KB    compile 'com.github.promeg:tinypinyin-lexicons-android-cncity:2.0.3' // 可选,适用于Android的中国地区词典    compile 'com.github.promeg:tinypinyin-lexicons-java-cncity:2.0.3' // 可选,适用于Java的中国地区词典  }}

下载框架

MultiThreadDownload

Android多线程下载库。
地址:
github
https://github.com/Aspsine/MultiThreadDownload

FileDownloader

Android 文件下载引擎,稳定、高效、灵活、简单易用
地址:
github
https://github.com/lingochamp/FileDownloader

RxDownload

基于RxJava和Retrofit打造的下载工具, 支持多线程下载和断点续传, 智能判断是否支持断点续传等功能,使用Kotlin编写。
地址:
github
https://github.com/ssseasonnn/RxDownload

FileDownloader

FileDownloader是安卓上轻量级Http/Https文件下载框架,我的目标是让安卓文件下载越简单越好,尽可能以最简洁明了的方式完成复杂需求。
地址:
github
https://github.com/wlfcolin/file-downloader

动画框架

ViewAnimator

一个流畅的安卓动画库!
地址:
github https://github.com/florent37/ViewAnimator

三、优秀的开源项目

BGAPhotoPicker-Android

Android 图片选择、预览、九宫格图片控件、拖拽排序九宫格图片控件
地址:
github https://github.com/bingoogolapple/BGAPhotoPicker-Android

material-calendarview

material design 风格的日历控件
地址:
github
https://github.com/prolificinteractive/material-calendarview

MaterialDateTimePicker

日期时间选择器
地址:
github
https://github.com/wdullaer/MaterialDateTimePicker

AndroidPicker

安卓选择器类库,包括日期时间选择器、单项选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器、星座选择器等。
地址:
github
https://github.com/jdsjlzx/AndroidPicker

Android-PickerView

仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果
地址:
github
https://github.com/Bigkoo/Android-PickerView

AndroidUtilCode

代码段库
地址:
github
https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/README-CN.md

仿抖音APP

技术点及特点:
全屏切换播放效果用的是Recycler加PagerSnapHelper控制。
使用lottie库加载json动画,json动画由VUE制作
点赞心形动画
分享评论弹框用的是BottomSheetDialogFragment
个人主页用的是CoordinatorLayout+AppBarLayout折叠布局。

地址:
github
https://github.com/18380438200/Tiktok

Eyepetizer

基于 Kotlin 语言仿写「开眼 Eyepetizer」的一个短视频 Android 客户端项目,采用 Jetpack + 协程实现的 MVVM 架构。整个项目没有复杂的封装,同时项目开发规范参考了 Kotlin 官方文档 与第三方 AndroidStandardDevelop。个人认为代码还是比较容易阅读理解的,因此也非常适合新手入门 Kotlin 语言,同时更快地掌握 Jetpack 组件的使用。
地址:
github
https://github.com/VIPyinzhiwei/Eyepetizer

悬浮窗需求终结者

已投入公司项目多时,没有任何毛病,可胜任任何需求
地址:
github
https://github.com/getActivity/XToast
如果是普通的 Toast 封装推荐使用 ToastUtils
地址:
github
https://github.com/getActivity/ToastUtils

更多相关文章

  1. 万字长文带你了解最常用的开源 Squid 代理服务器
  2. Android(安卓)经验交流分享报告笔记
  3. Android通过手势实现图片按照指定路径移动
  4. 转-Android之PreferenceActivity
  5. Android拖动图片及多层图片叠加
  6. Android百度地图开发
  7. [RK3399][Android7.1] 调试笔记 --- 设置系统默认相机为1080p
  8. # Android(Eclipse)——拍照(打开相机)+保存到本地+显示原图(不是压
  9. 几本二手书出售Android/WP/设计模式算法等,基本全新

随机推荐

  1. android studio 文件重命名快捷键
  2. Android 反射获得控件对象
  3. Android 升级Android Studio升级3.5提示
  4. Android 添加菜单
  5. [Android] ImageButton | Button | TextV
  6. Android weex的使用
  7. android取得当前程序File与Cache路径!
  8. Android改变标题栏背景和文字颜色
  9. Android新手入门实例之Android漂亮时钟的
  10. Android ViewPager和PagerAdapter简单代