自定义博客皮肤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

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

原创 Android BLE开发总结

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

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

原创 Java HashMap源码分析

文章目录HashMap源码分析概述数据结构储存流程源码分析基本属性Node构造函数put()resize()HashMap源码分析概述在JDK1.7中,HashMap的数据结构为:数组+链表在JDK1.8中,HashMap优化了数据结构,引入了红黑树,即:数组+链表+红黑树解决hash冲突问题:无冲突:存放在数组中有冲突,链表长度<8时,存放在单链表中有冲突,链表长度>8时,先存入链表,再链表转红黑树哈希表和哈希桶采用哈希函数将记录储存在一块连续的存储空间中,这块

2021-07-14 16:34:03 265 1

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

原创 Android 知识总结

Android 知识总结数据存储方式

2021-07-08 13:16:45 170

原创 Android View的工作流程

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

2021-02-16 21:03:22 179

原创 Java LinkedList源码分析

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

2020-04-09 15:20:48 527

原创 Java ArrayList源码分析

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

2020-04-07 11:21:24 410

原创 Android WMS流程

Window & Activity & DecorView & ViewRoot关系

2019-08-27 16:54:53 624

原创 Android 事件分发机制

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

2019-08-22 16:37:06 406

原创 Compose 屏幕适配

横竖屏适配分辨率适配

2024-04-26 11:56:15 42

原创 Compose和Android View相互使用

在Compose中使用View概述简单控件复杂控件嵌入XML布局在View中使用Compose概述在Activity中使用Compose在Fragment中使用Compose布局使用多个ComposeView在布局中使用Compose组合使用

2024-04-26 10:22:01 307

原创 Compose 使用Navigation

简单使用传递参数解析参数类型可选默认值参数可选null值参数传递对象

2024-04-24 17:13:07 262

原创 Compose 手势

点击事件滚动事件嵌套滚动拖动事件滑动事件

2024-04-23 17:35:03 208

原创 Compose 动画

高级别动画AnimatedVisibiliy 可见性动画animateContentSize 布局大小动画Crossfade 淡入淡出动画低级别动画animateXXXAsState 属性动画Animatable 帧动画updateTransition 组合多个动画rememberInfiniteTransition 重复执行动画自定义动画

2024-04-23 14:37:24 235

原创 Compose Canvas

drawPointsdrawLinedrawRectdrawRoundRectdrawCircledrawOvaldrawArcdrawImagedrawPath混合模式

2024-04-19 16:29:57 285

原创 Compose 基础组件

Modifier 修饰符Scaffold 脚手架

2024-04-18 17:25:39 306

原创 Compose 布局

ColumnRowBoxConstraintLayoutLazyColumnLazyRowLazyVerticalGrid

2024-04-18 16:48:12 925

原创 Compose 简单组件

TextTextFieldButtonImageCircularProgressIndicator & LinearProgressIndicator

2024-04-17 15:26:12 1035

原创 Android 自定义EditText

定义一款可清空内容的 EditText 和可显示密码的 EditText,支持修改提示图标和大小、背景图片等。

2024-03-27 15:58:37 970

原创 Android Kotlin版封装EventBus

Android Kotlin版封装EventBus

2024-03-19 15:24:47 609 1

原创 Android StateLayout状态页

StateLayout(状态页)包含:加载中页面,错误页面,空页面,内含状态默认页面,支持自定义页面。

2024-03-19 11:47:48 504

转载 gradle build running 一直卡很久(最近版本),解决办法

gradle build running 一直卡很久(最近版本),解决办法

2024-03-19 11:22:48 242

原创 Android ViewPager不支持wrap_content的原因

Android ViewPager不支持wrap_content的原因

2024-03-18 10:16:29 412

原创 Android 验证Activity启动模式

launchModestandardsingleTopsingleTasksingleInstanceIntent标记FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TASK 和 FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP

2024-02-28 14:22:15 1096

原创 Android Activity启动模式

四种启动模式Intent标记

2024-02-27 16:05:04 643

原创 Android 监听网络状态变化

Android 监听网络状态变化

2024-02-26 16:04:40 684

原创 Android LruCache源码分析

LruCache(Least Recently Used Cache,最少最近使用缓存)是 Android 中的一种缓存机制。根据数据的使用频率淘汰减少使用的数据,当需要缓存新数据时,如果缓存已满,LruCache 会淘汰最近最少使用的数据,腾出空间给新数据。

2024-02-22 16:46:11 535

原创 Android 系统定位和高德定位

系统定位和高德定位

2024-02-21 15:12:07 661

原创 Android SharedPreferences源码分析

SharedPreferences源码分析

2024-01-26 16:11:16 1087

原创 Android 基于Fragment的权限封装

Fragment 并不像 Activity 那样必须有界面,我们完全可以向 Activity 中添加一个隐藏的 Fragment,然后在这个隐藏的 Fragment 中对运行时权限的 API 进行封装。这是一种非常轻量级的做法,不用担心隐藏 Fragment 会对 Activity 的性能造成什么影响。

2024-01-22 14:36:54 571

原创 Jetpack CameraX

CameraX 是一个 Jetpack 库,旨在帮助您更轻松地开发相机应用。如果您要开发新应用,我们建议您从 CameraX 开始。它提供了一个一致且易于使用的 API,该 API 适用于绝大多数 Android 设备,并向后兼容 Android 5.0(API 级别 21)。

2024-01-11 17:03:36 450

原创 Android Context在四大组件及Application中的表现

Context可以理解为“上下文”或”环境“,它提供了访问系统服务及系统资源的功能,Context 参与加载资源、启动Activity、启动Service、获取系统服务/应用资源、创建View、数据库等操作。Context源码Activity流程分析Service流程分析BroadcastReceiver流程分析ContentProvider流程分析Application流程分析

2023-12-29 17:11:19 1126

原创 Android 理解Context

Context可以理解为“上下文”或”环境“,它提供了一个应用运行所需要的信息,Context 参与加载资源、启动Activity、启动Service、获取系统服务/应用资源、创建View、数据库等操作。

2023-12-29 14:48:11 1322

原创 Android 软键盘的显示和隐藏

显示软键盘:InputMethodManager#showSoftInput(View view, int flags)隐藏软键盘:InputMethodManager#hideSoftInputFromWindow(IBinder windowToken, int flags)

2023-12-26 16:36:12 770

原创 Jetpack DataStore

Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。DataStore 提供两种不同的实现:Preferences DataStore 和 Proto DataStore。Preferences DataStore 使用键存储和访问数据。此实现不需要预定义的架构,也不确保类型安全。Proto DataStore 将数据作为自定义数据类型的实例进行存储。此实现

2023-12-22 14:02:33 845

原创 Jetpack Paging3

Paging 库可帮助您加载和显示来自本地存储或网络中更大的数据集中的数据页面。此方法可让您的应用更高效地利用网络带宽和系统资源。Paging 库的组件旨在契合推荐的[Android 应用架构](https://developer.android.google.cn/jetpack/docs/guide?hl=zh-cn),流畅集成其他[Jetpack](https://developer.android.google.cn/jetpack?hl=zh-cn)组件,并提供一流的 Kotlin 支持。

2023-12-21 11:32:59 877

原创 Jetpack WorkManager

是适合用于持久性工作的推荐解决方案。如果工作始终要通过应用重启和系统重新启动来调度,便是持久性的工作。由于大多数后台处理操作都是通过持久性工作完成的,因此 WorkManager 是适用于后台处理操作的主要推荐 API。

2023-12-15 16:36:46 882

原创 Android MVVM+coroutine+retrofit+flow+hilt

依赖注入层数据层视图层模型视图层

2023-12-05 17:06:07 593

原创 Android launchWhenXXX 和 repeatOnLifecycle

lifecycleScope和viewModelScopelaunchWhenXXXrepeatOnLifecycleflowWithLifecycle

2023-11-13 15:28:38 473

原创 Android Groovy 迁移到 KTS

Android Studio是使用Gradle来编译,而默认的构建语言是Groovy,但是Gradle实际上是支持Kotlin来编写Gradle构建脚本的,常见的构建脚本是.gradle结尾,而Koltin语法编写的脚本则是.gradle.kts 。

2023-10-31 16:28:30 262

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

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

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

MyPhoto.rar

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

2021-12-22

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

Android 使用MVP+RxJava+Retrofit

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

2019-04-02

Android简单使用ARouter

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

2019-03-20

Android防快速重复点击

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

2018-09-26

仿抖音列表

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

2018-09-20

两球旋转动画效果

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

2018-08-29

Android 启动页黑屏问题

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

2018-08-20

仿IOS底部弹窗

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

2018-08-19

Android动画

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

2018-07-17

android自定义通用PopupWindow

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

2018-07-12

封装一个通用Dialog,使用DialogFragment

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

2018-07-12

android 自定义带删除按钮的EditText

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

2018-07-06

android环形进度条

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

2018-07-05

android通用LoadingView封装框架

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

2018-07-05

android底部切换标签

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

2018-07-04

android_自定义TitleBar

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

2018-07-04

android_验证码按钮

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

2018-07-04

空空如也

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

TA关注的人

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