JNI详解 JNI 知识详解在 Android 生态中主要有 C/C++、Java、Kotlin 三种语言 ,它们的关系不是替换而是互补。其中,C/C++ 的语境是算法和高性能,Java 的语境是平台无关和内存管理,而 Kotlin 则融合了多种语言中的优秀特性,带来了一种更现代化的编程方式。 1. 认识 JNI 1.1 为什么要使用 JNI?JNI(Java Native Inte 2025-10-21 Android #Android
C 语言基础知识 关键字static的作用是什么? 修饰局部变量:使变量在程序整个生命周期内只初始化一次,函数调用结束后不被销毁,值保持不变 修饰全局变量:限制变量作用域在当前文件内,其他文件无法访问 修饰函数:限制函数作用域在当前文件内,实现函数封装和隐藏 全局变量和局部变量在内存中是否有区别?内存存储位置不同: 全局变量:存储在静态数据区,程序运行期间始终存在 局部变量:存储在栈区,函数调用时创建,执行结束 2025-07-17 Linux #Android 面试
音视频开发基础 FFmpeg 是市面上领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流式传输、过滤和播放人类和机器创建的几乎任何内容。支持所有常见的音视资源,支持跨平台开发。 中文网站:https://ffmpeg.github.net.cn/about.html 英文网站:https://ffmpeg.org/download.html。截止2025年最新的ffmepg版本为7.1.1。2025年 2025-07-03 音视频 #Android
H.264编解码介绍 为什么要编码?视频本质上就是一张张连续的图片快速播放。假设我们现在有24张联系的图片,将他们在1秒内快速切换,那么就形成了一个1秒的视频。 人眼睛的敏感度有限。一般来说,24到30 FPS之间的帧率已经足够让人感觉到动作的流畅性。但是就算如此,如果播放一个1分钟的1080P视频: 这实在太大了,所以我们需要使用编码的方式去压缩数据。 编码的目的:编码的目的,就是为了压缩。各种视频编码方式, 2025-05-12 音视频 #Android
音视频基础知识 音视频基础1. 基础概念什么是音视频技术?音视频技术其实就是音频技术和视频技术的一个统称,在技术处理上,其实音频和视频是要分开处理的。 而且要注意一点,音视频从开始收集数据到最后展示都是离不开硬件设备的,所以在以后的开发过程中,要做好与硬件打交道的心理准备了。 音视频的主要处理过程: 采集。比如从客户端的摄像头、麦克风和本地原始文件等,获得基础的音视频数据; 预处理。在这个阶段其实就是对音 2025-05-08 音视频 #Android
ffmpeg交叉编译 什么是交叉编译?交叉编译是指在一种平台上编译程序,使其能够在另一种不同的平台上运行的过程。这种编译方式主要用于开发嵌入式系统、移动设备和其他受限环境中的应用程序。 交叉编译的基本概念 本地编译:在当前的平台上编译程序,生成的代码直接在当前平台上运行。例如,在x86架构的电脑上编译的程序直接在x86架构的电脑上运行。 交叉编译:在一种平台上编译程序,生成的代码在另一种平台上运行。 2025-05-08 Android #Android
线程的控制 线程控制POSIX线程库在上面提到,Linux在内核层面没有专门为线程设计一套系统调用接口,但是在应用层为用户提供了一套原生线程库。 pthread线程库就是应用层的原生线程库: 应用层指的是这个线程库并不是系统接口直接提供的,而是由第三方帮我们提供的 原生指的是大部分Linux系统都会默认带上该线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以”pthread_“打头的 要 2025-04-13 Linux #线程