涵盖Android方方面面的技术, 目前保持更新. 时刻与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/
Java实现基于LRU的磁盘缓存,DiskLruCache不是google官方所写,但是得到了官方推荐,DiskLruCache没有编写到SDK中去,如需使用可直接copy这个类到项目中去。使用场景:如“清除缓存”,DiskLruCache一句话就可以搞定!
地址:
github https://github.com/JakeWharton/DiskLruCache
作者:JakeWharton
使用:
implementation 'com.jakewharton:disklrucache:2.0.2'
一个为android制定的轻量级的开源缓存框架
地址:
github https://github.com/yangfuhai/ASimpleCache
Android 缓存库,融合了DiskLruCache和ASimpleCache
地址:
github https://github.com/hongyangAndroid/base-diskcache
UIL曾经的图片加载框架王者,android开发老手都用过它。提供了大量配置方式,图片加载状态的回调(成功,失败,进行中),加载动画等;以及提供了移动端图片加载框架的缓存思路:三级缓存策略 sd卡-内存-网络
github https://github.com/nostra13/Android-Universal-Image-Loader
作者 nostra13
使用:
implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
强力的图片下载、缓存框架。更强调图片下载,你可以将picasso集成进你的项目中,你也可以结合gilde和UIL与picasso,三者一齐封装至你的项目中,按需所用。
github https://github.com/square/picasso
作者 square团队
使用:
implementation 'com.squareup.picasso:picasso:2.5.2'
可以管理图片内存的框架在管理图片内存领域上有着它的一片天地,渐进式加载、加载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
是一款专注于提供流畅划动能力的“图片加载和缓存框架”图片加载类框架排名第一的框架,google 在2014开发者大会上演示的camera app就是基于gilde框架开发的地址:
github https://github.com/bumptech/glide
作者 Bump Technologies团队
使用:
implementation ‘com.github.bumptech.glide:glide:4.5.0’
Picasso提供多种图片变换的库。
地址:github https://github.com/wasabeef/picasso-transformations
作者 square团队
使用:
implementation 'jp.wasabeef:picasso-transformations:2.1.0'
// If you want to use the GPU Filters
implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
为众多著名图片加载框架(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 Filters
implementation ‘jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1’
一款基于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旨在帮助生成一个易于使用的缩放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'
}
一个快速的圆形图像视图,非常适合侧面图像。这是基于来自文斯米的RoundedImageView,它本身基于Romain Guy推荐的技术。
地址:
github https://github.com/hdodenhof/CircleImageView
使用:
dependencies {
implementation 'de.hdodenhof:circleimageview:3.1.0'
}
基于Romain Guy的原始示例,支持圆角(和椭圆形或圆形)的快速ImageView(可绘制)。它支持许多附加特性,包括椭圆、圆形矩形、scaleType和TileModes。
地址:
github https://github.com/vinc3m1/RoundedImageView
使用:
repositories {
mavenCentral()
}
dependencies {
compile 'com.makeramen:roundedimageview:2.3.0'
}
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()
}
}
Android图片压缩工具,仿微信朋友圈压缩策略。
地址:
github https://github.com/Curzibn/Luban
使用:
implementation 'top.zibin:Luban:1.1.8'
Compressor是一个轻量级且功能强大的android图像压缩库。压缩器可以将大照片压缩成更小尺寸的照片,而图像质量的损失非常小或可以忽略不计。
地址:
github https://github.com/zetbaitsu/Compressor
使用:
dependencies {
implementation 'id.zelory:compressor:3.0.0'
}
Android StackBlur是一个库,可以根据渐变或半径对位图执行模糊效果,并返回结果。
地址:
github https://github.com/kikoso/android-stackblur
Blurry是Android的一个简单的模糊库。
地址:
github https://github.com/wasabeef/Blurry
使用:
dependencies {
compile 'jp.wasabeef:blurry:3.x.x'
}
BlurKit是一个非常容易使用和执行的实用程序,可以在Android中渲染实时模糊效果。
地址:
github https://github.com/CameraKit/blurkit-android
使用:
dependencies {
implementation 'io.alterac.blurkit:blurkit:1.1.0'
}
BlurView可以用作常规框架布局。它模糊了其底层内容,并将其作为子对象的背景。当检测到视图层次结构中的更改时,BlurView将重新绘制其模糊的内容(调用draw())。它支持其位置和大小的更改,包括视图动画和属性动画。
地址:
github https://github.com/Dimezis/BlurView
使用:
implementation 'com.eightbitlab:supportrenderscriptblur:1.0.2'
Android 中通过 Java 与 JNI 分别进行图片模糊。
地址:
github https://github.com/qiujuer/ImageBlurring/blob/master/README-ZH.md
该项目旨在提供一个终极和灵活的图像裁剪体验。
地址:
github https://github.com/Yalantis/uCrop
使用:
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
implementation 'com.github.yalantis:ucrop:2.2.5' - lightweight general solution
implementation '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)
该项目是一种图像裁剪工具。它提供了一种以XML和编程方式设置图像的方法,并在图像顶部显示可调整大小的裁剪窗口。
地址:
github https://github.com/edmodo/cropper
使用:
repositories {
mavenCentral()
}
dependencies {
compile 'com.edmodo:cropper:1.0.1'
}
该项目功能强大(缩放、旋转、多源)、可定制(形状、限制、样式)、优化(异步、采样、矩阵)和简单的Android图像裁剪库。
地址:
github https://github.com/ArthurHub/Android-Image-Cropper
使用:
dependencies {
api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
}
PhotoCropper是一个重量轻但又锋利又智能的工具,可以帮助你在android设备上裁剪照片。通过为开发人员提供一个简单的回调接口,并将裁剪照片的技巧封装到库中。它使逻辑变得更容易和简单。
地址:
github https://github.com/ryanhoo/PhotoCropper
使用:
It’s really easy to use
PhotoCrop是一种图像裁剪工具。它提供了一种以XML和编程方式设置图像的方法,并在图像。使用方法getCroppedImage()返回由裁剪窗口标记的位图。
它提供了裁剪图像的功能,图像可以调整大小,缩放,而裁剪窗口保持静态,类似于facebook用户可以进行循环裁剪和矩形裁剪图像。裁剪窗户也有圆形和矩形。
地址:
github https://github.com/albinmathew/PhotoCrop
使用:
compile 'com.albinmathew:photo-crop-library:1.0.3'
Android设备的图像选择器。支持单选和多选。
地址:
github https://github.com/lovetuzitong/MultiImageSelector
使用:
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.lovetuzitong:MultiImageSelector:1.2'
}
TakePhoto是一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库
地址:
github https://github.com/crazycodeboy/TakePhoto
使用:
compile 'com.jph.takephoto:takephoto_library:4.1.0'
Maven:
<dependency>
<groupId>com.jph.takephoto</groupId>
<artifactId>takephoto_library</artifactId>
<version>4.1.0</version>
<type>pom</type>
</dependency>
RxGalleryFinal是一个android图片/视频文件选择器。其支持多选、单选、拍摄和裁剪,主题可自定义,无强制绑定第三方图片加载器。
地址:
github https://github.com/FinalTeam/RxGalleryFinal
使用:
compile 'cn.finalteam.rxgalleryfinal:library:1.1.3'
基于MVP模式的Android多媒体选择器,B站出品。
地址:
github https://github.com/bilibili/boxing/blob/master/README_CN.md
使用:
compile 'com.bilibili:boxing:1.0.4'
一款基于Http协议的异步请求的网络框架。
github https://github.com/loopj/android-async-http
作者:James Smith
使用:
implementation ‘com.loopj.android:android-async-http:1.5.0-SNAPSHOT’
异步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是一款基于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’
一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言。
Retrofit2.0开始内置okhttp框 架,Retrofit专注封装接口完成业务需求,okhttp专注网络请求的安全高效
地址
github https://github.com/square/retrofit
作者:square团队
使用:
implementation ‘com.squareup.retrofit2:retrofit:2.3.0’
google推荐使用的Android端网络请求框架
github https://github.com/google/volley
作者:google
Gson是谷歌官方推出的支持 JSON – Java Object 相互转换的 Java序列化/反序列化 库。
地址:
github https://github.com/google/gson
作者:google
使用:
implementation ‘com.google.code.gson:gson:2.8.4’
相对来说比较高效,在项目中主要使用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+’
一款基于json解析、生成的框架,快速是它最大的特性,阿里巴巴的出身保证了代码的质量和优越。
github https://github.com/alibaba/fastjson
作者:alibaba
使用:
compile 'com.alibaba:fastjson:1.2.70'
compile 'com.alibaba:fastjson:1.1.71.android'
方便的增删查改HTML中的元素
地址:
https://github.com/jhy/jsoup
使用:
compile ‘org.jsoup:jsoup:1.9.2’
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’
用超级简单的方法处理Android数据库,不用写复杂的sql语句,而用简单的API即可完成创建和操纵数据
地址:
https://github.com/chennaione/sugar
使用:
compile 'com.github.satyan:sugar:1.5'
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 plugin
dependencies {
implementation 'org.greenrobot:greendao:3.3.0' // add library
}
极大的简化数据库的使用,使用面向对象的方式管理数据库,告别手写SQL历史。每一个数据库表都可以映射为一个类。
地址:
https://github.com/pardom-zz/ActiveAndroid
使用:
compile ‘com.michaelpardo:activeandroid:3.1.0-SNAPSHOT’
响应式数据库框架,对 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是一款移动端数据库框架,核心数据引擎C++打造,比普通的Sqlite型数据库快的多。
地址:
github https://github.com/realm/realm-java
作者:Realm团队
使用:
compile ‘org.jsoup:jsoup:1.11.3’
数据库加密
地址:
github https://github.com/sqlcipher/android-database-sqlcipher
使用:
implementation "net.zetetic:android-database-sqlcipher:4.4.0"
implementation "androidx.sqlite:sqlite:2.0.1"
SQLiteDatabase和ContentResolver的API
地址:
github https://github.com/pushtorefresh/storio
使用:
// If you need StorIO for SQLite
implementation 'com.pushtorefresh.storio3:sqlite:3.0.1'
// If you need StorIO for ContentResolver
implementation '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嵌入到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
提供了一种能力——使用注解生成模板代码,将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'
一款通过依赖注入降低程序间耦合的开发框架,如今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 libraries
annotationProcessor 'com.google.dagger:dagger-android-processor:2.x'
可以加速Android的开发。它负责管道,让你专注于真正重要的事情。通过简化代码,它简化了代码的维护。
地址:
https://github.com/androidannotations/androidannotations
使用:
dependencies {
annotationProcessor “org.androidannotations:androidannotations:2.7”
compile “org.androidannotations:androidannotations-api:2.7”
}
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'
一个用来生成统计图表的三方库,目前支持折线图、柱状图和饼状图等常见图表。支持缩放、滑动和动画效果。
地址:
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'
}
快速、简洁。强大著称的图表框架
地址:
github https://github.com/PhilJay/MPAndroidChart
作者:PhilJay
使用:
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
}
Android和Java中使用的与队列类相关的集合类,轻快的、事务性的、基于文件的FIFO(先进先出)
地址:
https://github.com/square/tape
使用:
compile 'com.squareup.tape2:tape:2.0.0-beta1'
提供后台任务管理能力的框架,不论是Activity重新加载、Service使用线程池时的任务优先级和并发问题,都不要担心,Job Manage会照顾优先级,持久性,负载平衡,延迟,网络控制,分组,优秀的多线程管理能力。
地址:
github https://github.com/yigit/android-priority-jobqueue
作者:Yigit
使用:
compile 'com.birbit:android-priority-jobqueue:2.0.1'
是一款本地组件间通信框架,在大型项目的Activities,fragments,Threads,Services都可以看到它的使用场景,尽管 EventBus在向未创建的组件传递事件时有些局限,仅适合在“活着的”组件间传递消息,但仍不妨碍它活跃在各个大型项目各个场景里。
地址:
github https://github.com/greenrobot/EventBus
作者 greenrobot
使用:
implementation 'org.greenrobot:eventbus:3.2.0'
一款老旧且强大的事件总线框架。是 square团队早先推出的事件响应型框架,淘宝app的事件驱动也是基于此框架封装的,如今square已经建议开发者采用RxJava RxAndroid来代替otto了。
地址:
github https://github.com/square/otto
作者:square
使用:
implementation 'com.squareup:otto:1.3.8'
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'
}
一款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'
}
RxJava提供Joins操作(排列组合效果)
地址:
https://github.com/ReactiveX/RxJavaJoins
使用:
compile 'io.reactivex:rxjava-joins:0.22.0'
一款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'
}
一款提供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'
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'
使用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 lifecycles
implementation 'com.trello.rxlifecycle4:rxlifecycle-android:4.0.0'
// If you want pre-written Activities and Fragments you can subclass as providers
implementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.0'
// If you want pre-written support preference Fragments you can subclass as providers
implementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.0'
// If you want to use Android Lifecycle for providers
implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.0'
// If you want to use Kotlin syntax
implementation 'com.trello.rxlifecycle4:rxlifecycle-kotlin:4.0.0'
// If you want to use Kotlin syntax with Android Lifecycle
implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle-kotlin:4.0.0'
一款让log日志优雅显示的框架。它最大的亮点是优雅的输出log信息,并且支持多种格式:线程、Json、Xml、List、Map等
地址:
github https://github.com/orhanobut/logger
作者:Orhan Obut
使用:
implementation 'com.orhanobut:logger:2.2.0'
在调试版本上注解的触发方法进行日志记录
地址:
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'
一个小的,可扩展的日志工具
地址:
github https://github.com/JakeWharton/timber
使用:
implementation 'com.jakewharton.timber:timber:4.7.1'
用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。
(http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html)
https://github.com/mockito/mockito
面向Android端的开源自动化测试框架,Robotium结合Android自身提供的测试框架可以对应用程序进行自动化测试。另外,Robotium还支持对WebView的操作。Robotium的核心类是Solo,通过Solo可以对控件进行各种操作。
https://github.com/RobotiumTech/robotium
一款不依赖于Android设备的单元测试框架。
github https://github.com/robolectric/robolectric
作者:robolectric
使用:
testImplementation "org.robolectric:robolectric:4.3.1"
一款提供在Chrome开发者工具上调试Android app能力的开源框架
github https://github.com/facebook/stetho
使用:
implementation 'com.facebook.stetho:stetho:1.5.1'
一款内存检测框架,服务于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’
一款提供记录APP崩溃日志能力的框架,acra有足够的能力记录线上APP,并且发回服务端,acra也提供了相当棒的崩溃日志统计服务端框架Acralyzer,cralyzer工作在Apache CouchDB
github https://github.com/ACRA/acra
服务端github https://github.com/ACRA/acralyzer
作者:acra团队
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。
地址:
github https://github.com/google/guava
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是一种在线修复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,
<dependency>
<groupId>com.alipay.euler</groupId>
<artifactId>andfix</artifactId>
<version>0.5.0</version>
<type>aar</type>
</dependency>
For your gradle dependency,
dependencies {
compile 'com.alipay.euler:andfix:0.5.0@aar'
}
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'
}
一个二维码开源框架
地址:
github https://github.com/zxing/zxing
扫描二维码、扫描条形码、相册获取图片后识别、生成带 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用于解码。该项目松散地基于中兴安卓条形码扫描仪应用,但不隶属于正式的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'
}
Bilibili开源的视频播放器
地址:
github https://github.com/Bilibili/ijkplayer
使用:
# required
allprojects {
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'
}
android上开源弹幕解析绘制引擎项目。
地址:
github https://github.com/Bilibili/DanmakuFlameMaster
使用:
Download the latest version or grab via Maven:
<dependency>
<groupId>com.github.ctiao</groupId>
<artifactId>dfm</artifactId>
<version>0.9.25</version>
</dependency>
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'
}
一款全能多媒体开发框架,全面支持硬件解码与 GPU 渲染
地址:
github https://github.com/yixia/VitamioBundle
使用:
https://github.com/yixia/VitamioBundle/wiki/Getting-Started
一个基于C语言的多媒体开源框架
地址:
github https://github.com/FFmpeg/FFmpeg
.
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(Livestream SDK),支持内置/自定义美颜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Voice Mixer)、混响(Reverb)、画中画(PIP)、连麦(RTC)、动态贴纸(Sticker)
适用于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的中国地区词典
}
}
Android多线程下载库。
地址:
github https://github.com/Aspsine/MultiThreadDownload
Android 文件下载引擎,稳定、高效、灵活、简单易用
地址:
github https://github.com/lingochamp/FileDownloader
基于RxJava和Retrofit打造的下载工具, 支持多线程下载和断点续传, 智能判断是否支持断点续传等功能,使用Kotlin编写。
地址:
github https://github.com/ssseasonnn/RxDownload
FileDownloader是安卓上轻量级Http/Https文件下载框架,我的目标是让安卓文件下载越简单越好,尽可能以最简洁明了的方式完成复杂需求。
地址:
github https://github.com/wlfcolin/file-downloader
一个流畅的安卓动画库!
地址:
github https://github.com/florent37/ViewAnimator
Android 图片选择、预览、九宫格图片控件、拖拽排序九宫格图片控件
地址:
github https://github.com/bingoogolapple/BGAPhotoPicker-Android
material design 风格的日历控件
地址:
github https://github.com/prolificinteractive/material-calendarview
日期时间选择器
地址:
github https://github.com/wdullaer/MaterialDateTimePicker
安卓选择器类库,包括日期时间选择器、单项选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器、星座选择器等。
地址:
github https://github.com/jdsjlzx/AndroidPicker
仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果
地址:
github https://github.com/Bigkoo/Android-PickerView
代码段库
地址:
github https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/README-CN.md
技术点及特点:
全屏切换播放效果用的是Recycler加PagerSnapHelper控制。
使用lottie库加载json动画,json动画由VUE制作
点赞心形动画
分享评论弹框用的是BottomSheetDialogFragment
个人主页用的是CoordinatorLayout+AppBarLayout折叠布局。
地址:
github https://github.com/18380438200/Tiktok
基于 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