自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

leobert.lan的博客

一起学习

  • 博客(111)
  • 资源 (4)
  • 收藏
  • 关注

原创 Hilt进阶--一文吃透Hilt自定义与跨壁垒

还不会使用Hilt高级功能?还不理解Hilt的原理?看这篇就够了。今天我们使用15分钟的时间,结合Demo工程彻底弄懂Hilt自定义和跨壁垒穿梭

2023-03-17 15:58:22 649

原创 使用日历丰富产品的用户体验

使用5-10分钟的时间,回顾Android中日历应用的重要知识点。轻松配合使用,提升产品用户体验

2023-03-07 14:21:05 490

原创 Java多线程系列-- Fork&Join框架,分治的艺术

今天,我们用1-3分钟的时间,回顾Java Fork&Join 框架知识。为相关知识画一个句号。。。

2023-02-27 21:45:19 712

原创 关于画一个句号--基于2022年终总结的反思与分享

虽然经验的分享总伴随着筛选和美化,但你不会在这几分钟内只接受一波凡尔赛或者焦虑贩卖。这篇有真正能帮助到你的内容。

2023-02-21 13:31:48 345

原创 好玩系列:听说你的ImageSpan没能动起来?

迟来的续集–Drawable+Animator,将优雅进行到底, 并在其中留下一个思考题:"用 动画Drawable 是否可以让 ImageSpan 直接动起来"相信大家也进行了尝试,并且不出意外地出现了意外!即便使用可以动起来的Drawable构建ImageSpan,也没有让他动起来!今天我们将在一个愉快的氛围下,让ImageSpan动起来,并进行一些更深层次的探索,不出意外,这将是Drawable相关文章的终结篇。三思系列:重新认识Drawable三思系列:为什么要自定义View。

2023-02-06 20:56:50 427 2

原创 研究良久,终于发现了他代码写的快且bug少的原因

读者诸君,今日我们适当放松一下,不钻研枯燥的知识和源码,分享一套高效的摸鱼绝活。我有一位程序员朋友,当时在一个团队中开发Android应用,历经多次考核后发现...

2022-12-11 14:23:12 728

原创 杂篇(一)

淡定是对事物的反应的一种理智表现,而做到从容要更加困难,往往需要在认知领域达到很高的成就,它不仅是心理活动,在行动上也表现一致。将问题放大到人生路上,找准目标并非一件简单的事情,它牵涉到人生观、世界观、价值观,绝大多数情况下,我们无法判断已经认准的目标是对是错,甚至它们本身就没有对错之分!当你跑的足够快的时候,你就再也没有机会去观察自己了,顺其自然的,你也不会有机会发现自己的问题并修正。喜欢朦胧的细雨,爱上烟雨的江南,形式作风拖拖拉拉,是个十足的懒散蛋,行事低调,主要原因是胆小怕事,没有勇气。

2022-11-17 16:22:44 220

原创 迟来的续集--Drawable+Animator,将优雅进行到底

用心写文章,用脚起标题。这一篇,我们将从一个自定义动画Drawable开始,探索卡顿问题,彻底弄清Android中动画的原理,藉此实现更有趣的功能

2022-10-18 11:31:56 591

原创 Java多线程系列--掌握Future,轻松获取异步任务结果

连这些读不知道的话,面试肯定要挂了。 今天,我们一同回顾:多线程中并发和异步的基础中的基础,掌握了它们才有面试及格的可能。

2022-09-26 13:15:32 1200

原创 谈一谈在两个商业项目中使用MVI架构后的感悟

看懂这一篇文章,便能彻底吃透MVI。

2022-08-24 14:34:05 1560 4

原创 初体验:动手搭建“小清新式“、版本控制、持续集成的局域网文档系统

想象一下,如果您所在的团队拥有这样一套 “版本控制”、“持续集成” 项目文档网站,是否 项目的长期维护会很轻松 ?就像Square公司的那样。

2022-06-25 10:51:50 589

原创 Java多线程基础--线程的创建与线程池管理

本篇我们将厘清Java线程的创建细节、彻底明白线程池的设计原理;在Android面试中游刃有余,和面试官友好的吹牛啤,并写出可靠的代码。

2022-05-16 15:39:08 190

原创 三思系列:前人用GreenDao留下的坑,全线被扣了绩效

前人挖坑,被扣绩效!快来看看你的项目有没有。您将从一个GreenDao使用的事故开始,掌握GreenDao的整体设计,最终解决问题并对APT、Gradle插件技术融会贯通。

2022-04-10 11:11:10 3234

原创 Java多线程基础--线程生命周期与线程协作详解

一张广为流传的Java线程生命周期图居然是错的!sleep和wait的区别弄清了吗?基础中的基础:线程生命周期与线程协作详解

2022-03-28 17:59:44 2859

原创 Java多线程系列--掌控面试,一文吃透Synchronized锁

说到Synchronized你能想到什么,能够克服面试问道锁时的恐惧吗?你了解它的实现原理吗?你了解它的升级过程和原因吗?这篇文章带你吃透锁。

2022-03-19 22:39:28 3940

原创 克服焦虑--图解JVM内存模型和JVM线程模型

8张图记住JVM内存模型和JVM线程模型知识,10分钟阅读克服焦虑

2022-02-26 17:01:44 580 1

原创 一份能帮助到你的2021年终总结

一份专门为读者写的年终总结,以自身年终总结为引子,重点分享了面试经历和个人总结,对职业生涯的阶段性总结,相信读完之后一定会有很多收获。

2022-01-31 12:11:49 455 4

原创 孔乙己:你可知道页面和弹窗“通信“的方式有四种?

这日孔乙己照常走进星巴克,点了份大杯脱脂奶拿铁,顺带给小伙科普了下,页面和弹窗“通信“的方式有四种...

2021-12-21 22:44:59 198

原创 开源一个优雅的类图生成工具

前言首先必须声明,这不是一篇广告或者标题党。 而是我开源了一个工具,可以优雅的为Java or Kotlin 项目生成 Class Diagram。我推测列为读者会进来阅读,原因无非以下两点:获得一个生成类图的工具,并通过文章快速了解是否 方便 且 好用了解一下我是如何折腾的仅关心如何使用的,可以移步 使用示例我们将按照下面的脑图顺时针展开,揭开这一工具的诞生过程主要问题与方案背景背景:笔者今年换了份工作,所在的公司属于 医疗器械 下的细分领域,而相比于 纯互联网行业 领域,医疗器

2021-10-31 22:27:58 4006 4

原创 Jetpack Compose | Compose 滑动列表真的需要使用LazyColumn吗?No No No!

Jetpack Compose | 控件篇(五)-- Spacer、LazyRow、LazyColumn & 让Column可滑动在上一篇中,我们完成了 Box、Row、Column 相关内容的学习,并且留下了一个疑问:“如果容器大小不足以承载内容,怎么处理呢?”,这一篇我们一起学习这部分内容。文中代码均基于 1.0.1版本如无特殊说明,文中的 Compose 均指代 Jetpack compose文中代码均可在 WorkShop 中获取,本篇代码集中于 post29 & post

2021-09-07 21:49:20 3619 2

原创 Jetpack Compose | 控件篇(四)-- Box、Row、Column

在上一篇中,我们完成了 Switch、CheckBox、RadioButton 相关内容的学习,至此,最基本的简单控件我们已经学完,接下来我们将学习 基本的布局。以Android 为例,我们已经完成了:TextView、Edittext、Button、ImageView、CheckBox、SwitchButton、RadioButton 等内容的学习。接下来将开始学习布局规则,例如:FrameLayout、LinearLayout、RelativeLayout、ConstraintLayout 等

2021-09-01 23:33:26 1580

原创 Jetpack Compose | 控件篇(三) -- Switch、CheckBox、RadioButton

写在最前在之前的文章中,我们学习过Compose 中的 ImageButton。本篇我们将继续学习 Switch 、 CheckBox 、RadioButton , 这三个控件在 人机交互界面 中也是由来已久。文中代码均基于 1.0.1版本如无特殊说明,文中的 Compose 均指代 Jetpack compose文中代码均可在 WorkShop 中获取,本篇代码集中于 post28 包下完整系列目录: Github Pages | 掘金 | csdnSwitch当功能含义如同 开关 一

2021-08-29 13:48:05 1041

原创 Jetpack Compose | 控件篇(二) -- Icon,Image

highlight: darcula写在最前在上一篇,我们学习了Compose 中的 Text 、TextField 、Button,并在WorkShop中进行了一系列尝试。除了对他们的效果有了直观的认识外,也感受了Compose的编码乐趣。本篇我们将继续学习Icon和Image,从命名上我们可以看出他们和 图形、图片 有关,也是 内容呈现 中非常重要的一种载体和方式。文中代码均基于 1.0.1版本如无特殊说明,文中的 Compose 均指代 Jetpack compose文中代码均可在 .

2021-08-24 10:34:43 1122

原创 Compose | 控件篇(一) -- Text、TextField、Button

这一篇,我们一起学习 Jetpack Compose 中的部分控件 – Text、TextField、Button,掌握其使用方式和特性。文中代码均基于 1.0.1版本如无特殊说明,下文中的 Compose 均指代 Jetpack compose小互动上一篇文章:Compose | 一文理解神奇的Modifier 在郭婶的号上有读者评论到不知道Compose从何学起,无从下手,这里简单的谈一谈我的看法:Compose 以及 Jetpack Compose 对于Android从业人员而言确实是

2021-08-19 13:11:10 1236 1

原创 Compose | 一文理解神奇的Modifier

写在最前Jetpack Compose的预览版出来已经有很长时间了,相信很多读者都进行了一番尝试。注意:下文如无特殊说明,Compose均指代Jetpack Compose可以说,Compose在声明布局时,其风格和React的JSX、Flutter 等非常的相似。而且有一个高频出现的内容: Modifier,即 修饰器,顾名思义,它是一种修饰器, 在Compose的设计中,和UI相关的内容都涉及到它,例如:尺寸,形状 等这一篇文章,我们一起学习两部分内容:Modifier的源码和设计SDK中

2021-08-09 17:25:36 604 1

原创 掌握Gradle,还需要掌握这些知识--Groovy MOP

Groovy:MOP一文打尽写在最前Groovy已经不再是一门新出现的语言,而笔者是在2013年左右接触到它的,并且在2017年时,有机会尝试使用它编写了基于SpringBoot的后端项目。但说来惭愧,在很长的一段时间里,我都没有系统的学习它。并且时至今日,我也 不推荐 大家再去 系统的学习 它,毕竟 使用它的机会越发地少了,但是我依旧认为大家有必要花费一些零碎的时间,快餐式的了解它。这一篇讲MOP,之后还有一篇闭包文章代码已发布于:GroovyWorkshop为何产生编写Groovy系列的想

2021-07-01 22:32:52 185

原创 拥抱Kotlin Symbol Processing(KSP),手把手带你实现Kotlin的专有注解处理

好玩系列 | 拥抱Kotlin Symbol Processing(KSP),项目实战写在最前这一篇,我们抱着拥抱新事物的心态,尝试一些新事物。笔者在这一次历程中,对三项事物进行了尝鲜:手动迁移一个小规模的Gradle项目,由 Groovy Script 转为 Kotlin ScriptKotlin Symbol ProcessingKotlin Poet这次的 重点是KSP ,Kotlin Poet学习成本比较低,迁移 Kotlin Script 仅仅是比较繁琐。既然要实战,那么就需要一

2021-06-22 22:02:49 1974 3

原创 脑洞大开,Gradle项目管理依赖的船新版本

Gradle依赖管理最佳实践写在最前笔者最近接受了 躺平(不是等死),换了一份新工作。这部分内容,也是从前东家的 实际情况 出发的,可惜无法亲手去推广落地了。在前段时间,我发布过一篇拙见:三思系列:组件化场景下module依赖优雅实践方案,该文在组件化背景下,探索了一种方案,可以同时满足 减少编译数量以减少编译时间、便捷的修改依赖树以灵活改动任意层级的Module内容。具体内容可以阅读前文,不再赘述除却Module依赖,还有 库包依赖 ,本文着重于探索 库包依赖项 的管理方式,而且是狭义上的

2021-06-10 09:14:50 219 1

原创 三思系列:Glide 4.X加载过程一文掌握 | Glide(二)

上一篇中,我们通过阅读Glide初始化的主要代码,对Glide中的模块进行了职责梳理。这一篇,我们在前文的基础上,对Glide的 资源加载过程 进行梳理。当然,通过博文来看 大篇幅 的代码是相当 枯燥乏味 的,为了让阅读体验更佳,本文中会直接用 UML图 代替绝大多数的 代码拷贝。注:本文基于Glide 4.12.0。另:我的UML功底不太牢,文中涉及的UML图未必是最恰当的,如图类型或者标识错用,如果读者对此有所建树,我真诚的希望你可以在留言区留下宝贵的参考意见。再次介绍下三思系列:三思系列是我

2021-04-02 14:21:03 286

原创 三思系列:Glide 4.X全方位认知 -- 模块职责概览 | Glide(一)

最近在解决一些问题时,进行了一下检索,发现 绝大多数文章 是 基于3.X。Glide从进入4.X也有两三年了,在3.X的基础上,发生了很多变化。 所幸我对 4.X的源码还比较熟,且Glide的设计也很精彩,索性写一写 对4.X的剖析。当然,对于多数读者而言,因为有一定的基础知识,这些剖析文章并不是满地金砖了,可以泛读查漏。三思系列是我最新的学习、总结形式,着重于:问题分析、技术积累、视野拓展,了解更多本文主旨Glide是一个 庞大 的项目,这一篇旨在对Glide项目4.X版本进行 全方位的认知

2021-03-28 21:18:39 300

原创 温故:队列 | 数据结构 | 顺手刷算法

本文将对 数据结构 - 队列 进行温故、总结要点、算法题练手,以期获新知。读者可以借本文反视对队列知识的掌握程度,或者在本文基础上,收集资料加深学习。温故系列是我尝试的一种新学习总结方式,在 阅历增长时,总结旧闻,以 期获 新知,并不断迭代。了解更多本次温故时间:2021年3月队列,和 栈 类似,也是一种 线性存储结构 ,不同的是,队列的数据项存取方式,队列是两端 开口 的,从数据从一端进入,从另一端取出。进入的一端被称为 队尾,取出的一端被称为 队头,存入数据的行为称为 入队,取出数据

2021-03-28 21:15:57 149

原创 好玩系列:让项目中的相册支持Heif格式图片

前言目前市面上的成熟的APP,其用户体系中均存在 设置头像 的功能,考虑到尺寸规范问题,一般会加入 图片裁剪 功能;考虑到页面UI统一度问题,甚至会在应用内实现 相册功能。据此推断:各位的项目中,会遇到 Heif格式图片 需要兼容的需求。笔者目前参与的商业项目,也被市场要求对Heif图片进行适配。这篇文章,记录了我在这件事情上 折腾 的过程。好玩系列是我进行 新事物实践 、 尝试创造 的记录,了解更多背景HEIF格式的全名为 High Efficiency Image File Format

2021-03-25 11:51:06 767

原创 温故:栈|数据结构

对数据结构-栈进行温故,以期获新知温故系列是我尝试的一种新学习总结方式,在 阅历增长时,总结旧闻,以 期获 新知,并不断迭代。了解更多本次温故时间:2021年3月基本概念目的:存储逻辑关系为 一对一 的数据特性:出口和入口一致,后进先出、先进后出,先行存储结构定义:栈是一种只能从表的一端存取数据且遵循 “先进后出” 原则的 线性存储结构。操作:向栈中添加数据,即 进栈 、 入栈 、 压栈, 从栈顶进从栈中取出数据,即 出栈,从栈顶出线性存储结构线性结构是一种 有序数据项 的

2021-03-21 11:35:37 91

原创 温故:线性表|数据结构

对 数据结构 - 线性表 进行温故,以期获新知温故系列是我尝试的一种新学习总结方式,在 阅历增长时,总结旧闻,以 期获 新知,并不断迭代。了解更多本次温故时间:2021年3月注:部分图片来自网络检索,未找到出处,内容仅供学习,如有侵权,可留言联系 要求删除 或者 要求指明出处基本概念线性表 ,全名为 线性存储结构,是一种 有序数据项 的 集合,其中每个数据项都有 唯一 的 前驱 和 后继,注意:第一个没有前驱,最后一个没有后继。新数据项加入到数据集中时,只会加入到原有某个数据项 之前

2021-03-21 11:26:56 136

原创 三思系列:Android的消息机制,一文吃透

三思系列是我最新的学习、总结形式,着重于:问题分析、技术积累、视野拓展,关于三思系列这次,真的可以一文吃透:Java层消息队列的设计Java层Looper分发Native层消息队列和Java层消息队列的关系Native层Looper分发消息epoll前言作为Android中 至关重要 的机制之一,十多年来,分析它的文章不断,大量的内容已经被挖掘过了。所以:已经对这一机制比较 熟稔 的读者,在这篇文章中,看不到 新东西 了。还不太熟悉消息机制的读者,可以在文章的基础上,继续挖一.

2021-03-14 16:36:11 295

原创 三思系列:“声明式UI“和“命令式UI“,你的理解可能是错的

三思系列是我最新的学习、总结形式,着重于:问题分析、技术积累、视野拓展,关于三思系列前言最近,Jetpack Compose 发布了 Beta 版本,可以说是千呼万唤始出来。在一个 现象级事物 出现时,关于它的讨论会很热。我注意到,最近有一大批关于Compose的文章涌现了出来,并且有很多的讨论,这很棒。但是,值得一提的是,我发现很多人对于 声明式UI 、 命令式UI 的认知,可能出现了一点偏差。当然,我也 不是 像 马丁老爷子 或者 Jack Wharton 那样的 专家,对于这个问题,只能.

2021-03-06 13:11:44 3021 7

原创 三思系列:为什么要自定义View

前言或许你掌握了 measure的细节 ,layout机制 ,事件传递机制 ,canvas各种API ,但是,你们想过这个问题吗?这一篇,不仅仅是对一个面试必会题的解析,更是透过这个问题的思考,寻找 最佳实践 ,拓展思维角度 , 少走弯路三思系列是我最新的学习、总结形式,着重于:问题分析、技术积累、视野拓展,关于三思系列关于View系列View系列旨在通过 对现实问题 的思考,建立完善的 View体系认知,极力建议读者了解一下 我为什么撰写、分享这个系列先给出思考这个问题的 脑图 ,

2021-02-28 16:14:18 194

原创 三思系列:View体系认知(一),内容是如何正确被展现出来的--视觉呈现概览

前言这是View体系认知子系列的第一篇,这一篇会探知Android中,是通过怎么的设计让视图正确呈现在屏幕上的。关于三思系列关于View系列极力建议读者了解一下 为什么撰写这个系列考虑到博客不适合做大量的代码展现,我会以 WorkShop 的形式展现这些代码。链接我们知道,在GUI编程中,必然存在一套试图体系内容,Android中也有一套,抛开掉底层内容,和Compose中的内容, 我们这一篇,一同探究下 Framework中,View体系 如何做视觉呈现。如何描述一个任意的界面假如我

2021-02-21 16:29:42 334

原创 好玩系列:拥有它,XML文件少一半--更方便的处理View背景

好玩系列:拥有它,XML文件少一半–更方便的处理View背景前言关于好玩系列这是一项已经被我们项目实验性投产将近一年的方案,虽然还处于实验性阶段,但稳定性和实用性都不错。DaVinCi 仓库链接问题背景:Android 中普遍使用XML来定义资源,对于视图的背景样式而言,需要定义大量的GradientDrawable、StateListDrawable 资源等。当项目体量很大时。这些资源就会出现难管理的问题。诚然,从最佳实践角度出发,对项目中的资源进行合理地命名以满足查询索引规则,按照设计

2021-02-11 20:39:03 210

原创 三思系列:组件化场景下module依赖优雅实践方案

三思系列:组件化场景下module依赖优雅实践方案前言关于三思系列背景:如果没有记错,15年那会Android项目逐步转向使用Gradle构建,时至今日,组件化已经不再是一个新颖的话题。虽然我将这篇文章放在了Gradle分类中,但是我们知道,使用gradle构建的后端项目,热点聚焦在:实现微服务化,项目是拆开的,决定了依赖库已经是静态jar包,和我们要讨论的场景是不一致的。所以我们还是在Android领域中讨论这个问题.在各种方案的组件化实施中,一定会将部分功能模块拆分,进行library

2021-02-05 12:24:59 731 4

listview加载空布局、等待布局等的类库

用于支持ListView“展示”空数据布局,以及更加便捷的处理数据源改变。 详情见我的博客 http://write.blog.csdn.net/postedit/48971429

2015-10-08

android-async-http1.4.8类库

截至2015年8月4日09:35:31最新的类库,用于android网络请求。 项目托管地址:https://github.com/loopj/android-async-http。 我个人关于该类库使用的帮助博客地址:http://write.blog.csdn.net/postedit/47271543。 放在这里只是方便一下大家。在该项目的官网上有非常丰富的学习资源。也欢迎到我的博客中相互探讨一下它的使用

2015-08-04

android 图片缓存第三方类库

用于android 图片的缓存,策略:cache中检索,有则display,无则下载之,存入cache,display,真的拿不到图片则显示设定的默认图(主题建议为找不到图片),功能尚在完善中,暂不开放源代码。我的博客:http://write.blog.csdn.net/postedit/47150683 中提供使用帮助。

2015-07-30

android socket通信demo

android和服务器使用socket通信的demo; 主要意图是为自实现信息推送做铺垫; 服务器源码使用java语言编写,请确认你的需求; android源码使用eclipse编译, 我的博客提供技术支持: http://blog.csdn.net/a774057695/article/details/47039433

2015-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除