Android 常用框架集合
本章主要是对一下常用的框架进行整理,包括框架的源码地址以及一些比较详细的博客讲解,帮助大家更方便的查找资源。
网络
1.android-async-http:
一个比较老的网络框架项目,虽然已经很少使用了,但是可以学习一下里面的写作方法。
源码地址:android-async-http
详解:
2.retrofit:
retrofit是由square开源组织开源的一款非常流行的网络请求框架,现在使用已经非常广泛。
源码地址:retrofit
详解:
3.okhttp:
okhttp也是由square开源组织开源的一款网络底层封装库,上面介绍的Retrofit也是基于此库进行的二次封装。
源码地址:okhttp
详解:
- 官方详解
- 如何更高效地使用 OkHttp
- OkHttp:Java 平台上的新一代 HTTP 客户端
- OKHttp源码解析
- OKHttp源码解析-ConnectionPool对Connection重用机制&Http/Https/SPDY协议选择
4.Volley
Volley是由谷歌开源的一款网络请求框架。
源码地址:Volley
详解:
ReactiveX
知名的响应式开发Rx系列,根据语言包含:
- Java: RxJava
- JavaScript: RxJS
- C#: Rx.NET
- C#(Unity): UniRx
- Scala: RxScala
- Clojure: RxClojure
- C++: RxCpp
- Lua: RxLua
- Ruby: Rx.rb
- Python: RxPY
- Groovy: RxGroovy
- JRuby: RxJRuby
- Kotlin: RxKotlin
- Swift: RxSwift
- PHP: RxPHP
根据平台包含:
RxNetty:RxNetty
RxAndroid:RxAndroid
RxCocoa:RxCocoa
详解:
官方网址
给 Android 开发者的 RxJava 详解
RxJava 与 Retrofit 结合的最佳实践
图片加载及显示
1.Android-Universal-Image-Loader:
源码地址:Android-Universal-Image-Loader
详解:
Android 开源框架Universal-Image-Loader完全解析(一)— 基本介绍及使用
Android 开源框架Universal-Image-Loader完全解析(二)— 图片缓存策略详解
Android 开源框架Universal-Image-Loader完全解析(三)—源代码解读
2.fresco:
源码地址:fresco
详解:官方文档
3.glide:
源码地址:glide
4.picasso:
源码地址:picasso
详解:
官方文档
5.PhotoView
源码地址:PhotoView
6.SmartCropper
A library for cropping image in a smart way that can identify the border and correct the cropped image. 智能图片裁剪框架。自动识别边框,手动调节选区,使用透视变换裁剪并矫正选区;适用于身份证,名片,文档等照片的裁剪。
源码地址:https://github.com/pqpo/SmartCropper
详解:[Android 端基于 OpenCV 的边框识别功能](Android 端基于 OpenCV 的边框识别功能)
7.glide-transformations
An Android transformation library providing a variety of image transformations for Glide.
源码地址:https://github.com/wasabeef/glide-transformations
热更新
1.Robust:–美团
源码地址:Robust
详解:
Android热更新方案Robust
Android热更新方案Robust开源,新增自动化补丁工具
2.Tinker
源码地址:tinker
Tinker补丁后台管理:tinker-manager
详解:
官方文档
tinker源码研读(一):补丁生成之DexDiff原理简析
3.AndFix:–Alibaba
源码地址:AndFix
详解:
Alibaba-AndFix Bug热修复框架原理及源码解析
Android热补丁之AndFix原理解析
4.AndroidInstantRun:–google
源码地址:instant-run
详解:
深度理解Android InstantRun原理以及源码分析
Instant Run: How Does it Work?!
5.DroidFix:
源码地址:DroidFix
6.HotFix:
源码地址:HotFix
7.Nuwa
源码地址:Nuwa
详解:
Android 热修复Nuwa的原理及Gradle插件源码解析
安卓热更新之Nuwa实现步骤
8.RocooFix:
源码地址:RocooFix
9.AnoleFix:
源码地址:AnoleFix
插件化
1.VirtualAPK–滴滴
源码地址:VirtualAPK
2.ZeusPlugin–iReader
源码地址:ZeusPlugin
3.dynamic-load-apk(DL)
源码地址:dynamic-load-apk
4.RePlugin–360
源码地址:RePlugin
5.android-pluginmgr
源码地址:android-pluginmgr
6.AndroidDynamicLoader
源码地址:AndroidDynamicLoader
7.VirtualApp
源码地址:VirtualApp
注解
1.dagger:
源码地址:dagger
详解:官方文档
2.butterknife
源码地址:butterknife
详解:官方文档
3.androidannotations:
源码地址:androidannotations
详解:官方文档
4.Dagger2
源码地址:Dagger2
5.roboguice
源码地址:roboguice
图表
1.WilliamChart:
源码地址:WilliamChart
功能:绘制图表的库,支持 LineChartView、BarChartView 和 StackBarChartView 三中图表类型,并且支持 Android 2.2 及以上的系统。
2.XCL-Charts:
源码地址:XCL-Charts
功能:XCL-Charts 基于原生的 Canvas 来绘制各种图表,在设计时,尽量在保证开发效率的同时,给使用者提供足够多的定制化能力。因此使用简便,同时具有相当灵活的定制能力。目前支持 3D/非 3D 柱形图(Bar Chart)、3D/非 3D 饼图(Pie Chart)、堆积图(Stacked Bar Chart)、面积图(Area Chart)、 折线图(Line Chart)、曲线图(Spline Chart)、环形图(Dount Chart)、南丁格尔玫瑰图(Rose Chart)、仪表盘(Dial Chart)、刻度盘(Gauge Chart)、雷达图(Radar Chart)、圆形图(Circle Chart)等图表。其它特性还包括支持图表缩放、手势移动、动画显示效果、高密度柱形显示、图表分界定制线、多图表的混合显示及同数据源不同类型图表切换等。
3.HelloCharts for Android:
功能:支持折线图、柱状图、饼图、气泡图、组合图;支持预览、放大缩小,滚动,部分图表支持动画;支持 Android 2.2 以上
4.MPAndroidChart:
源码地址:MPAndroidChart
功能:强大的图表绘制工具,支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、网状图等;支持图的拖拽缩放;支持 Android 2.2 以上,支持横纵轴缩放,多指缩放,展现动画、高亮、保存到 sdcard、从文件读取图表
5.achartengine:
源码地址:achartengine
功能:强大的图表绘制工具,支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、拨号图/表、立方线图及各种图的结合
6.GraphView:
源码地址:GraphView
功能:绘制图表和曲线图的 View,可用于 Android 上的曲形图、柱状图、波浪图展示
7.HoloGraphLibrary:
源码地址:HoloGraphLibrary
功能:绘制现状图、柱状图、饼状图
8.EazeGraph:
源码地址:EazeGraph
功能:Android 图表库,支持柱状图、分层柱状图、饼状图、线性图
9.PieChartView:
源码地址:PieChartView
功能:比较简单直接的饼状统计报表图,使用方便,设置相应的属性参数即可
设计模式
此处说的设计模式是谷歌官方公开的对MVP模式的代码示例,大家可以做为参考学习一下:
Stable samples
todo-mvp - Basic Model-View-Presenter architecture.
todo-mvp-loaders - Based on todo-mvp, fetches data using Loaders.
todo-databinding - Based on todo-mvp, uses the Data Binding Library.
todo-mvp-clean - Based on todo-mvp, uses concepts from Clean Architecture.
todo-mvp-dagger - Based on todo-mvp, uses Dagger2 for Dependency Injection
todo-mvp-contentproviders - Based on todo-mvp-loaders, fetches data using Loaders and uses Content Providers
todo-mvp-rxjava - Based on todo-mvp, uses RxJava for concurrency and data layer abstraction.
Samples in progress
- dev-todo-mvp-tablet - Based on todo-mvp, adds a master/detail view for tablets.
External samples
External samples are variants that may not be in sync with the rest of the branches.
todo-mvp-fragmentless - Based on todo-mvp, uses Android views instead of Fragments.
todo-mvp-conductor - Based on todo-mvp, uses the Conductor framework to refactor to a single Activity architecture.
Google官方设计模式的扩展
android-clean-architecture-boilerplate - An android boilerplate project using clean architecture
Languages, libraries and tools used
事件总线
数据库
网络解析
Animation
跨平台移动开发工具
1.Weex
源码地址:weex
官方文档:
2.React Native
源码地址:React Native
官方文档:
React Native中文
React Native英文
Log框架
测试框架(单元测试)
视频
多主题
其他
谷歌开源手机号验证库:
libphonenumber
注
Android开发群:192508518
2017年3月18日更新。