- 博客(248)
- 资源 (3)
- 收藏
- 关注
原创 viewModelScope.launch(Dispatchers.IO)和withContext(Dispatchers.IO)
viewModelScope.launch(Dispatchers.IO)和withContext(Dispatchers.IO)
2025-03-26 19:06:06
311
原创 ble中的UUID
BLE中的UUID(通用唯一标识符)是一种用于标识和区分各类服务、特性和描述符的标识符。在BLE的GATT(通用属性配置文件)架构中,每个服务或特性都通过一个唯一的UUID来声明其身份和用途,从而确保不同设备之间能正确识别并交互。总之,BLE的UUID是BLE通信中至关重要的标识符,用于定义和区分设备提供的各种服务和数据,使得跨设备、跨平台的互操作成为可能。
2025-03-10 17:48:17
179
原创 shouldShowRequestPermissionRationale
shouldShowRequestPermissionRationale
2025-03-06 14:25:57
325
原创 getManufacturerSpecificData(5544)
这段代码的作用是从蓝牙设备的扫描记录(ScanRecord)中提取特定制造商(Manufacturer ID为5544)的专属数据。
2025-03-05 15:58:32
345
原创 Kotlin中类的继承
在 Kotlin 中所有类都有一个Anyequals()hashCode()与toString()。因此,为所有 Kotlin 类都定义了这些方法。默认情况下,Kotlin 类是最终(final)的——它们不能被继承。要使一个类可继承,请用open如果派生类有一个主构造函数,其基类可以(并且必须)根据其参数在该主构造函数中初始化。如果派生类没有主构造函数,那么每个次构造函数必须使用super关键字初始化其基类型,或委托给另一个做到这点的构造函数。
2025-03-04 17:51:59
658
原创 Kotlin中的数字
它们直接使用数字的比特表示在二进制级别进行操作。Kotlin 提供了一组表示数字的内置类型。显式指定类型会触发编译器检测该值是否超出指定类型的表示范围。或者它们对应的可空类型(声明为该类型,或者推断为该类型,或者。当初始化一个没有显式指定类型的变量时,编译器会自动推断为自。除了整数类型之外,Kotlin 还提供无符号整数类型。的结果是该类型),两数字所形成的操作或者区间遵循。)分隔 对于以小数初始化的变量,编译器会推断为。的所有可空引用实际上都是同一对象。静态类型就是浮点数的情况,行为是不同的。
2025-03-04 16:16:18
1082
原创 workManager.enqueueUniquePeriodicWork不执行
Android 系统对周期性任务有一个最小周期限制。对于 PeriodicWorkRequest,最小周期是 15 分钟(900 秒)。如果设置的时间间隔小于 15 分钟,系统会自动将其调整为 15 分钟。即使设置了 15 秒的时间间隔,实际执行频率将被限制为至少每 15 分钟一次。这是为了节省电量和网络资源,并避免过度频繁的任务调度。如上代码使用Worker进行后台周期任务,发现不执行。
2025-02-18 15:49:41
171
原创 关于AndroidStudio的Material Theme选择问题
无脑直接选择Dark theme——>Dracula Theme,不用怀疑!再配合上Rainbow Brackets插件就Perfect了!
2025-02-13 14:32:39
125
原创 com.intellij.diagnostic.PluginException: Cannot create extension (class=com.github.copilot.editor.Co
首先插件今天之前是可以正常使用的,记得在安装另一个插件的时候安装了一个什么套件就用不了了,研究了一下没有找到特别的办法。但是我在卸载干净了当前AS版本,更新到2024.2.2就能使用了。Copilot在AndroidStudio加载错误,显示不出来。
2025-02-13 11:41:14
223
原创 AndroidStudio查看Sqlite和SharedPreference
AndroidStudio查看Sqlite和SharedPreference
2025-02-12 15:54:34
515
原创 Android多包路由方案: ARouter 路由库
在组件化项目中,不同模块(包)间的业务代码相对独立,但页面之间需要跳转,这时就需要一个。这样,即使 MainActivity 位于另一个包或模块中,也能通过路由地址访问到它。来协调各模块间的依赖。在需要跳转的 Activity 中,使用。
2025-02-10 10:26:25
404
原创 api vs implementation 主要区别
api 和 implementation 是两种依赖配置方式,主要区别在于它们的 可见性 和 编译依赖传播。
2025-02-07 17:16:22
155
原创 ParcelFileDescriptor+PdfRenderer在Android渲染显示PDF文件
ParcelFileDescriptor+PdfRenderer在Android渲染显示PDF文件
2025-01-15 11:45:53
694
原创 LiveEventBus 与 EventBus 的对比
是 Android 中常用的事件总线工具,虽然它们的目的相似(解决组件之间的解耦通信问题),但它们的设计理念和特性有所不同。是指即使事件已经发送,但在事件订阅者(观察者)之后仍然可以接收这条事件的功能。通过粘性事件、延迟事件和简单的 API,它可以大幅简化 Android 开发中的事件处理逻辑。是一个易用的事件总线工具,特别适合处理组件解耦的轻量级通信需求。是一个轻量级的事件总线库,基于 Jetpack 的。,具有生命周期感知能力,避免了传统事件总线(如。方法订阅事件,并绑定生命周期组件(如。
2025-01-13 15:35:53
880
原创 标准Android开发jdk和gradle和gradle AGP和AndroidStudio对应版本
最标准Android开发jdk和gradle和gradle apg对应版本
2025-01-13 10:17:39
506
原创 Cipher-Java中的加密
Cipher这段代码的作用是初始化一个加密/解密工具,使用算法结合模式和填充方式。是一个03 03 030x00。
2025-01-07 15:41:32
1174
原创 ConstraintLayout是完美的布局吗?
的设置逻辑是为左右外边距添加间距,而水平居中对齐(通过上述约束)已经将视图的水平位置固定,因此左右的。layout_marginHorizontal 这个属性。都没有必要,外面再包一层LinearLayout就行了。会将视图的水平位置完全居中,这种约束方式会覆盖。解决办法有很多,网络各种什么。
2024-12-25 14:37:25
186
原创 BitmapFactory.decodeResource(getResources(), R.drawable.shap_round_30)返回null
只能解码图片格式文件(如。文件),它无法被解码为。
2024-12-11 15:56:56
164
Git-2.14.1-64
2017-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人