更新时间:2020-11-27
[TOC]
-
- 一个比较老的网络框架项目,虽然已经很少使用了,但是可以学习一下里面的写作方法。
- 快速Android开发系列网络篇之Android-Async-Http
- android-async-http框架库使用基础
-
-
retrofit是由square开源组织开源的一款非常流行的网络请求框架,现在使用已经非常广泛。
-
Retrofit的话,源码写的非常非常棒。主要是通过动态代理+获取方法上面的注解等,然后组装请求网络的参数,最后用OkHttp去请求网络。
-
OkHttp的拦截器链设计得非常巧妙,是典型的责任链模式。并最终由最后一个链处理了网络请求,并拿到结果。
-
详解:
-
-
-
okhttp也是由square开源组织开源的一款网络底层封装库,上面介绍的Retrofit也是基于此库进行的二次封装。
-
okhttp的结构模式,以及比httpclient的优势?
-
它能实现同一ip和端口的请求重用一个socket,这种方式能大大降低网络连接的时间,和每次请求都建立socket,再断开socket的方式相比,降低了服务器服务器的压力。
-
okhttp 对http和https都有良好的支持。
-
okhttp 不用担心android版本变换的困扰。
-
成熟的网络请求解决方案,比HttpURLConnection更好用。
-
缺点,okhttp请求网络切换回来是在线程里面的,不是在主线程,不能直接刷新UI,需要我们手动处理。封装比较麻烦。
-
网络请求缓存处理,okhttp如何处理网络缓存的
-
从网络加载一个10M的图片,说下注意事项
-
详解:
-
-
-
Volley:Volley是由谷歌开源的一款网络请求框架。
-
PRDownloader:A file downloader library for Android with pause and resume support
-
lingochamp/FileDownloader:Multitask、MultiThread(MultiConnection)、Breakpoint-resume、High-concurrency、Simple to use、Single/NotSingle-process(已更新为下面的okdownload)
-
lingochamp/okdownload:A Reliable, Flexible, Fast and Powerful download engine.
-
yuchuangu85/Fast-Android-Networking:: A Complete Fast Android Networking Library that also supports HTTP/2
- 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
- 官方网址
- 给 Android 开发者的 RxJava 详解
- RxJava 与 Retrofit 结合的最佳实践
- RxJava的功能与原理实现
- RxJava的作用,与平时使用的异步操作来比的优缺点
-
SmartCropper:A library for cropping image in a smart way that can identify the border and correct the cropped image. 智能图片裁剪框架。自动识别边框,手动调节选区,使用透视变换裁剪并矫正选区;适用于身份证,名片,文档等照片的裁剪。
- [Android 端基于 OpenCV 的边框识别功能](Android 端基于 OpenCV 的边框识别功能)
-
glide-transformations:An Android transformation library providing a variety of image transformations for Glide.
-
TaiChi:A framework to use Xposed module with or without Root/Unlock bootloader, supportting Android 5.0 ~ 10.0
-
SmartAppUpdates:Android应用增量更新,包含客户端和服务端。
-
VirtualXposed
-
SandVXposed:Xposed environment without root (OS 5.0 - 10.0)
-
VirtualLocation:利用Hook技术对APP进行虚拟定位,可修改微信、QQ、以及一些打卡APP等软件,随意切换手机所处位置!
- ARouter:A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架)
-
Xposed:The native part of the Xposed framework (mainly the modified app_process binary).
-
dexposed:dexposed enable 'god' mode for single android application.
-
VirtualXposed:A simple app to use Xposed without root, unlock the bootloader or modify system image, etc. https://vxp.app
-
javapoet :A Java API for generating .java source files.
-
auto[include:AutoFactory, AutoService, AutoValue, Common]
-
AutoFactory - JSR-330-compatible factories
-
AutoService - Provider-configuration files for
ServiceLoader
-
AutoValue - Immutable value-type code generation for Java 1.6+.
-
Common - Helper utilities for writing annotation processors.
-
- gradle_plugin_android_aspectjx:A Android gradle plugin that effects AspectJ on Android project and can hook methods in Kotlin, aar and jar file.
- jcabi-aspects:Collection of AOP/AspectJ Java Aspects http://aspects.jcabi.com
-
WilliamChart绘制图表的库,支持 LineChartView、BarChartView 和 StackBarChartView 三中图表类型,并且支持 Android 2.2 及以上的系统。
-
XCL-ChartsXCL-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)等图表。其它特性还包括支持图表缩放、手势移动、动画显示效果、高密度柱形显示、图表分界定制线、多图表的混合显示及同数据源不同类型图表切换等。
-
HelloCharts for Android支持折线图、柱状图、饼图、气泡图、组合图;支持预览、放大缩小,滚动,部分图表支持动画;支持 Android 2.2 以上
-
MPAndroidChart强大的图表绘制工具,支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、网状图等;支持图的拖拽缩放;支持 Android 2.2 以上,支持横纵轴缩放,多指缩放,展现动画、高亮、保存到 sdcard、从文件读取图表
-
achartengine强大的图表绘制工具,支持折线图、面积图、散点图、时间图、柱状图、条图、饼图、气泡图、圆环图、范围(高至低)条形图、拨号图/表、立方线图及各种图的结合
-
GraphView绘制图表和曲线图的 View,可用于 Android 上的曲形图、柱状图、波浪图展示
-
HoloGraphLibrary绘制现状图、柱状图、饼状图
-
EazeGraphAndroid 图表库,支持柱状图、分层柱状图、饼状图、线性图
-
PieChartView比较简单直接的饼状统计报表图,使用方便,设置相应的属性参数即可
此处说的设计模式是谷歌官方公开的对MVP模式的代码示例,大家可以做为参考学习一下:
-
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.
- dev-todo-mvp-tablet - Based on todo-mvp, adds a master/detail view for tablets.
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.
-
android-clean-architecture-boilerplate - An android boilerplate project using clean architecture
Languages, libraries and tools used
-
LiveEventBus:消息总线,基于LiveData,具有生命周期感知能力,支持Sticky,支持AndroidX,支持跨进程,支持跨APP
-
guava:该库用于提供集合,缓存,支持原语句,并发性,常见注解,字符串处理,I/O和验证的实用方法。
-
AndroidUtilCode:TreadUtils工具会导致电流持续增加。
-
SuspensionWindow:Android高仿微信阅读文章悬浮窗实现(含8.0权限适配)
-
StatusBarUtil:Android沉浸式状态栏,支持状态栏渐变色,纯色, 全屏,亮光、暗色模式,适配android 4.4 -10.0机型
-
EnFloatingView:应用内悬浮窗,无需一切权限,适配所有ROM和厂商,no permission floating view.
-
ByteX:字节码插件开发平台
-
AabResGuard:The tool of obfuscated aab resources.(Android app bundle资源混淆工具)
-
joda-time:高效的日期、时间工具类,兼容Java1.8
-
Lombok:简化Java中的Getter、Setter、toString等代码
- spotless:Keep your code spotless
- ML Kit | Google Developers:google开源的带有机器学习的图像和视频识别框架