自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 git 配置SSH

使用SSH建立Git 远程仓库和本地库连接_hsck仓库连接-CSDN博客

2024-08-19 14:17:14 255

原创 LiveData

LiveData是Android中用来进行数据监听的类。由于一些限制,现在官方推荐使用Flow进行数据监听。在ktx拓展包中,使用LiveData.asFlow()可以很方便的将LiveData转换为Flow。Flow.asLiveData()也可以很方便的将Flow转换为LiveData。

2024-08-08 22:11:39 325

原创 LifeCycle

假如我们想要监听的类(不是Activity)没有实现,那么就没有办法直接获取LifeCycle。所以就需要进行自定义。) {

2024-08-06 15:56:11 322

原创 ViewModel

视图与数据模型之间的桥梁ViewModel。

2024-08-04 22:10:26 923

原创 VideoView

setOnCompletionListener(MediaPlayer.onCompletionListener l):设置监听播放完成的事件。void setVideoURI(Uri uri):以Uri的方式设置视频源,网络Uri或本地Uri。void stopPlayback():停止播放,调用resume()可以从头重新播放。int getDuration():获取当前播放视频的总长度,单位为毫秒。void pause():暂停,调用start()可以继续。void start():开始播放。

2024-08-04 21:01:46 198

原创 Activity

当调用到onNewIntent(intent)的时候,需要在onNewIntent()中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。,如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity的实例,只要不在栈顶,都会创建新的实例。如果栈中不存在该实例,将会创建新的实例放入栈中。

2024-07-27 08:34:19 941

原创 Service

通过方法启动,此服务可以在后台一直运行,不会随启动组件的消亡而消亡。但是,此种启动模式只能执行单一操作,并且无法返回结果给调用方,主要常用于网络下载、上传文件,播放音乐等。通过启动模式启动的Service,如不主动关闭,Service会一直在。首次调用完startService函数后,Service1的onCreate和onStartCommand函数会依次执行,表示服务正式启动;

2024-07-22 20:22:55 761

原创 Kotlin Flow 防抖 节流

防抖和节流是针对响应跟不上触发频率这类问题的两种解决方案。

2024-07-13 17:01:24 276

原创 git 代码回退 soft hard区别

git hard 回退 会清除掉 你当前修改的所有文件代码内容 或添加的新文件 把当前文件恢复到没有修改前的状态。git soft 回退 不会清除掉 你当前修改的所有文件代码内容 或添加的新文件。一:只是本地修改提交到本地版本库仓库,代码如何回退。把当前文件恢复到当时修改时的状态。

2024-06-29 17:25:41 99

原创 协程:响应式编程框架: Flow 异步流 /Flow 操作符/Flow 流发射收集元素的异常处理

123456。

2024-06-21 21:00:21 233

原创 Kotlin 协程与 Retrofit

Kotlin 协程与 Retrofit | Jinyan's BlogKotlin 协程与 Retrofit | Jinyan's Blog

2024-06-09 21:11:04 122 1

原创 补篇协程:关键字suspend「挂起」的深入理解

suspend。

2024-06-09 20:32:53 656 1

原创 补篇协程:协程(Coroutine)里使用suspend函数实现异步IO操作

因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。使用了异步IO,在发起IO请求到实际使用数据这段时间 内,程序还可以继续做其他事情。

2024-06-08 22:19:20 369 1

原创 Java IO流详解

IO流是基于流的概念,它将数据的输入和输出看作是一个连续的流。数据从一个地方流向另一个地方,流的方向可以是输入(读取数据)或输出(写入数据)。以字节为单位读写数据,适用于处理二进制字节数据,如图像、音频、视频等。通过IO流可以进行网络数据的传输和接收,如Socket通信、HTTP请求等。通过IO流可以读取和写入文件中的数据,如读取配置文件、写入日志等。通过IO流可以将数据读取到内存中,或将内存中的数据写入到数据库中。IO流的原理是通过流的管道将数据从源头传输到目标地。:从字节数组中读取字节数据的类。

2024-06-08 21:41:37 804 1

原创 仿作用域函数with自定义各种myWith1/2/3/4/5/6/7(...)函数

【代码】仿作用域函数with自定义各种myWith1/2/3/4/5/6()

2024-06-04 14:46:30 95

原创 使用匿名labmda表达式对一个函数的参数是个函数类型的具体实现时的 双向回调数据 双向处理业务逻辑

双向回调数据 双向处理业务逻辑在android的应用场景就是:Activity界面的RecyclerView与Adapter双向的相互传递数据处理业务逻辑。

2024-05-28 20:20:44 215

原创 二次重温协程

Job是协程的句柄。如果把门和门把手比作协程和Job之间的关系,那么协程就是这扇门,Job就是门把手。意思就是可以通过Job实现对协程的控制和管理。Job我们可以认为他就是一个协程作业是通过生成的,同时它运行一个指定的代码块,并在该代码块完成时完成。我们可以通过isActive来获取到Job的当前状态。Deferred 继承了 Job 接口 , 是 Job 接口的子接口;机翻文档 , 仅供参考;/*** 定义协同程序构建器的开始选项。

2024-05-02 22:08:07 757

原创 函数的参数命名和默认参数

在Kotlin中,函数可以有多个参数,记住参数的顺序或者仅靠位置理解他们的作用可能会很具有挑战性,特别是对于接受多个参数或者有相同类型参数的函数。命名参数通过允许开发者指定传递给函数的每个参数的名称来解决这个问题。

2024-04-15 15:22:56 270

原创 安全调用(?.) Elvis运算符(?:)

安全调用运算符允许开发者在可能为空的对象上安全地访问属性或调用方法。如果对象不为空,操作就会被执行;如果对象为空,则跳过操作,并返回null而不是抛出NullPointerException。如果text不为null,那么length将被赋予text的长度;如果text为null,那么length也将为null,全部都不会报NullPointerException。

2024-04-15 14:47:32 413

原创 Android 内存优化&内存泄漏处理

匿名内部类的泄漏原因:匿名内部类会隐式地持有外部类的引用.当外部类被销毁时,内部类并不会自动销毁,因为内部类并不是外部类的成员变量,它们只是在外部类的作用域内创建的对象,所以内部类的销毁时机和外部类的销毁时机是不同的,所以会不会取决与对应对象是否存在被持有的引用.

2024-02-24 19:14:46 1345

原创 协议基础笔记

串口通信是Android智能硬件开发所必须具备的能力,市面上类型众多的外设基本都是通过串口进行数据传输的,所以说不会串口通信根本就做不了智能硬件开发。串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。串口可以在使用一根线(Tx)发送数据的同时用另一根线(Rx)接收数据。

2024-01-02 21:04:37 931

原创 Android 串口协议

CHKSUM : 是 校 验 .CHKSUM = 0 xor Packet[0] xor Packet[1] xor …而接受数据再发出回应数据包的通讯端点为从机(Slaver)(主控板) ,Slaver 发出的数据包被称为应答数据包。发送数据的通讯端点为主机(Master)(Android), Master 发出的数据包被称为请求命令数据包。Packet[N]表示即将发送的当前数据包的第 N 个字节去除 CHKSUM 字段的其他所有部分。请求命令数据包与应答数据包必须是成对出现,每个应答对应一个请求。

2024-01-02 21:04:27 731

原创 arkTS 基础知识

需要加 @Component export 关键字不需要加this. 调用放在类外(需要加@Builder function关键字) (每个组件都能调用)需要加this.调用封装:在Index2类里面(不能加function关键字) (当前这个组件自己都有的 别的组件不能调用)加关键字@Styles装饰器封装的全局公共样式函数(@Styles function)(封装在类外)或者局部公共样式函数(@Style)(封装在类里面)

2023-12-23 16:31:03 1386

原创 jni之as cmakeList配置学习

Java Native Interface(Java 本地编程接口),一套编程规范,它提供了若干的 API 实现了 Java 和其他语言的通信(主要是 C/C++)。Java 可以通过 JNI 调用本地的 C/C++ 代码,本地的 C/C++ 代码也可以调用 java 代码。native代表当前程序运行的本地环境,一般指windows/linux,而这些操作系统都是通过C/C++实现的,所以native通常也指C/C++语言,(也可在其他目录下创建,在第二点会配置这个路径);的名字修改 fmf_jni。

2023-10-18 22:10:50 296

原创 cmake下的abiFilters和ndk下的abiFilters的区别

ndk下的abiFilters是只将哪个类型so库打包进apk安装包里,和生成什么类型的so库没有关系。cmake下的abiFilters是和编译native代码生成什么类型的so库有关。

2023-10-09 17:07:49 342

原创 关于 ndk { abiFilters ‘arm64-v8a‘ } 与splits { abi { include “arm64-v8a“}}的互斥冲突

apk包,通知,从 2019 年 8 月 1 日开始,您在 Google Play 上发布的应用必须支持 64 位架构。64 位 CPU 能够为您的用户提供更快、更丰富的体验。

2023-10-08 15:08:55 1045

原创 跟着官方学jni&ndk

Android Gradle 插件 4.2.0 及更高版本可在您首次构建项目时自动安装所需的 NDK 和 CMake,前提是您已预先接受其二者的许可。如需向 CMake 构建脚本添加库的多个 ABI 版本,而不必为库的每个版本编写多个命令,您可以使用。如果您的原生源代码文件还没有 CMake 构建脚本,您需要自行创建一个,并在其中包含适当的 CMake 命令。使用 Android Studio 3.6 或更高版本时,如果您不指定版本,Android Gradle 插件会选择已知兼容的版本。

2023-09-21 22:27:27 349

原创 NDK基础

Android.mk:在 Android 上编译需要的配置文件,相当于 build.gradle,详细细节后面会讲到。各个平台架构的区别就是指令集不一样,浮点运算能力不一样,按照上面排列的顺序,浮点运算能力运行从低到高。需要一一对应,如果没有一一对应,外部模块调用了接口,编译的时候会提示找不到方法。存在的意义,方便代码不用重复编译, 最终为了生成。库对外开放的接口声明。这句代码代表着,使用这个类之前都会去加载。合并到一块的集合,经常在编译。所以接下来我们要构建。为了减少包体大小只接入。

2023-09-20 16:00:46 1285

原创 C语言指针详解 函数指针 指针函数

C语言中,定义变量时,在变量名 前 写一个 * 星号,这个变量就变成了对应变量类型的指针变量。必要时要加( ) 来避免优先级的问题。引申:C语言中,定义变量时,在定义的最前面写上typedef ,那么这个变量名就成了一种类型,即这个类型的同义词。

2023-09-13 18:34:53 186

原创 如何理解C++中的void*

1.void*是一个过渡型的指针状态,可以代表任意类型的指针,取值的时候需要转换为具体类型才能取值。其是处于数据类型顶端的状态:2.void* 使用赋值运算符“=”赋值时,只能将具体类型赋值给void星,不能将void*赋值给具体类型。3.void*一般作为参数或者返回值来实现泛型编程,但是C++中一般考虑使用模板编程来实现。

2023-09-08 15:41:30 1044

原创 重学C++系列(一):从C到C++

1.char类型以及char* 类型的变量初始化问题

2023-08-26 20:41:29 43

原创 2023年的C++基础笔记

c++基础笔记

2023-08-11 22:26:45 409

原创 2023年的C基础笔记

C的基础笔记

2023-07-24 16:03:25 1383

原创 协程知识点

协程

2023-07-08 16:39:59 236

原创 suspend挂起

协程

2023-06-28 21:01:00 516

原创 智能家居_串口通信编程

串口通信编程

2023-03-02 15:19:27 183

原创 git Tag标签/Android studio git创建与删除标签(Tag)

GIT

2023-02-22 11:37:07 789

原创 关于日线分时(尤其是美盘)突然(1分钟内)拉根大阳线(0.5-1点)或者跌跟大阴线(0.5-1点)后面如何分时如何走的?

哈哈

2023-01-22 20:23:18 125

原创 官方公布数据对原油期货的涨跌影响

官方公布数据对原油期货的涨跌影响

2023-01-08 17:58:18 515

原创 单表达式函数/高阶函数 /函数类型及函数字面值 /带接收者的函数类型及带接收者的函数类型字面值 /内联函数/闭包函数

高阶函数

2022-12-26 15:17:29 244

空空如也

空空如也

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

TA关注的人

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