自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (287)
  • 收藏
  • 关注

原创 【Android 高性能音频】AAudio 音频流 数据回调细节 ( 数据回调函数优先级 | 数据回调函数 | 采样率 | 采样数 | 缓冲区调整 | 线程不安全 )

I . 数据回调函数优先级II . 数据回调函数 相关内容III . 采样率 处理细节IV . 数据回调函数 每次 采样个数 numFramesV . 数据回调函数 缓冲区 ( AAudio 内部缓冲区 ) 调整VI . AAudio 音频系统的线程安全性分析

2019-11-30 12:59:07 2352

原创 【Android 高性能音频】AAudio 音频流 缓冲区 简介 ( AAudio 音频流内部缓冲区 | 缓冲区帧容量 | 缓冲区帧大小 | 音频数据读写缓冲区 )

I . AAudio 音频流内部缓冲区 与 音频数据读写缓冲区 概念II . AAudio 音频流内部缓冲区 缓冲区帧容量 BufferCapacityInFrames 与 缓冲区帧大小 BufferSizeInFrames 区分III . AAudio 音频流内部缓冲区 缓冲区帧容量 BufferCapacityInFramesIV . AAudio 音频流内部缓冲区 缓冲区帧大小 BufferSizeInFramesV . AAudio 音频流内部缓冲区 脉冲串VI . AAudio 音频流内

2019-11-28 15:40:28 3229 1

原创 【Android 高性能音频】AAudio 音频流 读写操作 ( 音频流读写数据 | 阻塞时间设定 | 注意事项 | AAudioStream_read | AAudioStream_write )

I . AAudio 音频流 读写操作 简介II . AAudio 音频流 读写操作 阻塞时间设定III . AAudio 音频流 读取 固定帧数 操作 注意点IV . AAudio 音频流 写出音频数据 操作 注意点V . AAudio 音频流 读取方法 AAudioStream_read 原型VI . AAudio 音频流 读取方法 简介VII . AAudio 音频流 写出方法 AAudioStream_write 原型

2019-11-27 16:53:01 2163

原创 【Android 高性能音频】AAudio 音频流 PCM 采样 的 采样 缓冲 播放 的 连续机制 ( 数据回调机制 | 数据回调函数指针 | 实现数据回调函数 | 设置数据回调函数 )

I . AAudio 音频流 采样 缓冲 播放 的连续机制II . AAudio 音频流 数据回调函数 函数指针类型定义III . AAudio 音频流 数据回调函数 实现IV . AAudio 音频流 数据回调函数 设置

2019-11-22 20:19:30 2299

原创 【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )

I . AAudio 音频流 创建 配置 使用 销毁 流程II . AAudio 音频流 稳定状态 与 过渡状态III . AAudio 音频流 状态改变 监听IV . AAudio 音频流 状态改变 监听 实例 ( 暂停操作 )V . AAudio 音频流 状态改变 监听 注意事项

2019-11-20 14:59:10 1820 3

原创 【Android 高性能音频】AAudio 音频流 样本缓冲 相关配置 ( 通道数 | 样本格式 | 帧缓冲 | 采样率 | 每帧样本数 == 通道数 )

I . AAudio 音频流创建流程II . AAudio 音频流构建器 设置 通道数 AAudioStreamBuilder_setChannelCountIII . AAudio 音频流构建器 设置音频格式 AAudioStreamBuilder_setFormatIV . AAudio 音频流 样本格式V . AAudio 音频流 设置缓冲区大小 AAudioStream_setBufferSizeInFramesVI . AAudio 音频流 采样率设置 AAudioStreamBuild

2019-11-19 16:28:55 2108

原创 【Android 高性能音频】AAudio 缓冲区控制 ( XRun | 欠载 UnderRun | 超限 OverRun | 获取缓冲区大小 | 设置缓冲区大小 )

I . AAudio 音频流 缓冲区控制II . AAudio 音频流 XRun ( UnderRun | OverRun )III . AAudio 音频流 当前每次读写帧数IV . AAudio 音频流 获取最大帧数V . AAudio 音频流 设置缓冲区大小

2019-11-18 20:42:29 3187

原创 【Android 高性能音频】AAudio 音频流 音频设备 相关配置 ( 音频设备ID | 音频流方向 | 音频设备共享模式 )

I . AAudio 音频流创建流程II . AAudio 音频流构建器 设置音频设备 ID AAudioStreamBuilder_setDeviceIdIII . AAudio 音频设备 ID 获取IV . AAudio 音频流 默认 音频设备设置V . AAudio 音频流构建器 设置 音频流方向 AAudioStreamBuilder_setDirectionVI . AAudio 音频流方向VII . AAudio 音频流构建器 设置 音频设备共享模式 AAudioStreamBuil

2019-11-14 18:18:37 2686 2

原创 【Android 高性能音频】AAudio 音频流 构建器 ( AAudio.h | 流构造器 | 音频设备配置 | 音频采样配置 | 构建器销毁 )

I . AAudio 音频流创建流程II . AAudio 音频流构建器III . AAudio 音频流构建器 代码示例IV . AAudio 音频流构建器创建方法 AAudio_createStreamBuilderV . AAudio 音频流 音频设备设置VI . AAudio 音频流 音采样设置VII . AAudio 音频流构建器 销毁

2019-11-14 18:02:04 3532 6

原创 【运筹学】线性规划 单纯形法 ( 基矩阵 | 基变量 | 非基矩阵 | 非基变量 | 矩阵分块形式 | 逆矩阵 | 基解 | 基可行解 )

I . 基矩阵 BII . 基向量 P_jP j​ III . 基变量IV . 非基矩阵 NNV . 系数矩阵分块形式 A = ( B N )A=(BN)VI . 基变量向量 X_BX B​ 非基变量向量 X_NX N​ 及 分块形式VII . 分块形式的计算公式VIII . 逆矩阵IX . 解基变量X . 基解XI . 基可行解

2019-11-13 14:21:19 11725 2

原创 【运筹学】线性规划 单纯形法 ( 原理 | 约定符号 | 目标系数矩阵 C | 目标函数变量矩阵 X | 约束方程常数矩阵 b | 系数矩阵 A | 向量 | 向量符号 | 向量 Pj )

I . 单纯形法 引入II . 单纯形法 基本原理III . 线性规划 标准形式IV . 线性规划 标准形式 普通形式公式V . 线性规划 标准形式 展开完整形式公式VI . 线性规划 标准形式 矩阵形式公式 ( 矩阵 C | 矩阵 X | 矩阵 b | 矩阵 A )VII . 线性规划 标准形式 向量形式公式 ( 向量 Pj )

2019-11-12 15:27:14 3374

原创 【Android 高性能音频】AAudio 音频库 简介 ( AAudio 音频库简介 | 音频流 | 音频设备 | 共享模式 | 数据模式 )

I . AAudio 音频库 简介II . AAudio 音频流 三要素 ( 设备 | 共享模式 | 数据格式 )III . AAudio 音频设备IV . AAudio 音频设备获取V . AAudio 音频设备 ID 标识VI . AAudio 音频流方向VII . AAudio 音频流 共享模式VIII . AAudio 音频格式 ( 样本格式 | 每帧样本数 | 采样率 )IX . AAudio 音频样本格式转换

2019-11-08 19:36:25 6526 5

原创 【运筹学】线性规划 图解法 ( 唯一最优解 | 无穷最优解 | 无界解 | 无可行解 )

I . 图解法II. 图解法 处理 线性规划问题 ( 取最大值 仅有一个最优解的情况 )III . 图解法 处理 线性规划问题 ( 取最大值 有无穷多最优解 )IV . 图解法 处理 线性规划问题 ( 取最小值 有一个最优解 )V . 图解法 处理 线性规划问题 ( 无界解 )VI . 图解法 处理 线性规划问题 ( 无可行解 )VII . 线性规划解的情况

2019-11-08 11:05:32 50186

原创 【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )

文章目录创建 NDK 项目NDK 项目 相关配置NDK 中获取 Android 版本号创建 NDK 项目1. 创建支持 NDK 的项目 : 当前最新的 Android Studio 支持直接创建 支持 C/C++ 的带 NDK 配置的项目 ;如果向现有项目加入 C/C++ 代码 , 首先要创建 cpp 代码文件 , 然后创建 CMakeList.txt 编译脚本 , 最后在 bui...

2019-11-07 17:32:24 4009

原创 【Android 高性能音频】高性能音频简介 ( 高性能音频问题引入 | 使用场景 | 相关开发库及技术 )

I 高性能音频使用场景II 高性能音频开发库III 相关开发资料

2019-11-06 13:42:39 1278

原创 【运筹学】线性规划问题的解 ( 可行解 | 可行域 | 最优解 | 秩的概念 | 极大线性无关组 | 向量秩 | 矩阵秩 | 基 | 基变量 | 非基变量 | 基解 | 基可行解 | 可行基 )

I . 线性规划问题解II . 可行解 与 可行域III . 最优解IV . 秩 的 概念V . 基 的概念VI . 基变量 与 非基变量VII . 基解VIII . 基可行解 与 可行基IX . 示例 求基矩阵

2019-11-05 15:17:42 15640 2

【移动端网页布局】Flex 弹性布局案例 ③

【移动端网页布局】Flex 弹性布局案例 ③

2024-03-06

GIF录屏工具-Gif123-GifCam-LICEcap

GIF录屏工具-Gif123-GifCam-LICEcap

2024-03-04

Java 语言中的 properties 配置文件使用

【Java 语言】读取 properties 配置文件 ( Java 语言中的 properties 配置文件 | 使用 properties 配置文件 ) https://hanshuliang.blog.csdn.net/article/details/134435350 博客源码

2023-11-16

JetpackNavigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

https://hanshuliang.blog.csdn.net/article/details/131406972 博客源码快照 一、页面跳转间的传统的数据传递方式 1、传统的数据传递方式 - Bundle 传递数据 1、Navigation 组件中的 Bundle 数据传递 2、传统数据传递实现步骤 3、FragmentA 完整代码示例 4、FragmentB 完整代码示例 5、执行结果 2、使用 Bundle 传递数据安全性差 二、页面跳转间的传统的数据传递方式 1、导入插件依赖 2、使用插件 3、在 navigation_graph.xml 中定义要传递的 argument 参数信息 4、重新编译生成参数传递相关代码 5、调用 FragmentBArgs 类生成参数 Bundle 6、FragmentA 中获取参数 三、两种传参方式的完整代码示例 1、Gradle 构建脚本 I、根目录下 settings.gradle 构建脚本 II、根目录下 build.gradle 构建脚本 III、Module 目录下 build.gradle 构建脚本 2、res 资源配置

2023-08-25

可运行的 Android 版本的 ijkplayer 2023年 8 月 14 日调试完毕

运行环境 : 2021.3.1 Dolphin , Android Gradle 插件版本号 3.2.0 , Gradle 版本号 gradle-4.6-all.zip 【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 ) 原文链接:https://blog.csdn.net/shulianghan/article/details/132274142 一、Android Studio 打开编译后的 ijkplayer 源码 二、重新设置 Android Gradle 插件版本号和 Gradle 构建工具版本号 三、设置依赖仓库 1、取消 jcenter 仓库 2、添加 google 和 mavenCentral 仓库 3、添加阿里云仓库 四、取消 jcenter 上传相关插件 五、设置编译工具版本号 六、取消 productFlavors 七、设置 build.gradle 中的依赖为 implementation 依赖 八、编译应用

2023-08-14

hadoop-3.3.4.tar.gz + winutils 安装环境

【开发环境】安装 Hadoop 运行环境 ( 下载 Hadoop | 解压 Hadoop | 设置 Hadoop 环境变量 | 配置 Hadoop 环境脚本 | 安装 winutils ) https://hanshuliang.blog.csdn.net/article/details/132045605 一、下载 Hadoop 二、解压 Hadoop 三、设置 Hadoop 环境变量 四、配置 Hadoop 环境脚本 五、安装 winutils 六、重启电脑 七、验证 Hadoop 安装效果

2023-08-03

JetpackNavigation 导航组件 ③ ( 为 Navigation Graph 添加跳转动画 )

【Jetpack】Navigation 导航组件 ③ ( 为 Navigation Graph 添加跳转动画 ) 博客源码快照 博客地址 : https://hanshuliang.blog.csdn.net/article/details/131405392 一、为 Navigation Graph 添加跳转动画 1、进入 Navigation Graph 配置的 Design 模式 2、选中 action 跳转 3、为 action 跳转设置 enterAnim 进入动画 4、为 action 跳转设置 exitAnim 退出动画 5、通过代码为 action 跳转设置进入 / 退出动画

2023-06-26

JetpackNavigation 导航组件 ②

【Jetpack】Navigation 导航组件 ② ( Navigation 核心要点说明 | 创建 Navigation Graph | 创建 NavHostFragment | 完整代码示例 ) https://hanshuliang.blog.csdn.net/article/details/131299078

2023-06-21

DB Browser for SQLite 数据库查看工具

DB Browser for SQLite 数据库查看工具

2023-06-14

ViewModel + LiveData + DataBinding 综合使用示例

【Jetpack】ViewModel + LiveData + DataBinding 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/130401679 一、ViewModel + LiveData + DataBinding 核心要点 1、ViewModel 使用要点 2、LiveData 使用要点 3、DataBinding 使用要点 二、ViewModel + LiveData + DataBinding 代码示例 1、ViewModel + LiveData 代码 2、build.gradle 构建脚本 - 启用 DataBinding 3、DataBinding 布局文件 - 配置 ViewModel 类 4、Activity 系统组件代码 - 加载 DataBinding 布局 / 布局配置 ViewModel 对象 / 设置 LiveData 观察者 5、执行结果

2023-04-27

BaseObservable 实现数据模型 Model 与视图 View 双向绑定

BaseObservable 实现数据模型 Model 与视图 View 双向绑定

2023-04-18

DataBinding 架构组件 ④

【Jetpack】DataBinding 架构组件 ④ ( 使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 | 网络图片加载 | 本地图片加载 ) https://blog.csdn.net/shulianghan/article/details/130043460 一、@BindingAdapter 注解 1、注解简介 2、使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 二、使用 @BindingAdapter 注解绑定加载网络图片静态方法 三、使用 @BindingAdapter 注解绑定加载本地图片静态方法 四、使用 @BindingAdapter 注解绑定加载网络图片或本地图片静态方法 五、完整代码示例 1、build.gradle 构建脚本 2、AndroidManifest.xml 清单文件 3、DataBinding 布局文件 4、BindingAdapter 注解类 5、MainActivity 组件 6、执行结果

2023-04-18

DataBinding 架构组件 ③

【Jetpack】DataBinding 架构组件 ③ ( 使用 include 导入二级界面布局 | 二级页面绑定数据模型 ) https://hanshuliang.blog.csdn.net/article/details/129899735 一、使用 include 导入二级界面布局 二、二级页面绑定数据模型 1、将二级界面布局转为 DataBinding 布局 2、在主布局中为二级界面布局传递数据模型 三、核心代码示例 1、主布局 2、子布局 3、Java 代码 4、执行结果

2023-04-04

DataBinding 架构组件 ② - DataBinding 布局中使用 import 标签导入 Java、Kotlin 类

【Jetpack】DataBinding 架构组件 ② ( 字符串拼接函数 | 绑定点击事件函数 | DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 ) https://hanshuliang.blog.csdn.net/article/details/129773150 一、字符串拼接函数 二、绑定点击事件函数 三、DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 1、DataBinding 布局中使用 import 标签导入 Java 类 2、DataBinding 布局中使用 import 标签导入 Kotlin 类 四、完整代码示例 1、数据类 2、导入的 Java 类 3、导入的 Kotlin 类 4、DataBinding 布局文件 5、Activity 组件类

2023-03-26

DataBinding 架构组件

【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 ) https://hanshuliang.blog.csdn.net/article/details/129762717 博客源码快照 一、数据绑定技术简介 二、Android 中的 DataBinding 数据绑定技术 三、Android 中的 DataBinding 代码示例 1、build.gradle 构建脚本 - 启动数据绑定 2、定义数据类 3、布局文件转换 4、Activity 组件设置数据绑定布局和数据 5、显示效果 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shulianghan/article/details/129762717

2023-03-25

JetpackLiveData 架构组件

【Jetpack】LiveData 架构组件 ( LiveData 简介 | LiveData 使用方法 | ViewModel + LiveData 示例 ) https://hanshuliang.blog.csdn.net/article/details/129411132 博客源码示例 一、LiveData 简介 二、LiveData 使用方法 三、ViewModel + LiveData 简单示例 1、ViewModel + LiveData 代码 2、Activity 组件代码 3、运行效果展示 四、ViewModel + LiveData + Fragment 通信示例 1、ViewModel + LiveData 代码 2、Activity 组件代码 Activity 代码 布局文件 3、Fragment 代码 第一个 Fragment 代码 第一个 Fragment 布局文件 第二个 Fragment 代码 第二个 Fragment 布局文件 4、运行效果展示

2023-03-12

JetpackViewModel 架构组件 博客源码

【Jetpack】ViewModel 架构组件 ( 视图 View 和 数据模型 Model | ViewModel 作用 | ViewModel 生命周期 | 代码示例 | 使用注意事项 ) https://hanshuliang.blog.csdn.net/article/details/129374914 一、Activity 遇到的问题 二、视图 View 和 数据模型 Model 三、ViewModel 架构组件作用 四、ViewModel 代码示例 1、ViewModel 视图模型 2、Activity 组件 3、UI 布局文件 4、运行效果 五、ViewModel 生命周期 六、ViewModel 使用注意事项 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shulianghan/article/details/129374914

2023-03-07

博客资料 -JetpackLifeCycle 架构组件

【Jetpack】Lifecycle 架构组件 ( 系统组件与普通组件解耦 | Lifecycle 解耦系统组件与普通组件 | 解耦服务组件与普通组件 | 监听应用程序生命周期 ) https://hanshuliang.blog.csdn.net/article/details/129291874 一、系统组件与普通组件解耦 二、Lifecycle 解耦 Activity 系统组件与 UI 组件 1、传统实现方式 ① Activity 系统组件 ② 布局文件 ③ 执行效果 2、LifeCycle 实现方式 ① 自定义 UI 组件 ② Activity 系统组件 ③ 布局组件 ④ 执行效果 三、LifecycleService 解耦 Service 与 UI 组件 1、构建脚本导入依赖 2、Android Studio 中搜索并添加依赖 3、布局文件属性排序 4、代码实现 ① LifecycleService 组件 ② LifecycleObserver 业务逻辑 ③ AndroidManifest.xml 清单文件 ④ Activity 系统组件

2023-03-03

使用 Jedis 操作 Redis 数据库 博客代码示例

【Redis】使用 Jedis 操作 Redis 数据库 ② ( Jedis API 规律 | Redis 命令与 Jedis 函数名称基本一致 | Jedis API 使用示例 ) https://hanshuliang.blog.csdn.net/article/details/129128393 博客代码示例

2023-02-20

Redis 数据库 安装、配置、访问资源

【Redis】Redis 数据库 安装、配置、访问 ( Redis 简介 | 下载 Redis 安装包 | 安装 Redis 数据库 | 命令行访问 Redis | 使用可视化工具访问 Redis ) https://hanshuliang.blog.csdn.net/article/details/128945441 博客资源快照 001_Linux安装包 002_Windows安装包 003_可视化工具_Redis Desktop Manager

2023-02-09

开发环境JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 - 压缩 rt.jar 文件 )

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 ) https://blog.csdn.net/shulianghan/article/details/128711836 博客资源快照

2023-01-17

开发环境JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 )

【开发环境】JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 ) https://hanshuliang.blog.csdn.net/article/details/128703546 资源快照

2023-01-16

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ③ 源码快照

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ③ ( CMake 工程中配置 OpenCV 库文件 | 拷贝 OpenCV 函数库文件 ) https://hanshuliang.blog.csdn.net/article/details/128516414 源码快照 在 Visual Studio 2019 中打开 ; 需要修改 Windows 平台的 OpenCV 函数库 头文件 及 库文件搜索路径 ;

2023-01-02

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ① 博客资源

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ① ( 下载 OpenCV 库 | Windows 中安装 OpenCV 库 ) https://hanshuliang.blog.csdn.net/article/details/128515811 博客资源 一、下载 OpenCV 库、 二、Windows 中安装 OpenCV 库

2023-01-02

【Kotlin 协程】协程启动 ② ( 多协程控制 )

【Kotlin 协程】协程启动 ② ( 多协程控制 | launch 协程执行顺序控制 | Job#join() 函数 | async 协程执行顺序控制 | Deferred#await() 函数 ) https://blog.csdn.net/shulianghan/article/details/128071482 博客源码快照

2022-11-27

【Kotlin 协程】协程启动 ① ( 协程构建器 ) 代码示例

【Kotlin 协程】协程启动 ① ( 协程构建器 | launch 构建器 | async 构建器 | runBlocking 函数 | Deferred 类 ) https://hanshuliang.blog.csdn.net/article/details/128058948 博客代码快照

2022-11-27

【Kotlin 协程】协程底层实现 ④ ( 结构化并发 - viewModelScope 作用域示例 )

【Kotlin 协程】协程底层实现 ④ ( 结构化并发 | viewModelScope 作用域示例 ) 博客 https://hanshuliang.blog.csdn.net/article/details/128055880 源码

2022-11-26

Android图片优化工具cwebp、guetzli、pngcrush

Android图片优化工具cwebp、guetzli、pngcrush

2022-10-21

Sonatype Nexus Maven 仓库管理工具

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 ) https://hanshuliang.blog.csdn.net/article/details/127385094 博客资源

2022-10-18

Android LinearGradient 线性渐变渲染

【Android UI】Paint Gradient 渐变渲染 ① ( LinearGradient 线性渐变渲染 | 设置渲染方向 | 设置渲染颜色 | 设置渲染模式 | MIRROR ) https://blog.csdn.net/shulianghan/article/details/125047457 博客配套源码 一、LinearGradient 线性渐变渲染 1、设置 2 个颜色的渐变 3、设置多个颜色的渐变 二、LinearGradient 线性渐变渲染重要参数分析 1、正常渲染 2、设置多个渐变颜色渲染 3、设置渲染方向 4、设置 Shader.TileMode.MIRROR 渲染模式 5、设置 Shader.TileMode.REPEAT 渲染模式 三、代码示例 1、正常渲染 2、设置多个渐变颜色渲染 3、设置渲染方向 4、设置 Shader.TileMode.MIRROR 渲染模式 5、设置 Shader.TileMode.REPEAT 渲染模式 四、效果展示 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0

2022-05-30

集成 mobile-ffmpeg 框架执行 FFmpeg 指令 ( 兼容 Android 10 )

【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 mobile-ffmpeg 框架 | 完整代码示例 ) https://hanshuliang.blog.csdn.net/article/details/123731092 博客源码 一、配置远程 Maven 仓库 二、配置依赖 三、Kotlin 中执行 FFmpeg 命令 四、FFmpeg 命令执行结果查看 五、源码下载

2022-03-25

Android WebSocket 用法 ( 导入 Java-WebSocket 源码依赖 )

【Android WebSocket】Android 端 WebSocket 基本用法 ( 下载 Java-WebSocket源码 | 导入 Java-WebSocket-1.5.2 工程作为依赖 ) https://hanshuliang.blog.csdn.net/article/details/123633108 博客源码快照

2022-03-21

Android 端 WebSocket 简单 Demo

【Android WebSocket】Android 端 WebSocket 基本用法 ( 添加依赖和权限 | 创建 WebSocketClient 客户端类 | 建立连接并发送消息 ) https://hanshuliang.blog.csdn.net/article/details/123628775 博客配套源码

2022-03-21

ijkplayer 编译后的工程 0.88 版本

ijkplayer 编译后的工程 0.88 版本 ; https://blog.csdn.net/shulianghan/category_11697316.html 专栏配套源码

2022-03-20

ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性

【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 ) https://hanshuliang.blog.csdn.net/article/details/122815793 博客源码

2022-02-07

启动 DEX 字节码中的 Activity 组件 ( 替换 LoadedApk 中的类加载器 )

【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 替换 LoadedApk 中的类加载器 | 加载 DEX 文件中的 Activity 类并启动成功 ) https://hanshuliang.blog.csdn.net/article/details/121885164

2021-12-12

使用 DexClassLoader 动态加载字节码文件

【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 准备 DEX 字节码文件 ) https://hanshuliang.blog.csdn.net/article/details/121776627 博客源码

2021-12-10

CheatEngine7.3版本工具及源码

CheatEngine73.exe 工具 , cheat-engine-7.3.zip 源码 ;

2021-11-12

MobileGameModify.7z

【Android 逆向】Android 逆向通用工具开发 ( Android 端远程命令工具 | Android 端可执行程序的 main 函数操作 | TCP 协议服务器建立 | 接收客户端数据 ) https://hanshuliang.blog.csdn.net/article/details/121205714 博客源码 , 带最终版的可执行程序和依赖库

2021-11-08

MobileGameModify.7z

【Android 逆向】Android 逆向通用工具开发 ( PC 端工程分析 | 网络初始化操作 | PC 端工程核心业务逻辑 ) https://hanshuliang.blog.csdn.net/article/details/121203401 博客源码快照

2021-11-08

空空如也

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

TA关注的人

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