- 博客(643)
- 资源 (21)
- 收藏
- 关注
原创 Android BLE开发总结
Android BLE开发总结在Android BLE开发中,设备、服务、特征和描述它们之间的关系如下:设备(Device):指BLE设备,如蓝牙耳机、传感器等。服务(Service):指BLE设备所提供的服务,一个BLE设备可以提供多个服务,每个服务有一个唯一的UUID,服务中包含多个特征值。特征(Characteristic):指BLE设备服务中的特征值,每个特征值有一个唯一的UUID,可以读取、写入和监听特征值数据。描述(Descriptor):指BLE设备服务中特征值的描述信息,描述信息
2023-03-27 15:38:28
1750
3
原创 Android Handler机制
文章目录Handler 源码分析Handler核心类Handler机制分析Handler基本使用Handler#enqueueMessage()MessageQueueue#enqueueMessage()Looper#loop()MessageQueue#next()Handler#dispatchMessage()Handler机制流程图及总结常见问题线程、Handler和Looper的对应关系Handler内存泄漏问题子线程中使用HandlerMessage创建方式Handler如何保障线程安全Loo
2021-07-09 13:37:28
370
2
原创 Java LinkedList源码分析
LinkedList总结LinkedList本质是一个双向链表,内部维护链表头节点和尾节点。Node是LinkedList的一个静态内部类,是LinkedList的核心,内部维护具体的值和上下节点的关系。相对ArrayList增删效率高,查询效率低,线程不安全。
2020-04-09 15:20:48
674
原创 Java ArrayList源码分析
本质是数组操作,最终调用System.arraycopy()实现底层扩容和增删等操作。查询效率高,增删效率低,线程不安全。
2020-04-07 11:21:24
540
原创 Android 事件分发机制
当我们点击屏幕,就产生了触摸事件,这个事件被封装成了一个类:MotionEvent。而当这个MotionEvent产生后,那么系统就会将这个MotionEvent传递给View的层级,MotionEvent在View的层级传递的过程就是点击事件分发。
2019-08-22 16:37:06
532
原创 Java 值传递问题
本文分析了Java中的值传递机制。Java方法参数传递永远是变量值的副本:对于基本数据类型传递的是值本身,修改副本不影响原值;对于引用类型传递的是对象地址值副本,可通过地址修改对象属性,但不能修改原引用本身。通过三个示例演示了基本类型、引用类型属性修改和引用本身修改的不同表现,证实了Java只有值传递的特性。理解这一机制对避免编程中的常见误区至关重要。
2026-01-02 12:07:16
110
原创 JavaScript 惰性函数
JavaScript惰性函数通过函数自我覆盖实现延迟执行和性能优化。在性能优化方面,惰性函数首次调用时会检测浏览器特性并替换为最优实现,避免重复判断(如事件绑定示例)。在延迟加载方面,惰性函数仅在需要时才创建对象(如用户数据示例),减少不必要的初始化开销。这两种模式都能有效提升代码执行效率,特别适用于需要频繁调用或资源初始化的场景。
2026-01-01 22:46:03
113
原创 TypeScript 工具类型
TypeScript工具类型是提高开发效率和代码质量的强大工具,主要包括Partial(属性可选)、Required(属性必填)、Readonly(属性只读)、Pick(选取属性)、Omit(排除属性)、Exclude/Extract(联合类型操作)、NonNullable(排除空值)、ReturnType/Parameters(函数类型操作)、Record(键值映射)和ThisType(this类型指定)等。这些工具类型能减少重复代码、提高类型安全性、增强可读性并提升开发效率,通过示例展示了各种工具类型的
2025-12-24 11:55:47
411
原创 TypeScript 总结
TypeScript 是 JavaScript 的超集,提供类型安全检查和更完善的开发工具支持。文章总结了 TypeScript 的核心特性、运行方式、与 JavaScript 的区别以及基本类型系统。重点介绍了接口的使用方法,包括可选属性、只读属性、函数类型接口和可索引类型。通过类型声明和接口定义,TypeScript 能显著提升代码的可维护性和开发效率。文章还提供了 tsconfig.json 配置示例和两种运行 TypeScript 代码的方式(编译为 JavaScript 或直接运行)。
2025-12-24 11:54:54
799
原创 ECharts 使用地图
ECharts地图使用指南摘要:ECharts 5+版本不再内置地图数据,需从GitHub或阿里云DataV获取。地图配置有两种方式:1) geo组件提供基础地图显示,支持缩放/拖拽交互;2) series.map类型直接绘制可视化数据。示例展示了geo+散点图组合使用,以及visualMap实现数据分级着色。关键配置包括:注册地图数据、设置坐标系、定义交互样式和数据绑定。Vue示例代码演示了完整实现流程,包含地图初始化、选项配置和组件销毁。
2025-12-22 11:10:00
389
原创 ECharts 使用总结
ECharts使用总结摘要 ECharts是一个基于JavaScript的开源可视化图表库,支持Canvas和SVG双引擎切换。常用API包括初始化图表(setOption)、调整大小(resize)和事件监听(on/off)。核心配置项涵盖标题(title)、提示框(tooltip)、图例(legend)、网格(grid)和坐标轴(axis)等组件,支持丰富的样式定制。图表类型通过series配置,如折线图可设置线条样式(smooth)、标记点(symbol)和区域填充(areaStyle)。EChart
2025-12-18 11:42:22
729
原创 Android 虚拟机的发展
Android虚拟机经历了从DVM到ART的演进。DVM采用解释执行和JIT编译,安装快但运行效率低。ART引入AOT预编译技术,在Android 7.0后采用"JIT+PGO+AOT"混合策略,大幅提升性能。DVM适合早期低配设备但存在GC卡顿问题;ART通过并发GC、共享内存等优化,使启动速度提升2倍,内存占用减少50%,但增加了安装时间和存储空间。两种虚拟机各具特点,ART已成为现代Android系统的默认选择。
2025-11-26 16:12:43
290
原创 Android AGP与Gradle关系
本文介绍了Android AGP插件与Gradle构建系统的关系。Gradle是通用构建系统,而AGP是专为Android开发的插件,提供资源编译、APK打包等特有功能。文章通过工作流程图展示了二者协作过程,并提供了查看Gradle和AGP版本的方法。最后列出了AGP与Gradle的版本兼容性要求,强调开发者需注意版本匹配。二者的关系可形象理解为"Gradle是引擎,AGP是Android专用驱动程序"。
2025-11-26 13:20:54
359
原创 Android 版本控制总结
本文总结了Android项目中四种版本控制方法:1. 直接指定版本号,在build.gradle中硬编码依赖版本;2. 使用变量占位符,通过def声明变量引用;3. 使用ext扩展属性,在config.gradle中集中管理版本号;4. 利用gradle.properties文件存储版本信息。后两种方法实现了版本信息的集中管理,便于项目维护,其中ext方法支持结构化配置,而gradle.properties则提供了更简单的键值对存储方式。这些方法可根据项目复杂度灵活选择,从简单直接到可维护性强的方案逐步升级
2025-11-26 11:40:47
969
原创 CSS svg
SVG(Scalable Vector Graphics)是一种基于 XML 的矢量图形,由 W3C 指定,支持无损缩放、交互性和动态效果。特点:https://www.iconfont.cn/SVG图标必须包裹在 标签内。结构:获取svg描边的长度:在 svg 的 path 上定义id,通过该 id 在控制台执行JavaScript代码:id名.getTotalLength()
2025-11-23 22:29:50
679
1
原创 CSS animation-timeline动画时间线
CSS animation-timeline 是一种将动画进度与页面滚动或元素可见性关联的新特性,可创建流畅的交互效果。它支持两种驱动方式:scroll()监听滚动容器进度,view()监听元素可见度。示例展示了两种应用场景:1) 固定导航栏中的彩色进度条随页面滚动展开;2) 图片元素在进入视口时执行缩放和透明度变化的动画。这种技术无需JavaScript即可实现基于滚动的动态效果,为网页增添视觉吸引力。
2025-11-21 12:58:32
1057
原创 CSS clip-path裁剪效果
摘要:CSS clip-path 属性用于创建元素裁剪效果,支持多种形状如多边形、圆形、矩形和椭圆形。通过指定坐标点或参数,可将元素裁剪为三角形、菱形、圆形等创意图形。文中提供了代码示例和可视化工具链接,展示如何使用clip-path实现不同裁剪效果,包括三角形、圆形、菱形、内嵌矩形和复杂多边形等。该属性需配合-webkit-前缀使用,适用于图片、div等HTML元素的创意展示。
2025-11-18 15:24:24
242
原创 CSS box-reflect倒影效果
CSS box-reflect是一个非标准属性,主要用于在WebKit浏览器中为元素创建倒影效果。它通过指定倒影方向(上、下、左、右)、距离和可选的遮罩图像来实现。示例代码展示了如何为一个渐变背景的盒子添加下方8px的倒影,并使用渐变实现倒影渐隐效果。该属性需要添加-webkit-前缀,目前在Chrome和Safari等浏览器中支持。倒影效果可以为网页元素增加视觉深度和美观性,但应注意其跨浏览器兼容性限制。
2025-11-18 15:05:18
402
原创 CSS link标签
CSS link标签主要用于在HTML文档中引入外部资源。它位于<head>部分,具有多种用途:引入样式表、定义网站图标、预加载资源等。常用属性包括rel(定义资源关系)、href(资源路径)、type(资源类型)和media(响应式控制)。典型用法包括:链接多个CSS文件实现模块化、通过media属性实现响应式设计、添加网站favicon图标,以及使用preload/preconnect优化资源加载性能。这些功能使link标签成为前端开发中的重要元素。
2025-11-12 10:30:06
335
原创 Android CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout实现折叠置顶效果
通过CoordinatorLayout、AppBarLayout和CollapsingToolbarLayout可实现Android折叠置顶效果。布局层级为CoordinatorLayout包含AppBarLayout和NestedScrollView,AppBarLayout内嵌CollapsingToolbarLayout实现可折叠区域。方式一采用单层结构,Toolbar固定在顶部;方式二添加TabLayout作为第二层置顶区域。关键属性包括layout_scrollFlags控制滚动行为,layout
2025-09-12 13:44:20
1099
原创 Android 圆形和圆角矩形总结
ViewOutlineProvider 是 Android 5.0 引入的一个类,用来定义视图的轮廓(outline可以通过它来实现圆角矩形、椭圆、圆形等效果。</
2025-08-18 14:00:12
482
原创 Android ViewPager2+Fragment viewModelScope问题
Android ViewPager2+Fragment viewModelScope问题
2025-08-15 15:03:19
337
原创 System.currentTimeMillis() 和 SystemClock.elapsedRealtime()
【代码】System.currentTimeMillis() 和 SystemClock.elapsedRealtime()
2025-06-24 14:12:38
397
原创 Android 倒计时总结
简单需求:优先选用CountDownTimer,避免重复造轮子界面交互:使用Handler时注意与View的生命周期绑定后台任务:Timer方案需配合Service使用新项目推荐:采用Kotlin Flow实现,搭配协程更高效性能关键:避免在倒计时回调中执行耗时操作内存优化:所有方案都需注意释放资源
2025-05-29 11:38:42
558
原创 Android View#post()源码分析
在 Activity 中,在 onCreate() 和 onResume() 中是无法获取 View 的宽高,可以通过 View#post() 获取 View 的宽高。
2025-05-06 15:09:16
729
原创 Android 防抖和节流
防抖是指在事件被触发后,等待一段时间,如果在这段时间内没有再触发事件,才执行处理函数。如果在这段时间内又触发了事件,就重新开始计时节流是指在一定时间间隔内,无论事件触发多少次,只执行一次处理函数。
2025-04-02 11:15:13
584
原创 AndroidStudio 下载
Android Studio 的发布周期分为多个阶段,结合 Google 的发布策略调整,其节奏和形式近年来有所变化。普通开发者:使用 Beta 版或 Stable + Feature Drop 版,平衡新功能与稳定性。生产环境:优先选择最新 Stable 版 + Patch,确保安全性。尝鲜者:关注 Canary 版,提前体验新功能。
2025-03-26 13:36:57
1314
原创 Android Coil总结
Coil 是一个用于 Android 的 Kotlin 图像加载库,旨在简化图像加载和显示的过程。它基于 Kotlin 协程,提供了简洁的 API 和高效的性能。.build()
2025-03-06 16:05:05
611
Android 获取屏幕、状态栏、导航栏信息
2023-11-03
Android BLE开发总结
2023-03-27
Gson基本使用,数据容错处理
2022-04-27
RecyclerDemo.rar
2019-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅