- 博客(46)
- 资源 (303)
- 收藏
- 关注
原创 【Kotlin】属性 与 幕后字段 ( 属性声明 | 属性初始化器 | 属性访问器 | field 属性幕后字段 | lateinit 延迟初始化属性 )
属性与字段总结 :① 完整的属性声明格式如下 :② 属性初始化器 : 就是为属性赋予一个初始值 ;③ 属性访问器 : 即 属性的 getter 和 setter 方法 ;④ 属性幕后字段 : 属性的实际值存储在 field 幕后字段中 , 只能在属性访问器中可以使用 field 获取该值 ;⑤ 延迟加载属性 : 该属性只能是引用类型 , 并且不
2020-03-31 21:14:24 1124
原创 【Kotlin】接口 ( 声明 | 实现 | 接口方法 | 接口属性 | 接口覆盖冲突 | 接口继承 )
接口总结 :① 声明与实现 : 使用 interface 关键字声明接口 , 实现时需要重写所有的抽象成员 ( 属性 / 方法 ) ;② 接口成员 : 接口中的 正常成员属性和成员方法默认使用 open 关键字修饰 , 接口中的抽象成员属性和抽象成员方法默认使用 abstract open 关键字修饰 ;③ 接口属性及覆盖 : 变量属性声明成抽象属性 , 常量属性可以声明成抽象属性 , 也可以添加访问器 ;④ 接口覆盖冲突问题 : 实现类实现多个接口 , 使用 super<接口名称> 调用
2020-03-31 12:02:29 2688
原创 【Kotlin】抽象类 ( 声明 | 抽象类成员 | 抽象类继承 | 抽象方法覆盖 | 抽象方法实现 )
抽象类总结 :① 声明 : 抽象类中使用 abstract 声明 ;② 成员 : 抽象类中既可以定义正常属性和方法 , 又可以定义抽象的属性和方法 ;③ 继承 : 抽象类可以继承抽象类 , 抽象类也可以继承正常类 , 正常类可以继承抽象类 ;④ 重写 : 抽象类中可以使用抽象方法重写正常方法 , 也可以进行正常的方法重写 ;⑤ 特征 : 抽象方法只能定义在抽象类中 , 正常类中不能有抽象方法 ;
2020-03-30 21:18:24 2439
原创 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
I . 子类调用父类总结II . 子类调用父类方法 ( super )III . 子类内部类调用父类方法 ( super@ )IV . 子类选择调用不同的 父类 / 接口方法 ( super<> )
2020-03-30 13:27:13 9163
原创 【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 / 变量 属性覆盖 | 子类初始化与属性覆盖 )
I . 属性覆盖基本方式II . 属性覆盖的四种情况III . 常量 ( val ) / 变量 ( var ) 属性覆盖IV . 子类初始化时考虑覆盖属性的使用
2020-03-29 22:41:27 1849
原创 【Kotlin】Kotlin 类的继承 一 ( 类继承基本方式 | final 关键字 | 子类主构造函数 | 子类次构造函数 )
I . 类继承基本方式II . 使用 final 禁止类继承 / 方法重写III . 父类没有主构造函数IV . 父类有主构造函数V . 父类构造函数与子类构造函数总结
2020-03-28 22:59:24 1152
原创 【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )
I . 主构造函数II . 主构造函数声明属性III . init 初始化代码块IV . 主构造函数参数 和 成员变量访问方式V . 主构造函数 可见性 设置VI . 次构造函数 ( 常用情况 )VII . 次构造函数 ( 没有主构造函数 )VIII . 构造函数 代码执行顺序IX . 调用 主构造函数 / 次构造函数 创建类实例对象
2020-03-27 14:01:57 3469
原创 【Kotlin】Kotlin 领域特定语言 DSL 原理 二 ( 中缀表达式 )
I . 中缀表达式 ( 中缀调用 )II . 中缀表达式 ( 中缀调用 ) 示例代码
2020-03-27 10:02:33 606 1
原创 【Kotlin】Kotlin 领域特定语言 DSL 原理 一 ( DSL 简介 | 函数 / 属性扩展 )
I . DSL 简介II . Kotlin 函数扩展III . Kotlin 属性扩展
2020-03-26 23:20:03 1086
原创 【Kotlin】Kotlin 语言集合中的高阶函数详解 ( 数据类 data class | maxBy | minBy | filter | map | any | count | find )
I . List 集合高阶函数引入II . Kotlin 数据类 ( data class )III . Java 代码 与 Kotlin 代码实现对比 ( 查询年龄最大的 )IV . maxBy 高阶函数V . minBy 高阶函数VI . filter 高阶函数VII . map 高阶函数VIII . any 高阶函数IX . count 高阶函数X . find 高阶函数XI . Kotlin 语言集合中的高阶函数 代码示例
2020-03-26 15:08:15 2974 1
原创 【Kotlin】apply 内联扩展函数 ( apply 函数原型 | apply 函数示例 | Kotlin 调用 Java API )
I . 内联扩展函数 applyII . Kotlin 调用 Java APIIII . apply 内联扩展函数示例 ( 调用 Java API 处理图像 )
2020-03-25 21:39:30 1147
原创 【Kotlin】Kotlin 高阶函数 ( 高阶函数当做参数 | 高阶函数定义 | 高阶函数调用 )
I . Kotlin 高阶函数概念II . Kotlin 高阶函数 作为 参数 示例解析 ( forEach 方法参数解析 )III . 用作函数参数的 函数类型变量 ( 本示例中使用匿名函数 )IV . 函数类型实例使用V . Kotlin 高阶函数 整体代码示例
2020-03-25 16:10:09 1095
原创 【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )
I . 视图绑定 ( ViewBinding ) 界面的两种方式II . Activity 界面中 应用 视图绑定 ( ViewBinding )III . Dialog 对话框界面中 应用 视图绑定 ( ViewBinding )IV . 自定义组件 应用 视图绑定 ( ViewBinding )V . RecyclerView 列表布局 应用 视图绑定 ( ViewBinding )VI . GitHub 代码地址
2020-03-25 00:19:23 5422
原创 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )
I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用II . 视图绑定 ( ViewBinding ) 定制III . 视图绑定 ( ViewBinding ) 对于正常操作的影响测试IV . 视图绑定 ( ViewBinding ) 关联 Activity 界面V . 视图绑定 ( ViewBinding ) 本质分析VI . GitHub 代码地址
2020-03-24 14:33:07 1242 1
原创 【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )
I . 视图绑定组件简介II . 视图绑定 ViewBinding 使用前提 ( Android Studio 3.6 )III . 视图绑定组件启用IV . 定制视图绑定 ( 启用视图绑定后 不想生成绑定类 )V . 视图绑定布局文件VI . 绑定类名称生成规则VII . 绑定类对应的布局中的组件字段生成规则VIII . 视图绑定类获取IX . 设置视图绑定后的布局X . 获取视图绑定类组件XI . 视图绑定对应 Java 示例代码XII . 应用运行结果XIII . GitHub
2020-03-23 23:38:06 1740 3
原创 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )
I . 枚举类常用用法II . 枚举类初始化III. 枚举类匿名类IV . 枚举类实现接口V . 获取枚举常量名称和位置索引VI . 获取枚举常量的成员变量VII . 调用枚举常量的方法VIII . Kotlin 枚举完整代码示例
2020-03-23 00:07:57 8678
原创 【Kotlin】Kotlin Sealed 密封类 ( 密封类声明 | 密封类子类定义 | 密封类特点 | 代码示例 )
I . 密封类概念II . 密封类声明III. 密封类注意事项IV . 密封类 示例代码
2020-03-22 23:09:58 1058
原创 【Kotlin】Kotlin 单例 ( 懒汉式 与 恶汉式 | Java 单例 | Kotlin 单例 | 对象声明 | 伴生对象 | get 方法 | ? 与 !! 判空 )
I . 单例的懒汉式与恶汉式II . Java 中的懒汉式与恶汉式III . Kotlin 中对应 Java 的懒汉式与恶汉式IV . Kotlin 对象 ( object ) 声明V . Kotlin 伴生对象 ( companion object )VI . ? 与 !! 作用
2020-03-22 22:12:47 1497
原创 【RecyclerView】 一、RecyclerView 最基本用法 ( 添加支持库 | 设置布局文件 | 自定义适配器 )
I . 添加支持库II . 布局文件中使用 RecyclerViewIII . 自定义适配器IV . RecyclerView 设置流程V . RecyclerView 完整 Java 代码示例
2020-03-21 20:06:38 1341
原创 【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )
接口 : 表现事物的能力 , 只能有方法 ; 抽象类 : 表现事物的本质 , 可以有成员和抽象方法
2020-03-20 00:08:07 1169
原创 【Android FFMPEG 开发】FFMPEG 音视频同步 ( 音视频同步方案 | 视频帧 FPS 控制 | H.264 编码 I / P / B 帧 | PTS | 音视频同步 )
以音频播放的时间为基准 , 调整视频的播放速度 , 让视频与音频进行同步 ;先计算出音频的播放时间 ; 再计算视频的播放时间 ;根据视频与音频之间的比较 , 如果视频比音频快 , 那么增大视频帧之间的间隔 , 降低视频帧绘制速度 ;如果视频比音频慢 , 那么需要丢弃部分视频帧 , 以追赶上音频的速度 ;
2020-03-19 20:55:39 1936
原创 【Flutter】Dart 数据类型 List 集合类型 ( 定义集合 | 初始化 | 泛型用法 | 初始化后添加元素 | 集合生成函数 | 集合遍历 )
I . 定义集合并初始化II . 集合泛型用法III . 集合添加元素IV . 集合生成函数V . 集合遍历VI . 集合示例代码
2020-03-18 21:05:30 9285
原创 【Kotlin】Kotlin 面向对象 ( 类 | 成员变量 | 成员方法 | 封装 | 继承 | 多态 )
I . 创建简单类 ( 整型字段 )II . 创建简单类 ( 整型字段 + 字符串字段 )III . 类方法定义IV . 封装V . 继承VI . 多态 与 抽象类
2020-03-17 23:21:24 703
原创 【Flutter】Dart 数据类型 布尔类型 ( 布尔类型定义 | 逻辑运算 )
I . bool 类型定义II . bool 类型逻辑运算III . 代码示例
2020-03-17 20:34:51 3191
原创 【Flutter】Dart 数据类型 字符串类型 ( 字符串定义 | 字符串拼接 | 字符串 API 调用 )
I . 字符串定义I . 字符串拼接III . 字符串 API 调用IV . 字符串 Demo 示例
2020-03-17 20:18:07 8986
原创 【Flutter】Dart 数据类型 数字类型 ( Dart 文件创建 | num 类型 | int 类型 | double 类型 | num 相关 API )
I . 创建 Dart 文件II . num / int / double 数字类型III . 数字类型相关 API
2020-03-16 15:33:22 4837
原创 【Flutter】Dart 语言 ( Dart 语言特征 | JIT 即时编译 | AOT 静态编译 )
I . Dart 语言特征II . JIT 即时编译III . AOT 静态编译
2020-03-16 11:11:41 2301
原创 【Android FFMPEG 开发】OpenSLES 播放音频 ( 创建引擎 | 输出混音设置 | 配置输入输出 | 创建播放器 | 获取播放/队列接口 | 回调函数 | 开始播放 | 激活回调 )
I . FFMPEG 播放视频流程II . OpenSLES 播放音频流程III . OpenSLES 播放参考 Google 官方示例IV . OpenSL ES 播放代码 ( 详细注释 )IV . OpenSLES slAndroidSimpleBufferQueueCallback 回调函数声明及实现代码
2020-03-15 20:12:27 1688 3
原创 【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )
I . FFMPEG 播放视频流程II . FFMPEG 音频重采样流程III . FFMPEG 音频重采样IV . FFMPEG 初始化音频重采样上下文 SwrContextV . FFMPEG 计算音频延迟样本数VI . FFMPEG 计算音频重采样输出样本个数VII . FFMPEG 输出样本缓冲区初始化VIII . FFMPEG 音频重采样IX . FFMPEG 音频重采样输出的重采样数据字节数计算X . FFMPEG 音频重采样部分代码总结
2020-03-15 15:56:03 2685 1
原创 【Flutter】Flutter 应用创建运行 ( Android Studio 创建 / 运行 Flutter 应用 | 命令行创建 / 运行 Flutter 应用 )
I . Android Studio 中创建 Flutter 应用II . Android Studio 中运行 Flutter 应用III . 命令行 中创建 Flutter 应用IV . 命令行 中运行 Flutter 应用
2020-03-13 12:19:07 2740
原创 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 )
I . Flutter 学习资料II . Flutter 开发环境搭建III . Android Studio 环境安装 Flutter / Dart 插件IV . 下载 Flutter SDKV . 设置 Flutter 网络镜像 ( 中国国内推荐设置 )VI . 设置 Flutter 环境变量 ( 在系统变量中配置 )VII . Flutter 环境变量检查
2020-03-12 22:00:38 7778 1
原创 【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( 设置 ANativeWindow 缓冲区属性 | 获取绘制缓冲区 | 填充数据到缓冲区 | 启动绘制 )
I . FFMPEG ANativeWindow 原生绘制 前置操作II . FFMPEG 原生绘制流程III . 设置 ANativeWindow 绘制窗口属性 ANativeWindow_setBuffersGeometry ( )IV . 获取 ANativeWindow 原生绘制的 ANativeWindow_Buffer 绘制缓冲区V . 填充图像图像数据到 ANativeWindow_Buffer 绘制缓冲区VI . 启动绘制
2020-03-11 20:17:13 2521
原创 【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( Java 层获取 Surface | 传递画布到本地 | 创建 ANativeWindow )
I . FFMPEG ANativeWindow 原生绘制II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程III . Java 层获取 Surface 画布IV . 传递 Surface 画布到 Native 层V . Native 层创建 ANativeWindow 原生绘制窗口
2020-03-11 13:35:45 1559
原创 【Android FFMPEG 开发】FFMPEG AVFrame 图像格式转换 YUV -> RGBA ( 获取 SwsContext | 初始化图像数据存储内存 | 图像格式转换 )
I . FFMPEG AVFrame 图像数据帧处理 前置操作II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程III. FFMPEG 解码前后的图像格式IV . FFMPEG 获取 SwsContextV . FFMPEG 初始化图像数据存储内存VI . FFMPEG 初图像格式转换VII . FFMPEG AVFrame 图像格式转换 YUV -> RGBA 代码示例
2020-03-10 21:01:49 2480
原创 【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket->解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )
I . FFMPEG 解码 AVPacket 数据到 AVFrame 前置操作II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程III . FFMPEG 发送 AVPacket 数据包给编解码器 ( AVPacket->解码器 )IV . FFMPEG AVPacket 内存释放V . FFMPEG 初始化 AVFrame 结构体VI . FFMPEG 解码器 AVCodec 接收并解码 AVPacket 数据到 AVFrame 中VII . FFMPEG 解码 AVP
2020-03-10 13:10:45 2799
原创 【Android FFMPEG 开发】FFMPEG 读取音视频流中的数据到 AVPacket ( 初始化 AVPacket 数据 | 读取 AVPacket )
I . FFMPEG 获取 AVPacket 数据前置操作II . FFMPEG 获取 AVPacket 数据流程III . FFMPEG AVPacket 结构体IV . AVPacket 数据读取流程V . FFMPEG 初始化 AVPacket 数据包 av_packet_alloc ( )VI . FFMPEG 读取 AVPacket 数据 av_read_frame ( )VII . FFMPEG 获取 AVPacket 数据流程 代码示例
2020-03-09 14:32:43 2224
原创 【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入的参数要求 | 参数作返回值 )
I . 博客总结 . 指针与引用类型参数II . 指针作为参数和返回值III . 引用参数简介IV . 引用作为参数和返回值
2020-03-06 11:56:58 1181
原创 【Android FFMPEG 开发】FFMPEG 方法中指针类型参数说明 ( 一维指针类型参数 | 二维指针类型参数 )
① 一维指针参数 : 传入一维指针 , 只能修改指向的内存的内容 ; 修改一维指针本身指向无意义 ;② 二维指针参数 : 传入 二维指针 , 只能修改一维指针 及 以下的内容 ; 修改二维指针本身指向无意义 ;③ N 维指针参数 : 传入 N 维指针 , 只能修改 N - 1 维指针 及 以下的内容 , 修改 N 维指针内容 无意义 ;
2020-03-05 15:13:21 636
FFmpegSDL 音视频开发 ⑦ ( 播放 PCM 音频数据 )
2024-09-10
FFmpegSDL 音视频开发 ⑥ ( SDL 播放 YUV 视频 )
2024-09-05
【AI 大模型】函数调用 Function Calling ② ( 函数调用 引入 - 函数调用开发流程 - 代码示例 )
2024-07-20
【AI 大模型】OpenAI 接口调用 ① ( PyCharm 中开发 Python 程序调用 OpenAI 接口 )
2024-06-24
FFmpegSDL 音视频开发 ④ ( SDL 多线程 / 创建线程 / 等待线程执行完毕 )
2024-06-18
FFmpegSDL 音视频开发 ③ ( SDL 事件处理 )
2024-06-14
算法Graham 凸包扫描算法 ( 凸包概念 - 常用的凸包算法 - 角排序 - 叉积 - Python 代码示例 )
2024-06-13
FFmpegSDL 音视频开发 ②
2024-06-11
FFmpegSDL 音视频开发 ① ( SDL 窗口绘制 )
2024-06-07
FFmpegSDL 开发环境搭建
2024-06-07
【OpenHarmony】ArkTS 语法基础 ⑥ ( ArkTS 状态管理 - @Link 装饰器 )
2024-06-05
【OpenHarmony】ArkTS 语法基础 ⑤ ( ArkTS 状态管理 / @State 装饰器定义状态数据 )
2024-06-05
【OpenHarmony】ArkTS 语法基础 ④ ( ArkTS UI 渲染控制 - 条件渲染 - 循环渲染 )
2024-06-04
【OpenHarmony】ArkTS 语法基础 ③ ( 自定义组件生命周期回调函数 - 页面生命周期回调函数 )
2024-06-04
【OpenHarmony】 ArkTS 语法基础 ② ( ArkTS 自定义组件 )
2024-06-03
Windows 10 平台 FFmpeg 开发环境搭建 博客资源
2024-05-24
FFmpegFilter 过滤器 ⑥ ( 九宫格画面拼接 ) 博客资源
2024-05-17
Java 语言中的 properties 配置文件使用
2023-11-16
JetpackNavigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )
2023-08-25
可运行的 Android 版本的 ijkplayer 2023年 8 月 14 日调试完毕
2023-08-14
hadoop-3.3.4.tar.gz + winutils 安装环境
2023-08-03
JetpackNavigation 导航组件 ③ ( 为 Navigation Graph 添加跳转动画 )
2023-06-26
JetpackNavigation 导航组件 ②
2023-06-21
ViewModel + LiveData + DataBinding 综合使用示例
2023-04-27
DataBinding 架构组件 ④
2023-04-18
DataBinding 架构组件 ③
2023-04-04
DataBinding 架构组件 ② - DataBinding 布局中使用 import 标签导入 Java、Kotlin 类
2023-03-26
DataBinding 架构组件
2023-03-25
JetpackLiveData 架构组件
2023-03-12
JetpackViewModel 架构组件 博客源码
2023-03-07
博客资料 -JetpackLifeCycle 架构组件
2023-03-03
使用 Jedis 操作 Redis 数据库 博客代码示例
2023-02-20
Redis 数据库 安装、配置、访问资源
2023-02-09
开发环境JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 - 压缩 rt.jar 文件 )
2023-01-17
开发环境JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 )
2023-01-16
【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ③ 源码快照
2023-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人