[Android开源] EasyAndroid:专注于提供各种基础组件封装的集成组件库

EasyAndroid是一个专注于基础组件封装的Android集成库,设计独立且轻巧。包含EasyDimension、EasyFormatter、EasyLog、EasyToast、EasyReflect等组件,提供便捷的尺寸转换、格式化输出、日志打印、反射操作等功能。同时涵盖Android进阶知识点,如架构师必备Java基础、设计思想、性能优化、框架解析等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在平时的开发过程中,我们经常会需要使用到一些基础功能组件,比如Toast,比如Log等。

而这些功能组件,在开发时需要使用到的功能点其实相当有限,所以这也意味着,我们对此类组件的要求是:简单、轻量、易用!相对应的,此类组件的封装库,也应该尽量实现得轻巧精练

EasyAndroid即是专门针对此种需求所设计的一款基础组件集成库:

宗旨

1. 设计独立

组件间独立存在,不相互依赖,若只需要集成库中的部分功能,可直接非常方便的copy源码进行使用。

2. 设计轻巧

因为是组件集成库,所以要求每个组件的设计尽量精练、轻巧。避免因为一个小功能而引入大量无用代码

添加依赖

  1. 添加jitpack仓库依赖
`maven { url 'https://jitpack.io' }` 
  1. 添加依赖

lastest_version = [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T1i3EVrq-1625060891338)(https://user-gold-cdn.xitu.io/2018/5/31/163b3dfd5f5a7431?imageView2/0/w/1280/h/960/ignore-error/1)]

`implementation "com.github.yjfnypeu:EasyAndroid:$lastest_version"` 
  1. 初始化

在Application中调用初识化方法:

`EasyAndroid.init(application)` 

然后即可直接使用

目前版本已集成以下部分组件库:

EasyDimension

用于灵活的进行设备尺寸单位转换

支持全尺寸数值转换。

用法示例

`// 转换10dp到px
EasyDimension.withDIP(10).toPX()
// 转换30sp到MM
EasyDimension.withSP(30).toMM()` 

EasyFormatter

用于对任意类型数据,进行格式化输出排版,结合log打印组件使用,使log输出展示更清晰

  • 支持对Set/List/Map/JSON/POJO数据进行格式化排版
  • 支持最高长度过滤:避免打印超长数据时造成版面浪费

用法示例:

`// 创建待格式化数据
val any:Any = create()
// 使用formatter实例进行格式化
val result:String = EasyFormatter.DEFAULT.format(any)
// 或者使用扩展函数。直接格式化
val result2:String = any.easyFormat()` 

EasyLog

用于简单的进行日志打印输出,支持格式化输出、自定义打印格式。

  • 不阻塞:打印任务运行于独立线程中,避免大量打印数据时造成UI阻塞。
  • 安全: 对打印任务做好了异常处理。不用担心出现crash问题
  • 使用EasyFormatter对任意数据进行格式化排版
  • 支持添加自定义规则
  • 灵活、直观的进行输出样式定制
  • 自动适配TAG. 也可手动指定。
  • 使用开关。关闭线上包的日志输出。
  • 使用’上边界’逻辑进行栈帧匹配,支持二次封装使用

用法示例:

`val any:Any = create()// 创建待打印数据
EasyLog.DEFAULT.d(any)// 使用默认log实例进行数据打印. 以Log.d()的方式进行输出
any.easyLogE()// 使用扩展函数直接进行数据打印,以Log.e()的方式进行输出` 

EasyToast

用于进行Toast提示,可很简单的指定输出样式。

  1. 支持在任意线程下进行toast提示
  2. 非常方便的进行任意样式的定制
  3. 不管当前是否正在展示之前的数据。有新消息通知时,直接展示新消息,无需等待

用法示例:

`val message:String = create()// 创建待提示数据
EasyToast.DEFAULT.show(message)// 使用系统样式进行输出
EasyToast.create(layoutID:Int, tvID:Int, duration:Int).show(message)// 使用自定义样式进行输出` 

EasyReflect

对常规的反射操作进行封装。达到更便于使用反射的效果

用法示例:

`// 以类名Test为例
class Test private constructor(private val name:String) {
    private fun wrap(name:String):String = "包裹后的数据$name"
}

// 创建Reflect实例:
var reflect = EasyReflect.create(Test::class.java).instance("默认参数")

// 为name字段赋值:
reflect.setField("name", "EasyReflect")
// 读取name字段的值:"EasyReflect"
val value = reflect.getValue("name")

// 调用方法wrap方法,并传入参数value
reflect.call("wrap", value)
// 调用wrap方法,并获取返回值: "包裹后的数据EasyReflect"
val result = reflect.callWithReturn("wrap", value).get<String>()` 

APIs

提供的一些其他零散的类库APIs

最后

按照国际惯例,给大家分享一套十分好用的Android进阶资料:《全网最全Android开发笔记》。

整个笔记一共8大模块、729个知识点,3382页,66万字,可以说覆盖了当下Android开发最前沿的技术点,和阿里、腾讯、字节等等大厂面试看重的技术。

图片

图片

因为所包含的内容足够多,所以,这份笔记不仅仅可以用来当学习资料,还可以当工具书用。

如果你需要了解某个知识点,不管是Shift+F 搜索,还是按目录进行检索,都能用最快的速度找到你要的内容。

相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照整个知识体系编排的。

详细文档可以点我下载,记得点赞哦~

(一)架构师必备Java基础

1、深入理解Java泛型

2、注解深入浅出

3、并发编程

4、数据传输与序列化

5、Java虚拟机原理

6、高效IO

……

图片

(二)设计思想解读开源框架

1、热修复设计

2、插件化框架设计

3、组件化框架设计

4、图片加载框架

5、网络访问框架设计

6、RXJava响应式编程框架设计

……

图片

(三)360°全方位性能优化

1、设计思想与代码质量优化

2、程序性能优化

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据储存优化
  • APK大小优化

3、开发效率优化

  • 分布式版本控制系统Git
  • 自动化构建系统Gradle

……

图片

(四)Android框架体系架构

1、高级UI晋升

2、Android内核组件

3、大型项目必备IPC

4、数据持久与序列化

5、Framework内核解析

……

图片

(五)NDK模块开发

1、NDK开发之C/C++入门

2、JNI模块开发

3、Linux编程

4、底层图片处理

5、音视频开发

6、机器学习

……

图片

(六)Flutter学习进阶

1、Flutter跨平台开发概述

2、Windows中Flutter开发环境搭建

3、编写你的第一个Flutter APP

4、Flutter Dart语言系统入门

……

图片

(七)微信小程序开发

1、小程序概述及入门

2、小程序UI开发

3、API操作

4、购物商场项目实战

……

图片

(八)kotlin从入门到精通

1、准备开始

2、基础

3、类和对象

4、函数和lambda表达式

5、其他

……

图片

好啦,这份资料就给大家介绍到这了,*有需要详细文档的小伙伴可以点我下载~~~~*

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值