首页
Li Tao - 李涛
取消

常用工具集

一、常用的在线工具集 工具集聚合 Raz1ner JS代格式化工具 Android 在线性能分析工具 在线图片压缩工具 在线Kotlin编辑器 在线文本内容对比工具

Gradle 学习总结 - Gradle插件发布

一、Publish Plugin To Maven 插件的发布与Android 自定义库的发布相同,主要分为以下几个步骤 1. 注册Maven Central账号 流程网络上很多,不细说了,大致流程就是 Maven Central上注册一个账号 Jira 上提交一个问题工单,简单来说就是帮你开辟一块属于你的空间,填写组织名称,项目名称,项目地址等一些信息 后续可能对方要...

Gradle 学习总结 - Gradle插件开发

插件的开发与任务类似,同样可以在构建脚本中、buildSrc模块、独立项目进行开发。通常我们都是会打包为一个独立项目。 一、插件的开发 1. 简单的插件 可以在构建脚本中直接定义插件,但通常很少这样用,可扩展性较低,感觉只适用于一些很简单的任务。以下是一个简单插件,并提供了参数的配置。参数配置是非必要的。 interface GreetingPluginExtension { ...

Gradle 学习总结 - Task-增强任务

以下所有示例均基于Kotlin DSL 一、增强任务 增强任务通常被定义为一个独立的模块,例如我们通常使用的Gradle插件都是使用的增强任务。主要优势是便于更灵活的配置,能够在不同项目不同地方提供行为的重用。 1. 任务类的封装 可以通过以下三种方式 Gradle 脚本文件中直接定义,无需额外配置,但仅脚本文件内可用。 在buildSrc模块中,kotlin源代...

Gradle 学习总结 - Task-简单任务

以下所有示例均基于Kotlin DSL 一、任务(Task)的定义 task通常分为简单任务与增强任务,此次只总结简单任务 简单任务:通常使用闭包在构建脚本中直接定义,适用于单次使用,无法提供给外部使用。 增强任务:通常是一个独立文件或独立项目,一般是打包为通用工具提供给外部使用,例如我们常用的assembleRelease,clean等 1. 创建任务 以下第...

H5页面内部div滑动与webview下拉刷新的冲突处理

首先描述下问题 - 在H5页面中我们集成下拉刷新控件,无论是官网提供的SwipeRefreshLayout还是其他三方的下拉刷新库,通常都会去在onScrollChanged中去监听滑动状态,或使用View.canScrollVertically()去判断到顶到底等状态来控制下拉刷新的触发时机,但如果H5页面不是单纯的页面滚动,而是在内部div中添加了类似于overflow-y: sc...

Jetpack 使用总结 - Room

一、数据库(database) 1. 数据库类的定义及注意点 @Database( entities = [User::class], version = 3, exportSchema = true, views = [UserShadow::class], autoMigrations = [ AutoMigration(from = 1, to...

Kotlin学习笔记(16) - 函数的基础定义

一、基本定义 每个参数必须有显式的类型,可使用=号提供默认值,减少重载 //无返回值 - java中会使用void表示无返回,kotlin中其实使用Unit表示,只不过可以省略掉,方法体内也不需要显式的返回。 fun read( b: ByteArray, off: Int = 0, len: Int = b.size, ) { /*……*/ } //有返回值 ...

Kotlin学习笔记(15) - 泛型

一、泛型的定义 class Box<T>(t: T) { var value = t } //使用时提供类型参数 val box: Box<Int> = Box<Int>(1) //如果类型是可推导的,也可以省略类型参数 val box = Box(1) // 1 has type Int, so the compiler figures o...

Kotlin学习笔记(14) - 类型别名

一、类型别名 Kotlin中可以为当前类型提供替代名称,以达到缩短名称、增强语义、提高可读性等目的。以下是几种常见的场景 缩短泛型类型名称 typealias NodeSet = Set<Network.Node> typealias FileTable<K> = MutableMap<K, MutableList<File>>...