- 博客(46)
- 资源 (126)
- 论坛 (18)
- 收藏
- 关注
原创 【Kotlin】属性 与 幕后字段 ( 属性声明 | 属性初始化器 | 属性访问器 | field 属性幕后字段 | lateinit 延迟初始化属性 )
属性与字段总结 :① 完整的属性声明格式如下 :② 属性初始化器 : 就是为属性赋予一个初始值 ;③ 属性访问器 : 即 属性的 getter 和 setter 方法 ;④ 属性幕后字段 : 属性的实际值存储在 field 幕后字段中 , 只能在属性访问器中可以使用 field 获取该值 ;⑤ 延迟加载属性 : 该属性只能是引用类型 , 并且不
2020-03-31 21:14:24
267
原创 【Kotlin】接口 ( 声明 | 实现 | 接口方法 | 接口属性 | 接口覆盖冲突 | 接口继承 )
接口总结 :① 声明与实现 : 使用 interface 关键字声明接口 , 实现时需要重写所有的抽象成员 ( 属性 / 方法 ) ;② 接口成员 : 接口中的 正常成员属性和成员方法默认使用 open 关键字修饰 , 接口中的抽象成员属性和抽象成员方法默认使用 abstract open 关键字修饰 ;③ 接口属性及覆盖 : 变量属性声明成抽象属性 , 常量属性可以声明成抽象属性 , 也可以添加访问器 ;④ 接口覆盖冲突问题 : 实现类实现多个接口 , 使用 super<接口名称> 调用
2020-03-31 12:02:29
199
原创 【Kotlin】抽象类 ( 声明 | 抽象类成员 | 抽象类继承 | 抽象方法覆盖 | 抽象方法实现 )
抽象类总结 :① 声明 : 抽象类中使用 abstract 声明 ;② 成员 : 抽象类中既可以定义正常属性和方法 , 又可以定义抽象的属性和方法 ;③ 继承 : 抽象类可以继承抽象类 , 抽象类也可以继承正常类 , 正常类可以继承抽象类 ;④ 重写 : 抽象类中可以使用抽象方法重写正常方法 , 也可以进行正常的方法重写 ;⑤ 特征 : 抽象方法只能定义在抽象类中 , 正常类中不能有抽象方法 ;
2020-03-30 21:18:24
455
原创 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
I . 子类调用父类总结II . 子类调用父类方法 ( super )III . 子类内部类调用父类方法 ( super@ )IV . 子类选择调用不同的 父类 / 接口方法 ( super<> )
2020-03-30 13:27:13
2032
原创 【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 / 变量 属性覆盖 | 子类初始化与属性覆盖 )
I . 属性覆盖基本方式II . 属性覆盖的四种情况III . 常量 ( val ) / 变量 ( var ) 属性覆盖IV . 子类初始化时考虑覆盖属性的使用
2020-03-29 22:41:27
249
原创 【Kotlin】Kotlin 类的继承 一 ( 类继承基本方式 | final 关键字 | 子类主构造函数 | 子类次构造函数 )
I . 类继承基本方式II . 使用 final 禁止类继承 / 方法重写III . 父类没有主构造函数IV . 父类有主构造函数V . 父类构造函数与子类构造函数总结
2020-03-28 22:59:24
232
原创 【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )
I . 主构造函数II . 主构造函数声明属性III . init 初始化代码块IV . 主构造函数参数 和 成员变量访问方式V . 主构造函数 可见性 设置VI . 次构造函数 ( 常用情况 )VII . 次构造函数 ( 没有主构造函数 )VIII . 构造函数 代码执行顺序IX . 调用 主构造函数 / 次构造函数 创建类实例对象
2020-03-27 14:01:57
382
原创 【Kotlin】Kotlin 领域特定语言 DSL 原理 二 ( 中缀表达式 )
I . 中缀表达式 ( 中缀调用 )II . 中缀表达式 ( 中缀调用 ) 示例代码
2020-03-27 10:02:33
98
原创 【Kotlin】Kotlin 领域特定语言 DSL 原理 一 ( DSL 简介 | 函数 / 属性扩展 )
I . DSL 简介II . Kotlin 函数扩展III . Kotlin 属性扩展
2020-03-26 23:20:03
222
原创 【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
539
原创 【Kotlin】apply 内联扩展函数 ( apply 函数原型 | apply 函数示例 | Kotlin 调用 Java API )
I . 内联扩展函数 applyII . Kotlin 调用 Java APIIII . apply 内联扩展函数示例 ( 调用 Java API 处理图像 )
2020-03-25 21:39:30
201
原创 【Kotlin】Kotlin 高阶函数 ( 高阶函数当做参数 | 高阶函数定义 | 高阶函数调用 )
I . Kotlin 高阶函数概念II . Kotlin 高阶函数 作为 参数 示例解析 ( forEach 方法参数解析 )III . 用作函数参数的 函数类型变量 ( 本示例中使用匿名函数 )IV . 函数类型实例使用V . Kotlin 高阶函数 整体代码示例
2020-03-25 16:10:09
380
原创 【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
962
原创 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )
I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用II . 视图绑定 ( ViewBinding ) 定制III . 视图绑定 ( ViewBinding ) 对于正常操作的影响测试IV . 视图绑定 ( ViewBinding ) 关联 Activity 界面V . 视图绑定 ( ViewBinding ) 本质分析VI . GitHub 代码地址
2020-03-24 14:33:07
479
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
456
3
原创 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )
I . 枚举类常用用法II . 枚举类初始化III. 枚举类匿名类IV . 枚举类实现接口V . 获取枚举常量名称和位置索引VI . 获取枚举常量的成员变量VII . 调用枚举常量的方法VIII . Kotlin 枚举完整代码示例
2020-03-23 00:07:57
1077
原创 【Kotlin】Kotlin Sealed 密封类 ( 密封类声明 | 密封类子类定义 | 密封类特点 | 代码示例 )
I . 密封类概念II . 密封类声明III. 密封类注意事项IV . 密封类 示例代码
2020-03-22 23:09:58
173
原创 【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
263
原创 【RecyclerView】 一、RecyclerView 最基本用法 ( 添加支持库 | 设置布局文件 | 自定义适配器 )
I . 添加支持库II . 布局文件中使用 RecyclerViewIII . 自定义适配器IV . RecyclerView 设置流程V . RecyclerView 完整 Java 代码示例
2020-03-21 20:06:38
233
原创 【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )
接口 : 表现事物的能力 , 只能有方法 ; 抽象类 : 表现事物的本质 , 可以有成员和抽象方法
2020-03-20 00:08:07
155
原创 【Android FFMPEG 开发】FFMPEG 音视频同步 ( 音视频同步方案 | 视频帧 FPS 控制 | H.264 编码 I / P / B 帧 | PTS | 音视频同步 )
以音频播放的时间为基准 , 调整视频的播放速度 , 让视频与音频进行同步 ;先计算出音频的播放时间 ; 再计算视频的播放时间 ;根据视频与音频之间的比较 , 如果视频比音频快 , 那么增大视频帧之间的间隔 , 降低视频帧绘制速度 ;如果视频比音频慢 , 那么需要丢弃部分视频帧 , 以追赶上音频的速度 ;
2020-03-19 20:55:39
390
原创 【Flutter】Dart 数据类型 List 集合类型 ( 定义集合 | 初始化 | 泛型用法 | 初始化后添加元素 | 集合生成函数 | 集合遍历 )
I . 定义集合并初始化II . 集合泛型用法III . 集合添加元素IV . 集合生成函数V . 集合遍历VI . 集合示例代码
2020-03-18 21:05:30
1752
原创 【Kotlin】Kotlin 面向对象 ( 类 | 成员变量 | 成员方法 | 封装 | 继承 | 多态 )
I . 创建简单类 ( 整型字段 )II . 创建简单类 ( 整型字段 + 字符串字段 )III . 类方法定义IV . 封装V . 继承VI . 多态 与 抽象类
2020-03-17 23:21:24
184
原创 【Flutter】Dart 数据类型 布尔类型 ( 布尔类型定义 | 逻辑运算 )
I . bool 类型定义II . bool 类型逻辑运算III . 代码示例
2020-03-17 20:34:51
927
原创 【Flutter】Dart 数据类型 字符串类型 ( 字符串定义 | 字符串拼接 | 字符串 API 调用 )
I . 字符串定义I . 字符串拼接III . 字符串 API 调用IV . 字符串 Demo 示例
2020-03-17 20:18:07
2243
原创 【Flutter】Dart 数据类型 数字类型 ( Dart 文件创建 | num 类型 | int 类型 | double 类型 | num 相关 API )
I . 创建 Dart 文件II . num / int / double 数字类型III . 数字类型相关 API
2020-03-16 15:33:22
1081
原创 【Flutter】Dart 语言 ( Dart 语言特征 | JIT 即时编译 | AOT 静态编译 )
I . Dart 语言特征II . JIT 即时编译III . AOT 静态编译
2020-03-16 11:11:41
836
原创 【Android FFMPEG 开发】OpenSLES 播放音频 ( 创建引擎 | 输出混音设置 | 配置输入输出 | 创建播放器 | 获取播放/队列接口 | 回调函数 | 开始播放 | 激活回调 )
I . FFMPEG 播放视频流程II . OpenSLES 播放音频流程III . OpenSLES 播放参考 Google 官方示例IV . OpenSL ES 播放代码 ( 详细注释 )IV . OpenSLES slAndroidSimpleBufferQueueCallback 回调函数声明及实现代码
2020-03-15 20:12:27
621
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
1020
原创 【Flutter】Flutter 应用创建运行 ( Android Studio 创建 / 运行 Flutter 应用 | 命令行创建 / 运行 Flutter 应用 )
I . Android Studio 中创建 Flutter 应用II . Android Studio 中运行 Flutter 应用III . 命令行 中创建 Flutter 应用IV . 命令行 中运行 Flutter 应用
2020-03-13 12:19:07
694
原创 【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
3887
原创 【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
649
原创 【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
357
原创 【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
781
原创 【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
625
原创 【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
526
原创 【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入的参数要求 | 参数作返回值 )
I . 博客总结 . 指针与引用类型参数II . 指针作为参数和返回值III . 引用参数简介IV . 引用作为参数和返回值
2020-03-06 11:56:58
241
原创 【Android FFMPEG 开发】FFMPEG 方法中指针类型参数说明 ( 一维指针类型参数 | 二维指针类型参数 )
① 一维指针参数 : 传入一维指针 , 只能修改指向的内存的内容 ; 修改一维指针本身指向无意义 ;② 二维指针参数 : 传入 二维指针 , 只能修改一维指针 及 以下的内容 ; 修改二维指针本身指向无意义 ;③ N 维指针参数 : 传入 N 维指针 , 只能修改 N - 1 维指针 及 以下的内容 , 修改 N 维指针内容 无意义 ;
2020-03-05 15:13:21
155
【RecyclerView】 三、RecyclerView 布局 ( 线性布局管理器 LinearLayoutManager ).zip
2021-01-27
【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 ).zip
2021-01-20
【OpenGL】二十四、OpenGL 纹理贴图 ( 读取文件内容 桌面程序添加控制台窗口 ).zip
2021-01-25
Android_RTMP博客资料
2020-06-19
【Android 安全】DEX 加密资源_2020_11_08 五种反编译工具
2020-11-08
【OpenGL】二十二、OpenGL 光照效果 ( 模型准备 光照设置 启用光照 启用光源 设置光源位置 设置光照参数 )
2021-01-22
【OpenGL】二十一、OpenGL 矩阵压栈与出栈 ( 不同类型矩阵变换先后顺序 渲染前不设置单位阵 压栈出栈原理分析 代码示例 ).zip
2021-01-21
【OpenGL】二十、OpenGL 矩阵变换 ( 矩阵缩放变换 矩阵旋转变换 矩阵平移变换 ).zip
2021-01-20
【OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 绘制点模式 ).zip
2021-01-20
【OpenGL】十七、OpenGL 绘制四边形 ( 绘制 GL_QUAD_STRIP 模式四边形 ).zip
2021-01-20
【OpenGL】十六、OpenGL 绘制四边形 ( 绘制 GL_QUADS 四边形 ).zip
2021-01-19
TarsosDSP资料
2020-04-27
【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形 ).zip
2021-01-19
【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 )
2021-01-19
【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 三角形绘制顺序 绘制多个三角形 ).zip
2021-01-19
OpenGL_十二、OpenGL 绘制线段.zip
2021-01-18
OpenGL_十一、OpenGL 绘制多个点.zip
2021-01-18
OpenGL_十、OpenGL 绘制点
2021-01-18
初始化 OpenGL 渲染环境代码
2021-01-17
OpenGL Windows 桌面窗口搭建源码
2021-01-16
C++ 面向对象示例
2019-08-17
Android dex 加密源码
2020-12-01
openssl交叉编译源码及脚本
2020-11-21
Apple-Bluetooth-Low-Energy-MIDI-Specification.pdf
2020-08-29
Android 反编译工具
2014-12-03
WheelView 全中文注释解析代码
2014-11-30
Application 标准用法
2014-11-06
Android 圆形进度条示例
2014-10-22
ActionBar 示例程序
2014-09-14
AChartEngine 示例程序 文档 JAR包
2014-08-11
非root权限移植busybox 和 traceroute 示例程序
2014-07-15
微信验证源码 和 war包
2014-03-06
代码注释 你用的是 中文 还是 英文的 ?
发表于 2014-06-10 最后回复 2020-07-29
Java BIO / NIO 的 TCP / UDP 协议相关问题
发表于 2020-06-01 最后回复 2020-06-07
韩曙亮的留言板
发表于 2020-01-02 最后回复 2020-03-12
求 Android 视频播放器 解码策略
发表于 2014-09-02 最后回复 2019-10-12
Android 环境 SDK 太凶残了 目前完整版 67G 刚刚下完 分享下 百度云 压缩后 16G
发表于 2016-04-27 最后回复 2019-10-09
Go 语言是不是要火一波
发表于 2019-04-23 最后回复 2019-04-23
Android NDK 的文档有完整的翻译吗 - 收集下文档
发表于 2014-11-18 最后回复 2019-03-29
帮解读一下这个类型定义typedef const struct SLObjectItf_ * const * SLObjectItf;
发表于 2018-01-13 最后回复 2018-01-13
博客无法保存 发布 总是保存失败
发表于 2014-03-14 最后回复 2016-07-10
Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
发表于 2014-07-21 最后回复 2016-07-08
Android 目前最流行的 底部导航栏 用什么做的
发表于 2014-09-29 最后回复 2015-10-15
Android 平台实现Traceroute 非root
发表于 2014-06-30 最后回复 2015-05-14
博客图片无法上传
发表于 2015-01-07 最后回复 2015-01-07
删掉专栏
发表于 2014-10-28 最后回复 2014-10-29
帐号总是被人试探, 错误5次, 锁定 20分钟
发表于 2014-10-14 最后回复 2014-10-14
Xcode 下载 sdk 总是失败
发表于 2014-08-06 最后回复 2014-08-11
程序员算数是不是不是很好
发表于 2014-08-06 最后回复 2014-08-08
草稿箱中博客的图片消失,字体高亮也没了
发表于 2013-12-26 最后回复 2014-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝