自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sloven

生命不止,学习不息

  • 博客(90)
  • 资源 (12)
  • 收藏
  • 关注

原创 DingDing_Auto_Sign

闲来无事写着玩的前置条件:手机root1.拷贝脚本到system/bin目录下2.chmod 777 auto_sign.sh3.执行auto_sign.sh &4.此方式断开adb,脚本也会一直执行5.需要根据自己手机尺寸适配点击位置,就是xy坐标,开发者模式里打开指针位置,很容易对应#!/system/bin/shsign(){ am force-stop com.alibaba.android.rimet; # 亮屏,不能有锁屏密码 .

2021-09-19 18:55:24 240

原创 VAP简单解读

https://cloud.tencent.com/developer/article/1693852特点:1.先前市面已有开源方案,并非先例2.kotlin语言3.代码量较小,很快就能理解大致逻辑4.需要使用ffmpeg工具进行动画视频的二次处理基本原理:输入 mp4文件 -> MediaExtractor -> 音频 -> AudioTrack -> 视频 -> Surface...

2020-12-16 09:07:29 1631

原创 鸿蒙os初探

鸿蒙os开源了,算是里程碑的一步吧,主要先简单了解下,操作系统嘛,肯定是以c/c++为主,加少量汇编,但是上层应用开发到底是使用什么语言还不得而知,不管是java还是kotlin都是有限制的,c/c++门槛又高些,对现在的应用层开发不友好,所以这也是一个值得考虑的问题,可能到时候也会出来一门新的高级编程语言也说不准,ios的叫oc,鸿蒙的叫hc。封闭性客观来讲对程序员是十分不友好,学习成本比较高,oc\java\c#\hc…… 但也没办法,毕竟拿人手短,吃人嘴软,要想摆脱控制,只能自力更生。书归正传

2020-09-19 14:30:15 9439 2

原创 Android句柄泄露:too many open files

1.简介:FD(File Descriptor)文件描述符作为一个索引值,用于指向进程内的打开文件。当我们在进程中,打开文件,打开网络流(socket),管道或者其他资源,都会生成文件描述符。然后每个进程中这个值都是有限制的,一般情况下为1024。2.FD泄露场景FD泄露与内存泄露有一定的重合,其中第2,5条容易被忽视,在编码中需要特别注意,1.数据库: Cursor使用完未关闭 2.输入输出:FileInputStream,FileOutputStream,FileReader,Fil

2020-09-17 20:28:44 1692

原创 android系统库libgui.so报空指针

底层对端this指针为空,SurfaceComposerClient和SurfaceControl都不是应用层直接调用,报错中也未见应用层错误日志,通过现象推测 应该是是SurfaceView的位置更新和销毁创建并发导致,排查暂无结果,努力中~#00 pc 000000000008d2a8 /system/lib64/libgui.so (android::SurfaceComposerClient::Transaction::getLayerState(android::sp<android.

2020-09-16 15:46:11 1795 3

原创 avcodec_open2、avcodec_close

流程图//1.使用AVCodec初始化AVCodecContext//2.此方法线程不安全int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);主要做了一下工作:通过s->internal是否为空来判断Codec是否已经打开了,不会重复打开。创建AVCodecContext私有的AVCodecInternal,以供内部使用为AVCodecInternal内部成员变

2020-09-04 16:43:20 831

原创 EventBus框架原理解析

EventBus特点1.事件总线实现解耦,反射调用,观察者模式。2.单进程控制,多线程可以配合饿了么Hermes,原理使用AIDl进行跨进程通信。3.大量使用粘性事件会让程序效率变低4.源码体量小,好阅读5.内部使用缓存吃控制对象反复创建,回收,减少gc事件总线集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的重要类说明EventBus:不用多说Subscription:订阅者信息,包含订阅主体及方法,一个订阅主体可能..

2020-09-03 13:15:04 516

原创 apk->aar

原项目结构moduleA:主要sdk和对sdk封装,还有一些基础库封装。muduleB:相对独立模块,对其他模块无依赖。moduleC:主module,包括UI及业务,依赖moduleB,非直接依赖moduleA(反射调用)需求整个项目原本是作为应用存在,现在需要打包成sdk,提供给其他应用使用,需要包含UI及全部功能。简单拆分1.moduleA、muduleB、moduleC打包到一个aar。2.工程既需要打包aar,又需要打包apk,所以moduleC不能再作为appli.

2020-08-26 19:52:25 2002

原创 ijkplayer基本函数调用脑图

整理了下ijkplayer基本函数调用关系的脑图,供大家学习参考

2020-02-18 16:42:14 273

原创 统一变量

统一变量uniform vec4 v4;uniform修饰的变量。1.统一变量的命名空间在顶点着色器和片段着色器中都是共享的。如果顶点和片段着色器一起链接到一个程序对象,则会共享同一组统一变量。所以如果顶点和片段着色器中都声明一个统一变量,则两个声明必须匹配2.统一变量通常保存在硬件中,这个区域被称作“常量存储”,是硬件中为存储常量值而分配的特殊空间。3.常量储存的大小固定,...

2019-12-16 22:14:41 917

原创 OpenSL ES

OpenSL ES与openGL ES的关系?

2019-12-16 21:57:42 131

原创 6.顶点属性、顶点数组、缓冲区对象

顶点属性:1.3.0至少支持16个顶点属性,使用 GLint maxVertexAttribs查询只是的最大数量;2.指定每个顶点的数据,如坐标;使用 void glVertexAttrib* *代表1f,2f,3f,4f---1fv,2fv,3fv,4fv;//指定每个值void glVertexAttrib4f(Gluint index, GLfloat x, GL...

2019-12-16 21:48:50 542

原创 4.顶点着色器

输入 属性:用顶点数组提供的逐顶点数据 统一变量和统一变量缓冲区:顶点着色器使用的不变数据 采样器:顶点着色器使用的纹理的特殊统一变量类型 着色器程序:顶点着色器程序源代码或者描述在操作顶点的可执行文件内建变量gl_VertexID:顶点的整数索引,highp精度 gl_IntanceID:实例化绘图调用中图元的实例编号,整数型,highp精度 ...

2019-12-16 21:46:29 296

原创 ijkplayer之多线程

#include <errno.h>#include <assert.h>#include <unistd.h>#include "ijksdl_inc_internal.h"#include "ijksdl_thread.h"#ifdef __ANDROID__#include "ijksdl/android/ijksdl_android_jni...

2019-10-28 10:16:12 880

原创 ijkplayer之消息队列

#ifndef FFPLAY__FF_FFMSG_QUEUE_H#define FFPLAY__FF_FFMSG_QUEUE_H#include "ff_ffinc.h"#include "ff_ffmsg.h"// #define FFP_SHOW_MSG_RECYCLEtypedef struct AVMessage { int what; int arg1...

2019-10-28 10:15:02 292

原创 OpenGL ES 纹理基础

位图位图是一系列的0和1,表示打开或关闭的像素值.位图中,一块内存中的每个位正好对应于屏幕上的一个像素的状态.它可以表示掩码,字体和字符多边形甚至是两色的抖动图像.像素图与位图相比,像素图更有趣,用途更大.像素图在内存中的布局与位图相似.但是,它的每个像素可以由超过1个位的存储空间表示.每个像素所多出来的这些位可以存储这个像素的强度(有时候称为亮度值)或颜色分值.和位图一样,我...

2019-10-28 10:06:10 151

原创 7.OpenGL ES之图元种类

三角形GL_TRIANGLES。三个点一组,如果不够三个点就会被丢弃 ,可绘制n/3个三角形 GL_TRIANGLE_STRIP。顶点按照顺序依次组成三角形绘制,最后实际形成的是一个三角型带。可绘制n-2个三角形 GL_TRIANGLE_FAN。将第一个点作为中心点,其他点作为边缘点,绘制一系列的组成扇形的三角形,可绘制n-2个三角形线GL_LINES。以给定的顶点为依据,每两个绘制...

2019-10-27 22:49:16 382

原创 2.一个例子简单说明OpenGL ES流程,注释超详细

typedef struct{ GLuint programObject;} UserData;//创建着色器程序并返回着色器句柄GLuint LoadShader ( GLenum type, const char *shaderSrc ){ GLuint shader; GLint compiled; //创建着色器,获得句柄,type = GL_VER...

2019-10-27 22:46:12 312

原创 ijkplayer之类多态

#define IJK_REGISTER_DEMUXER(x) \ { \ extern AVInputFormat ijkff_##x##_demuxer; ...

2019-10-17 10:00:12 200

原创 3.EGL简介

提供的机制与设别的原生窗口系统通信 查询绘图表面的可用类型和配置 创建绘图表面 在OpenGL ES3.0和其他图形渲染API之间同步渲染 管理纹理贴图等渲染资源EGLint esCreateWindow(EGLNativeWindowType *eglNativeWindow){ const EGLint attribs[] = { EGL_SURF...

2019-10-17 09:38:25 731

原创 avformat_open_input

……占坑

2019-10-13 12:32:32 322

原创 二叉树最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。/** * Definition for a binary tree no...

2019-10-12 14:22:44 167

原创 8.纹理

种类2D纹理2D纹理数组:独立切片3D纹理:切片关联依赖立方图纹理2D纹理就是一个图像数据的二维数组。一个纹理的单独数据元素称作纹素,纹素通过基本格式和数据类型确定的。基本格式 描述 GL_RED 红 GL_RG 红绿 GL_RGB 红绿蓝 GL_RGBA 红绿蓝、alpha GL_LUMINANCE 亮度 ...

2019-10-10 23:37:21 302

原创 1.OpenGL ES基础理解

OpenGLOpenGL(全名:Open Graphics Library) 所以一个图形API,由C++编写的图形处理框架,跨平台,严格规定了每个函数的执行,以及它的输出。但实现由OpenGL库的开发者自行决定。所以OpenGL库的开发者通常是显卡的生产商。你购买的显卡所支持的OpenGL版本都为这个系列的显卡专门开发的。当你使用Apple系统的时候,OpenGL库是由Apple自身维护的。...

2019-10-10 23:21:01 246

原创 AVCodecContext

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]c实现...

2019-10-09 21:45:38 1691

原创 avformat_find_stream_info

……

2019-10-09 10:48:41 292

原创 AVStream

……

2019-10-08 23:46:32 184

原创 Shell脚本

声明Linux shell种类比较多#!/system/bin/sh --声明脚本第一个shell脚本#!/system/bin/sh# echo在这里相当于print 输出值echo "Sloven"---------------------------------Sloven脚本执行#第一种方式./nam.sh#第二种方式/system/bin/sh name...

2019-09-08 20:57:32 511

原创 【音视频】7.Android从上到下播放框架宏观层面理解

GG:宏观层面理解android音视频框架,能够简单理解哪部分api代表音视频流程的哪个步骤即可,为后续深入理解每个步骤打下基础,先插钢筋,后浇水泥。...

2019-06-05 23:14:53 261

原创 【音视频】6.MediaPlayer、ExoPlayer、ijkplayer简单对比

GT

2019-06-04 23:25:59 20261 1

原创 ffmpeg命令分类与使用

G熟练使用ffmpeg命令!其实平时也有一些处理音视频的个人或者亲人需求,熟练使用ffmpeg之后也不要借助图示化软件,一个命令基本可以搞定

2019-05-30 23:37:43 4120 3

原创 ffmpeg 主要流程与类库作用

关于ffmpegFFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库。注意:使用ffmpeg的需要遵守GPL协议,将软件开源,如果违反了协议约定,则会上榜ffmpeg的耻辱柱,但现在去看会看到如下提示。Shame page will be off...

2019-05-30 23:27:20 1335

原创 视频编码格式对比

视频编码 时间上的冗余信息 在视讯资料中,相邻的帧(frame)与帧之间通常有很强的关连性,这样的关连性即为时间上的冗余信息。即帧间压缩。 空间上的冗余信息 在同一张帧之中,相邻的像素之 间通常有很强的关连性,这样的关连性即为空间上的冗余信息。这即是上一次学习中的帧内压缩。 统计上的冗余信息 统计上的冗余资讯指的是欲编码的符号(symbol)的机率分布是不均匀(n...

2019-05-27 22:35:09 9324 2

原创 音频编码格对比

音频你需要知道的 人的听觉能分辨的采样率是有限的,高于44.1kHZ采样的声音,大部分人已经觉察不到分别 44.1kHZ采样率的声音就是要花费44100个数据点来描述1秒钟的声音波形,原则上,这个数值越大,音质就越好。 在当今的主流声卡上,采样频率分为22.05KHz、44.1KHz、48KHz三个等级 编码格式对比 1. MP3:MPEG Audio Layer3 压缩率可...

2019-05-26 23:21:45 3803 3

原创 音视频基本概念

音视频的几个率 帧率fps 游戏中都有这个属于,大都指的是每秒显示的图像帧数,或者说图形处理器每秒更新的次数 >=24fps 电影基本这个帧率 <30fps 游戏卡顿 >60fps 流畅 >75fps 肉眼不容易察觉出变化 码率:又称比特率,指每秒传送的比特(bit)数 单位:bps(Bit Per Second),bit单位太小...

2019-05-26 23:19:07 5065 2

原创 关于SparseArray

1.功能SparseArray功能与于HashMap相同,就是以key-value的形式存储键值对 SparseArray&lt;T&gt;             key:int   value: T LongSparseArray&lt;T&gt;         key:long value: T         存在的意义是弥补SparseArray key的长度...

2018-07-23 19:41:51 620

原创 java中的注解以及简单了解ButterKnife原理

现在很多框架中都使用了注解,比如Butterknife,Retrofit,dragger等等,今天就弥补一下基础吧。

2017-01-28 23:30:59 588

原创 小程序

个人学习写的demo地址:http://download.csdn.net/detail/qq_30124547/9745681 1.接口访问不到(域名问题)自己写了小程序demo,以调试模式打开可以访问接口,正常扫是访问不到接口的,纠结了半天,结果小程序接口的域名是需要在后台注册的 在上面的页面注册一下域名就可以了,然后在开发工具项目配置页面刷新一下出现配置的域名,即设置成功,就可以正常访问了

2017-01-28 15:26:45 565

原创 Rxjava2.0

^_^

2017-01-17 23:15:22 1117

原创 Rxjava(Rxjava 1.x)

RxJava基本使用首先要知道,Rxjava最出名的东西是什么,为什么火?通过一个例子来看:下面的代码做的事情就是,在io线程(处理耗时操作读写文件的线程,后面详细介绍)依次发送,注意是依次,先发1,再发2,再发3(注意just方法后面可以跟不止3个参数,可以到10个。也不止有just方法,还有from等)然后在io线程将每个数字后面拼接上一个字母a,并返回此字符串,然后切换到主线程,把前面生

2017-01-17 23:07:02 2167

微信小程序demo

个人学习小程序写的微信小程序,可供个人学习之用,因为域名问题,所以有些接口直接定义的对象,并没有通过接口获取。但不影响学习即效果展示。

2017-01-31

osmdroid官方源码

osmdroid官方源码,源码的介绍参考文章http://blog.csdn.net/qq_30124547/article/details/53266136

2016-11-22

Osmdroid示例APK

omdroid作为android移动平台的开源地图,给开发者很大的自由度。源码编译,可参考http://blog.csdn.net/qq_30124547/article/details/53114743

2016-11-21

android提示更新下载安装demo

这是android客户端提示新版本,下载安装到简单demo

2016-10-18

自定义可拖动、旋转、缩放的imageview

自定义imageview实现拖动、旋转、缩放等功能;

2016-07-13

自定义PopupWindow实现底部弹出式菜单

很多应用采用的底部弹出菜单实现,通过自定义PopupWindow实现

2016-07-13

android蓝牙与全站仪、单片机数据交互

Android蓝牙与全站仪进行数据交互

2016-06-06

带checkbox的listview

带checkbox的listview

2016-05-31

C语言笔记,ios基础,黑马笔记,onenote打开

非常好的一份笔记

2016-05-06

黑马ios oc 教程笔记【超实用好用】

培训机构的一份笔记,感觉很好用的

2016-05-06

java学习笔记

经典Java学习笔记,让学习Java结构清晰,线路明确,更简单

2015-08-14

空空如也

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

TA关注的人

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