自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiangxiongfly

Android & Flutter & H5

  • 博客(649)
  • 资源 (21)
  • 收藏
  • 关注

原创 Android BLE开发总结

Android BLE开发总结在Android BLE开发中,设备、服务、特征和描述它们之间的关系如下:设备(Device):指BLE设备,如蓝牙耳机、传感器等。服务(Service):指BLE设备所提供的服务,一个BLE设备可以提供多个服务,每个服务有一个唯一的UUID,服务中包含多个特征值。特征(Characteristic):指BLE设备服务中的特征值,每个特征值有一个唯一的UUID,可以读取、写入和监听特征值数据。描述(Descriptor):指BLE设备服务中特征值的描述信息,描述信息

2023-03-27 15:38:28 1760 3

原创 Java HashMap源码分析

JDK1.7为:数组+链表。JDK1.8为:数组+链表+红黑树。

2021-07-14 16:34:03 378

原创 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 378 2

原创 Android View的工作流程

View的measure流程View的layout流程View的draw流程

2021-02-16 21:03:22 303

原创 Java LinkedList源码分析

LinkedList总结LinkedList本质是一个双向链表,内部维护链表头节点和尾节点。Node是LinkedList的一个静态内部类,是LinkedList的核心,内部维护具体的值和上下节点的关系。相对ArrayList增删效率高,查询效率低,线程不安全。

2020-04-09 15:20:48 680

原创 Java ArrayList源码分析

本质是数组操作,最终调用System.arraycopy()实现底层扩容和增删等操作。查询效率高,增删效率低,线程不安全。

2020-04-07 11:21:24 545

原创 Android WMS流程

Window & Activity & DecorView & ViewRoot关系

2019-08-27 16:54:53 835

原创 Android 事件分发机制

当我们点击屏幕,就产生了触摸事件,这个事件被封装成了一个类:MotionEvent。而当这个MotionEvent产生后,那么系统就会将这个MotionEvent传递给View的层级,MotionEvent在View的层级传递的过程就是点击事件分发。

2019-08-22 16:37:06 536

原创 JavaScript Object.defineProperty()总结

本文总结了JavaScript中Object.defineProperty()方法的用法,该方法是用于精准控制对象属性的关键方法。文章介绍了其基本语法和两种属性描述符类型:数据描述符(包含value、writable等特性)和访问器描述符(包含get、set等特性)。通过多个代码示例展示了如何定义数据属性、只读属性、不可枚举属性、不可配置属性以及访问器属性,演示了该方法在属性控制方面的强大功能。这些特性为开发者提供了对对象属性的精细控制能力。

2026-01-22 11:16:02 294

原创 Vant 总结

Vant移动端组件库使用指南 Vant是由有赞团队开发的轻量级移动端Vue组件库,专为移动端设计,提供丰富的UI组件和主题定制能力。本文总结了Vant的核心特性、安装配置方法和常用组件: 核心优势: 专为移动端优化,适配各种屏幕尺寸 支持按需引入减少体积 提供完整文档和示例 快速配置: 通过npm安装Vant 支持全局引入或推荐使用按需引入方案 配置vite.config.js实现自动导入 组件分类: 基础组件:按钮、图标、图片等 布局组件:单元格、网格、间距等 表单组件:输入框、选择器、开关等 导航组件:

2026-01-21 15:44:52 951

原创 Vue3 h函数

Vue3的h函数是用于创建虚拟DOM节点的核心函数,作为createVNode的别名。文章介绍了h函数的基本概念、template编译流程以及三种使用方式:选项式API通过render函数返回h创建的VNode;组合式API在setup中返回渲染函数;setup语法糖则通过component组件动态渲染。h函数接收type、props和children三个参数,支持创建包含组件、事件和样式的复杂DOM结构。示例展示了计数器功能的实现,演示了h函数在不同API风格下的应用方式。

2026-01-21 09:44:56 351

原创 Koa 使用总结

Koa.js 是一个轻量级 Web 框架,基于 async/await 语法设计。本文总结了 Koa 的使用方法,包括环境搭建、GET/POST 请求处理以及文件上传功能。通过 koa-router 处理路由,koa-body 解析请求体(支持 JSON、表单和文件上传),并介绍了静态文件服务配置。文章提供了代码示例,展示如何搭建基础服务、处理查询/路径参数以及实现单文件上传功能(包括上传目录创建和文件大小限制设置)。Koa 通过中间件机制实现功能扩展,保持核心精简的同时提供强大灵活性。

2026-01-15 16:24:05 744

原创 Node util

Node.js的util模块提供了多种实用工具函数,主要包括:1)promisify/callbackify用于Promise和回调函数间的转换;2)types包含各种类型检查方法;3)isDeepStrictEqual实现深度对象比较;4)inspect用于调试时的对象格式化输出;5)format支持字符串格式化;6)TextEncoder/TextDecoder处理文本编码转换。这些功能覆盖了调试、异步控制、类型检查等常见开发需求,是Node.js核心工具库的重要组成部分。

2026-01-04 14:44:31 255

原创 Node url

Node.js的URL模块提供了URL解析和处理功能,主要包括URL和URLSearchParams两个核心类。URL类用于解析URL字符串,提供href、protocol、host等属性来获取URL各部分信息,并支持修改URL内容。URLSearchParams类专门处理查询参数,支持添加(set)、获取(get)、删除(delete)等操作,以及参数遍历和排序功能。通过这两个类的组合使用,可以方便地解析、构建和修改URL及其查询参数,适用于各种URL处理场景。

2026-01-04 14:43:21 360

原创 Node http

Node.js的http模块是核心模块,用于创建HTTP服务器和客户端。文章介绍了http模块的核心API,包括请求对象和响应对象的属性和方法,并提供了创建服务器、处理不同HTTP方法、获取请求参数等实用代码示例。通过http模块可以实现基础的Web服务功能,如路由处理、请求响应操作等,适合构建简单的Web应用和API服务。

2026-01-04 14:39:04 844 1

原创 Node crypto

本文介绍了Node.js的crypto加密模块,主要包含哈希生成、加密解密和随机字节生成功能。哈希部分演示了createHash()方法生成SHA-256和MD5哈希值;加密解密部分展示了使用createCipheriv()和createDecipheriv()实现AES-256-CBC算法的加密解密流程;最后介绍了randomBytes()生成随机字节的方法,包括同步和异步两种调用方式。该模块为Node.js提供了基础的加密功能支持。

2026-01-04 14:35:31 321

原创 Java 值传递问题

本文分析了Java中的值传递机制。Java方法参数传递永远是变量值的副本:对于基本数据类型传递的是值本身,修改副本不影响原值;对于引用类型传递的是对象地址值副本,可通过地址修改对象属性,但不能修改原引用本身。通过三个示例演示了基本类型、引用类型属性修改和引用本身修改的不同表现,证实了Java只有值传递的特性。理解这一机制对避免编程中的常见误区至关重要。

2026-01-02 12:07:16 420

原创 JavaScript 惰性函数

JavaScript惰性函数通过函数自我覆盖实现延迟执行和性能优化。在性能优化方面,惰性函数首次调用时会检测浏览器特性并替换为最优实现,避免重复判断(如事件绑定示例)。在延迟加载方面,惰性函数仅在需要时才创建对象(如用户数据示例),减少不必要的初始化开销。这两种模式都能有效提升代码执行效率,特别适用于需要频繁调用或资源初始化的场景。

2026-01-01 22:46:03 296

原创 TypeScript 工具类型

TypeScript工具类型是提高开发效率和代码质量的强大工具,主要包括Partial(属性可选)、Required(属性必填)、Readonly(属性只读)、Pick(选取属性)、Omit(排除属性)、Exclude/Extract(联合类型操作)、NonNullable(排除空值)、ReturnType/Parameters(函数类型操作)、Record(键值映射)和ThisType(this类型指定)等。这些工具类型能减少重复代码、提高类型安全性、增强可读性并提升开发效率,通过示例展示了各种工具类型的

2025-12-24 11:55:47 425

原创 TypeScript 总结

TypeScript 是 JavaScript 的超集,提供类型安全检查和更完善的开发工具支持。文章总结了 TypeScript 的核心特性、运行方式、与 JavaScript 的区别以及基本类型系统。重点介绍了接口的使用方法,包括可选属性、只读属性、函数类型接口和可索引类型。通过类型声明和接口定义,TypeScript 能显著提升代码的可维护性和开发效率。文章还提供了 tsconfig.json 配置示例和两种运行 TypeScript 代码的方式(编译为 JavaScript 或直接运行)。

2025-12-24 11:54:54 813

原创 ECharts 使用地图

ECharts地图使用指南摘要:ECharts 5+版本不再内置地图数据,需从GitHub或阿里云DataV获取。地图配置有两种方式:1) geo组件提供基础地图显示,支持缩放/拖拽交互;2) series.map类型直接绘制可视化数据。示例展示了geo+散点图组合使用,以及visualMap实现数据分级着色。关键配置包括:注册地图数据、设置坐标系、定义交互样式和数据绑定。Vue示例代码演示了完整实现流程,包含地图初始化、选项配置和组件销毁。

2025-12-22 11:10:00 453

原创 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 746

原创 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 315

原创 Android AGP与Gradle关系

本文介绍了Android AGP插件与Gradle构建系统的关系。Gradle是通用构建系统,而AGP是专为Android开发的插件,提供资源编译、APK打包等特有功能。文章通过工作流程图展示了二者协作过程,并提供了查看Gradle和AGP版本的方法。最后列出了AGP与Gradle的版本兼容性要求,强调开发者需注意版本匹配。二者的关系可形象理解为"Gradle是引擎,AGP是Android专用驱动程序"。

2025-11-26 13:20:54 402

原创 Android 版本控制总结

本文总结了Android项目中四种版本控制方法:1. 直接指定版本号,在build.gradle中硬编码依赖版本;2. 使用变量占位符,通过def声明变量引用;3. 使用ext扩展属性,在config.gradle中集中管理版本号;4. 利用gradle.properties文件存储版本信息。后两种方法实现了版本信息的集中管理,便于项目维护,其中ext方法支持结构化配置,而gradle.properties则提供了更简单的键值对存储方式。这些方法可根据项目复杂度灵活选择,从简单直接到可维护性强的方案逐步升级

2025-11-26 11:40:47 988

原创 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 709 1

原创 CSS animation-timeline动画时间线

CSS animation-timeline 是一种将动画进度与页面滚动或元素可见性关联的新特性,可创建流畅的交互效果。它支持两种驱动方式:scroll()监听滚动容器进度,view()监听元素可见度。示例展示了两种应用场景:1) 固定导航栏中的彩色进度条随页面滚动展开;2) 图片元素在进入视口时执行缩放和透明度变化的动画。这种技术无需JavaScript即可实现基于滚动的动态效果,为网页增添视觉吸引力。

2025-11-21 12:58:32 1077

原创 CSS clip-path裁剪效果

摘要:CSS clip-path 属性用于创建元素裁剪效果,支持多种形状如多边形、圆形、矩形和椭圆形。通过指定坐标点或参数,可将元素裁剪为三角形、菱形、圆形等创意图形。文中提供了代码示例和可视化工具链接,展示如何使用clip-path实现不同裁剪效果,包括三角形、圆形、菱形、内嵌矩形和复杂多边形等。该属性需配合-webkit-前缀使用,适用于图片、div等HTML元素的创意展示。

2025-11-18 15:24:24 259

原创 CSS box-reflect倒影效果

CSS box-reflect是一个非标准属性,主要用于在WebKit浏览器中为元素创建倒影效果。它通过指定倒影方向(上、下、左、右)、距离和可选的遮罩图像来实现。示例代码展示了如何为一个渐变背景的盒子添加下方8px的倒影,并使用渐变实现倒影渐隐效果。该属性需要添加-webkit-前缀,目前在Chrome和Safari等浏览器中支持。倒影效果可以为网页元素增加视觉深度和美观性,但应注意其跨浏览器兼容性限制。

2025-11-18 15:05:18 411

原创 CSS link标签

CSS link标签主要用于在HTML文档中引入外部资源。它位于<head>部分,具有多种用途:引入样式表、定义网站图标、预加载资源等。常用属性包括rel(定义资源关系)、href(资源路径)、type(资源类型)和media(响应式控制)。典型用法包括:链接多个CSS文件实现模块化、通过media属性实现响应式设计、添加网站favicon图标,以及使用preload/preconnect优化资源加载性能。这些功能使link标签成为前端开发中的重要元素。

2025-11-12 10:30:06 348

原创 Android 自定义View之评分条

Android 自定义View之评分条

2025-09-29 10:53:00 292

原创 Android 自定义View之BubbleImageView

自定义View之BubbleImageView

2025-09-23 14:39:21 473

原创 Android CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout实现折叠置顶效果

通过CoordinatorLayout、AppBarLayout和CollapsingToolbarLayout可实现Android折叠置顶效果。布局层级为CoordinatorLayout包含AppBarLayout和NestedScrollView,AppBarLayout内嵌CollapsingToolbarLayout实现可折叠区域。方式一采用单层结构,Toolbar固定在顶部;方式二添加TabLayout作为第二层置顶区域。关键属性包括layout_scrollFlags控制滚动行为,layout

2025-09-12 13:44:20 1118

原创 Android 圆形和圆角矩形总结

ViewOutlineProvider 是 Android 5.0 引入的一个类,用来定义视图的轮廓(outline可以通过它来实现圆角矩形、椭圆、圆形等效果。</

2025-08-18 14:00:12 488

原创 Android ViewPager2+Fragment viewModelScope问题

Android ViewPager2+Fragment viewModelScope问题

2025-08-15 15:03:19 343

原创 JavaScript 普通函数和箭头函数

箭头函数和普通函数

2025-07-07 13:42:45 337

原创 Kotlin 退出循环总结

for循环forEach()嵌套for循环lambda函数inline函数

2025-06-26 09:33:41 349

原创 System.currentTimeMillis() 和 SystemClock.elapsedRealtime()

【代码】System.currentTimeMillis() 和 SystemClock.elapsedRealtime()

2025-06-24 14:12:38 406

原创 Android 倒计时总结

简单需求:优先选用CountDownTimer,避免重复造轮子界面交互:使用Handler时注意与View的生命周期绑定后台任务:Timer方案需配合Service使用新项目推荐:采用Kotlin Flow实现,搭配协程更高效性能关键:避免在倒计时回调中执行耗时操作内存优化:所有方案都需注意释放资源

2025-05-29 11:38:42 567

原创 Android setContentView()源码分析

setContentView() 源码分析

2025-05-06 16:09:52 518

用于查看周围蓝牙设备信息

可以查看周围蓝牙设备信息,包含:蓝牙名、地址、设备类型等。

2024-01-12

Android 获取屏幕、状态栏、导航栏信息

手机屏幕高度 = 状态栏高度 + ActionBar高度 + ContentView高度 + 导航栏高度 有的手机开启全面屏手势后,底部导航栏会隐藏,有的则不会隐藏会变小,隐藏需要判断导航栏是否显示,然后再计算高度。

2023-11-03

Android BLE开发总结

AndroiBLE开发总结: 在Android BLE开发中,设备、服务、特征和描述它们之间的关系如下: - 设备(Device):指BLE设备,如蓝牙耳机、传感器等。 - 服务(Service):指BLE设备所提供的服务,一个BLE设备可以提供多个服务,每个服务有一个唯一的UUID,服务中包含多个特征值。 - 特征(Characteristic):指BLE设备服务中的特征值,每个特征值有一个唯一的UUID,可以读取、写入和监听特征值数据。 - 描述(Descriptor):指BLE设备服务中特征值的描述信息,描述信息通常包含对特征值的详细描述和配置信息。

2023-03-27

jquery1.12.4

jquery1.12.4 压缩版

2022-12-19

蓝牙串口调试助手apk

蓝牙串口调试助手

2022-09-09

Gson基本使用,数据容错处理

Gson基本使用,数据容错处理 适配boolean、Boolean、int、Integer、float、Float、double、Double、long、Long、String类型。 还包括服务器返回的restful规范数据。

2022-04-27

Android 软键盘处理

1. EditText基本使用 2. 软键盘遮挡问题及处理

2022-04-25

封装一个通用Dialog,使用DialogFragment

封装一个通用Dialog,使用DialogFragment有很多优势。

2018-07-12

android自定义通用PopupWindow

android 封装一个通用PopupWindow,避免重复造轮子,简化代码,方便管理。

2018-07-12

MyPhoto.rar

Android 调用系统相册、拍照、剪裁功能

2021-12-22

android_自定义TitleBar

开发过程中会遇见很多app顶部的控制栏,封装一个通用TitleBar

2018-07-04

android 自定义带删除按钮的EditText

自定义一个带icon图标带删除按钮的EditText,简洁代码。

2018-07-06

android通用LoadingView封装框架

手写一个通用加载中、显示数据、加载失败、空数据的LoadingView框架。

2018-07-05

Android防快速重复点击

Android防快速重复点击,防止多次重复点击导致多个相同的界面

2018-09-26

仿抖音列表

模仿抖音视频列表,一遍滚动一遍播放视频,全屏展示。

2018-09-20

android环形进度条

一个通俗易懂的环形进度条,可以定制颜色角度,监听进度。

2018-07-05

Android 启动页黑屏问题

Android 启动页黑屏问题,设置style样式,添加动画,增加界面流畅度

2018-08-20

Android 使用MVP+RxJava+Retrofit

Android使用MVP+RxJava+Retrofit,实现登录功能。

2019-04-02

android_验证码按钮

开发过程中会遇见很多app注册时,需要通过手机发送验证码验证 ,这是可以封装一个验证码按钮。

2018-07-04

android底部切换标签

android底部通用切换标签,Fragment嵌套页面,方便自定义

2018-07-04

仿IOS底部弹窗

使用PopupWindow仿一个IOS底部弹窗,进入退出动画,背景变灰

2018-08-19

Android简单使用ARouter

Android简单使用ARouter,普通使用、拦截器、服务等。

2019-03-20

Android动画

Android 视图动画( 补间动画,帧动画),属性动画详情使用

2018-07-17

两球旋转动画效果

两球旋转动画效果,可以用于加载时的动画展示,高自定义。

2018-08-29

ListViewDemo.rar

ListView基本使用,ArrayAdapter、SimpleAdapter、BaseAdapter

2019-11-05

RecyclerDemo.rar

Android RecyclerView基本使用完整代码!!! layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); recyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL)); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(mAdapter);

2019-10-14

空空如也

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

TA关注的人

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