自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风的轨迹

专注于移动研发

  • 博客(130)
  • 资源 (4)
  • 收藏
  • 关注

原创 【无标题】

通过gcc进行编译,生成可执行文件,并进行运行(注意:需要通过链接 -lpthread 来链接线程函数库,否则找不到pthread)读写模式:W+ 文件指针地址的位置开始写,替换到之后的内容,a+从问价的末尾开始添加。通过执行gcc命令进行编译,并输出可指定文件test,并执行可执行文件。二进制文件读写,方便使用,一般使用fread和fwrite进行读写。安装好之后,可以在/usr/lib/ocaml/alsa/看到静态库。通过fork函数创建线程,创建一个.c文件并进行编译运行。新建build文件夹。

2023-03-19 22:54:30 326 1

原创 FFmpeg 音频重采样

所谓的重采样,就是改变⾳频的采样率、sample format、声道数等参数,使之按照我们期望的参数输 出。

2023-02-01 23:51:51 1523

原创 FLV格式分析

FLV格式分析

2023-01-06 22:15:47 1606

原创 H264 NALU分析以及提取h264实战

H264 NALU分析以及提取h264实战

2023-01-05 17:35:00 1108

原创 AAC ADTS格式分析与提取aac音频文件实战

AAC ADTS格式分析与提取aac音频文件实战

2023-01-05 00:02:33 760

原创 FFmpeg 解复用实战

FFmpeg 解复用实战

2023-01-04 20:45:43 1081

原创 FFmpeg 结构体以及核心方法介绍

ffplay、ffprobe、ffmpeg是上层的三个应用程序libavutil:核心工具库,其他模块一般都会依赖这个模块做一些基本的音视频处理。libavformat:文件格式协议库,封装了protocol层和demuxer、Muxer层,使得格式和协议对于开发者是透明的。libavcodec:编解码库,封装了codec层,有一些codec具备自己的license,ffmpeg默认并不会自动添加x264、fdkaac等库,但是ffmpeg像一个平台一样,这些可以通过插件的方式集成进来,然后为开发者提供统一

2023-01-03 10:22:50 608

原创 ffmpeg 命令行总结

ffmpeg 命令行总结

2022-12-30 11:21:06 988

原创 Android OpenGL ES 3.0 FBO 离屏渲染

FBO:Frame Buffer Object,即帧缓冲区对象,实际上是一个可添加缓冲区的容器,可以为其添加纹理和缓冲区对象。FBO本身不能用于渲染,只有添加了纹理或者渲染缓冲区之后才能作为渲染目标,仅提供三种附着,颜色附着、深度附着、模板附着。

2022-11-24 12:52:59 1428

原创 Android OpenGL ES 3.0 3D模型介绍以及加载和渲染

模型加载可以使用模型加载库 Assimp,Assimp 全称为 Open Asset Import Library,可以支持几十种不同格式的模型文件的解析(同样也可以导出部分模型格式),Assimp 本身是 C++ 库,可以跨平台使用。常用的模型文件格式有 .obj、.max、.fbx .3ds 等,其中.obj是 Wavefront 科技开发的一种几何体图形文件格式,包含每个顶点的位置、纹理坐标、法线,以及组成面(多边形)的顶点列表等数据,应用较为广泛。模型的数据量是非常大的,这里做了部分截取。

2022-11-24 00:28:37 3537 1

原创 Android OpenGL ES 3.0 相机抖音滤镜

灵魂出窍滤镜的原理:根据偏移量 offset,进行 scale 变换纹理坐标,分别进行采样后,再按照混合系数进行加权混合。分色偏移滤镜原理:基于原纹理坐标进行偏移,分别采样后再按照 RGBA 通道进行合成,组成一个新的颜色。画中画:将原纹理采样到屏幕中间的一块区域中,而屏幕之外区域的纹理坐标进行缩放之后再进行采样。旋转的圆:对某一半径内的所有像素,按照偏移量转换成的角度进行旋转,半径之外的像素正常渲染。

2022-11-23 23:43:24 186

原创 Android OpenGL ES 3.0 LUT 滤镜

称作颜色查找表,是一种针对色彩空间的管理和转换技术。它可以分为一维 LUT(1D LUT) 和 三维 LUT(3D LUT),其中三维 LUT 比较常用。简单来讲,LUT 就是一个 RGB 组合到另一个 RGB 组合的映射关系表。LUT 滤镜是一种比较经典的滤镜,

2022-11-23 15:16:58 588

原创 Android OpenGL ES 3.0 相机基础滤镜

这个方法用于更新YUV数据,由于数据是从相机过来的,跟opengl 不是一个线程,所以需要通过内存共享的方式进行拷贝。分屏滤镜的原理是在多个指定区域内对整个纹理进行下采样(缩小),从而实现整个图像在多个区域内多次显示。动态网格主要是将纹理划分为多个网格,然后根据一个偏移量动态改变网格的宽度。mod:返回 x – y * floor (x / y) ,即求模计算 %这块主要是顶点数据以及材质,所以跟上边的是一样的。这块主要是顶点数据以及材质,所以跟上边的是一样的。floor:返回小于等于 x 的最大整数值。

2022-11-23 00:48:22 504

原创 Android OpenGL ES 3.0 粒子特效

定义粒子,通常一个粒子有一个生命值,生命值结束该粒子消失,还有描述粒子在(x, y, z)三个方向的位置(偏移)和运动速度,以及粒子的颜色等属性。// 粒子速度//r,g,b,a //粒子颜色// 粒子的位置//粒子出现的时长dx = 0.0f;dy = 0.0f;dz = 0.0f;//粒子的生命值}/*操作符重载 < */}};

2022-11-22 14:38:26 1026

原创 Android OpenGL ES 3.0 开发 :3D实例化(Instancing 3D)

OpenGL ES 实例化(Instancing)是一种只调用一次渲染函数就能绘制出很多物体的技术,可以实现将数据一次性发送给 GPU ,告诉 OpenGL ES 使用一个绘制函数,将这些数据绘制成多个物体。表示当前正在绘制实例的 ID ,每个实例对应一个唯一的 ID ,通过这个 ID 可以轻易实现基于一个物体而绘制出位置、大小、形状或者颜色不同的多个物体(实例)。,表示需要渲染的实例数量,调用完实例化绘制函数后,我们便将绘制数据一次性发送给GPU,然后告诉它该如何使用一个函数来绘制这些实例。

2022-11-22 00:17:13 1536

原创 Android OpenGLES3.0 开发 :光照基础

散射光表示从物体表面向各个方向均匀反射的光。散射光的强度与入射光的强度及入射角密切相关,所以当光源位置发生变化,散射光效果也会发生明显变化。镜面光是由光滑物体表面反射的方向比较集中的光,镜面光强度不仅依赖于入射光与法向量的夹角,也依赖于观察者的位置。片元着色器:将顶点着色器计算的光线直接跟采样器得到的颜色相乘得到了最终的颜色。将MVP矩阵、模型矩阵、光的位置、光的颜色与观察者的位置传给shader。顶点着色器根据传入的光的数据以及位置信息计算光线的强度,注释写的比较清楚。

2022-11-21 19:10:40 977

原创 Android MediaCodec硬件解码视频播放

是Android 的低层多媒体基础设施的一部分(通常与MediaExtractor、MediaSync、MediaMuxer、Image、Surface和AudioTrack一起使用),它本身并不具备Codec能力,通过调动底层编解码组件获得了Codec的能力。type是数据解析阶段的mimeType,如"video/avc"OMX.MTK.VIDEO.DECODER>AVC:硬解码。OMX.google.h264.decoder: 软解码。异步的方式进行解码操作,比较简单,推荐使用这个方式。

2022-11-20 18:21:20 81974 2

原创 Android OKHttp 分发器和拦截器源码解析

整个OkHttp功能的实现就在这五个默认的拦截器中,所以先理解拦截器模式的工作机制是先决条件。重试拦截器重试拦截器在交出(交给下一个拦截器)之前,负责判断用户是否取消了请求;在获得了结果之后,会根据响应码判断是否需要重定向,如果满足条件那么就会重启执行所有拦截器桥接拦截器桥接拦截器在交出之前,负责将HTTP协议必备的请求头加入其中(如:Host)并添加一些默认的行为(如:GZIP压缩);在获得了结果后,调用保存cookie接口并解析GZIP数据缓存拦截器。

2022-10-14 15:57:25 1107

原创 Android 图片加载框架Gilde源码解析

图片加载框架Glide源码解析

2022-10-11 22:12:28 1282

原创 Android 增量更新实战

增量更新实战

2022-10-10 15:48:14 1150

原创 Android RecyclerView 源码解析四级缓存的使用以及缓存流程

RecyclerView 缓存的是ViewHolderRecyclerView采用了四级缓存:缓存的分类是根据功能区分mAttachedScrap : 缓存可见的ViewHolder 用于 执行onLayout的时候 ArrayList 集合mCacheView:缓存将要隐藏ViewHolder 下次将要显示的ViewHolder 先从这个缓存里边获取 ArrayList 集合mViewChcheExtension:需要用户自己实现的缓存。

2022-10-09 15:00:25 1659

原创 Android 系统启动流程解析

Boot ROM:当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行Boot Loader:引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与芯片的。引导程序分两个阶段执行:第一个阶段,检测外部的RAM以及加载对第二阶段有用的程序;第二阶段,引导程序设置网络、内存等等。这些对于运行内核是必要的,为了达到特殊的目标,引导程序可以根据配置参数或者输入数据设置内核。Kernel:Android内核与桌面

2022-09-14 21:46:27 1377

原创 Android NDK篇-C++之 强制转换与智能指针

强制转换与智能指针,以及自定义智能指针

2022-08-21 22:53:27 1356

原创 Android NDK篇-C++之 线程、锁、条件变量与生产消费模型

Android NDK篇-C++之 线程、锁、条件变量与生产消费模型

2022-08-20 22:01:28 1030

原创 Android NDK篇-C++之 SLT 中的容器与函数谓词

SLT 中的容器学习与函数谓词

2022-08-11 17:52:05 882

原创 Android NDK篇-C++虚函数、纯虚函数、完全纯虚函数与模板函数

C++虚函数、纯虚函数、完全纯虚函数与模板函数

2022-08-10 15:42:22 818

原创 Android NDK篇-C++语言之运算符重载 与多继承二义性

C++语言之运算符重载 与多继承二义性

2022-08-10 12:24:47 181

原创 Android NDK篇-C++语言之 this 原理和可变参数与友元函数友元类

this 原理和可变参数与友元函数友元类

2022-08-09 18:18:38 540

原创 Android NDK篇-C++ 函数执行流程分析以及浅拷贝和深拷贝

函数执行流程分析以及浅拷贝和深拷贝

2022-08-08 22:45:46 315

原创 Android ANR问题定位 实战

Android ANR问题定位 实战

2022-08-04 21:25:58 4138

原创 Android NDK篇-C++ 自定义命名空间与拷贝构造函数

c++ 自定义命名空间与拷贝构造函数

2022-07-26 22:14:36 481

原创 Android NDK篇-C++之面向对象汇总

Android NDK篇-C++之面向对象汇总

2022-07-23 21:39:06 438

原创 设计模式17-行为型设计模式-访问者设计模式

编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。

2022-07-22 16:57:30 70

原创 设计模式16-行为型设计模式-命令模式设计模式

编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。

2022-07-21 16:07:40 102

原创 设计模式15-行为型设计模式-观察者设计模式

指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。...

2022-07-21 14:55:17 85

原创 设计模式14-行为型设计模式-责任链设计模式

编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。

2022-07-21 13:59:01 105

原创 设计模式13-行为型设计模式-策略设计模式

策略(Strategy)模式该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。...

2022-07-21 12:06:01 110

原创 设计模式12-行为型设计模式-模板设计模式

编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。

2022-07-21 12:03:07 104

原创 设计模式11-结构型设计模式-外观设计模式

编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。

2022-07-20 08:42:24 113

原创 设计模式10-结构型设计模式-组合设计模式

编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。

2022-07-19 23:33:36 88

许下今天的愿望 MakeAWish

一个完整的android-studio项目,可以直接运行,希望能够帮到初学者。

2016-04-06

短信拒接,来电转接

自己写的一个android项目,实现了短信拒接、来电转接、设置转接号码等功能,上传上去希望对初学android的朋友有一定的帮助,解压后,可直接运行在手机上,即可使用,强力推荐。

2014-06-23

android 锁屏项目

一个完整的实现锁屏的小项目,模拟了如何将一个应用注册为管理员权限的操作,对初学者很有帮助。

2014-06-23

多线程下载

这个是一个完完整的工程 是一个完整的android多线程下载的例子 解压即可运行 多初学者有很大的帮助

2014-03-31

空空如也

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

TA关注的人

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