移动开发

Android 蓝牙串口通信Demo

关于如何设置笔记本电脑的蓝牙 串口并且和手机蓝牙配对,以及pc串口调试工具的下载请看这篇博客: 通过上面这篇博客的操作再进入app就能实现本Demo 和 pc串口调试工具的数据互传了。(如果在app中总是显示连接出错,多半是因为蓝牙没有配对好,关闭蓝牙再多配对几次) 效果

Kotlin 监听键盘显示隐藏

最近碰上了需要监听键盘显示和隐藏,在Kotlin场景下封装了一个扩展方法,方便日后使用。 Android系统本身并没有提供有效的方法可以监听键盘的显示和隐藏,常用的监听方法莫过于屏幕的可见区域高度,当高度变化超过一定值,一般认为是超过200像素,就说明有键盘的显示和隐藏操作。 fun Activity.observeKeyboardChange(onChange: (isShowing: Bool

自己写个App 启动任务框架也不过如此!

作者:王晨彦 一、前言 我们在开发应用的时候,一般都会引入 SDK,而大部分 SDK 都要求我们在 Application 中初始化,当我们引入的 SDK 越来越多,就会出现 Application 越来越长,如果 SDK 的初始化任务相互依赖,还要处理很多条件判断,这时,如果再来个异步初始化,相信大家都会崩溃。 有人可能会说,我都在主线程按顺序初始化不就行了,当然行,只要老板不来找你麻烦。

Flutter / React / ArkUI:在鸿蒙 PC 上怎么选?

网罗开发 (小红书、快手、视频号同名)   大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域

浅谈 RunLoop

什么是RunLoop     RunLoop 是事件接收和分发机制的一个实现,是线程相关的基础框架的一部分,一个 RunLoop 就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,通常的代码逻辑是这样的: do{ //... }while(//...)     

Android学习总结之Room篇

一、Room 框架基础1. 实体类(Entity)实体类用于描述数据库表的结构。通过使用 @Entity 注解,可以将一个 Java 类映射到数据库中的一张表。例如,以下是一个简单的 User 实体类:import androidx.room.Entity; import androidx.room.PrimaryKey

Launcher进程启动流程

1、Launcher Launcher作为Android系统的桌面,它的作用有两点: 作为Android系统的启动器,用于启动应用程序; 作为Android系统的桌面,用于显示和管理应用程序的快捷图标或者其它桌面组件; 2、Launcher进程启动流程 2.1、SystemServer调用 在SystemServer进程启动之后,执行其run()函数,在里面执行了大量的配置设置操作,并且启动了各种

iOS动画 —— UIBezierPath

简介 UIBezierPath类创建基于矢量的路径,例如椭圆或者矩形,或者有多个直线和曲线段组成的形状。 UIBezierPath是UIKit中的一个关于图形绘制的类,是通过Quartz 2D也就是CG(Core Graphics)CGPathRef的封装得到的,从高级特性支持来看不及CG。 使用UIBezierPath,你只能在当前图形上下文中绘制。 CGContextRef即图形上下