自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 C++智能指针

智能指针分为3类 std::unique_ptr —— single ownership 独享指针对象 std::shared_ptr —— shared ownership 共享指针对...

2022-03-17 14:38:55 3474

原创 Handler Looper Message MessageQueue源码学习

原理图Message int what(标识ID) int arg1 保存int数据 int arg2 保存int数据 Object obj 保存任意数据 long when 记录应该处理的时间Handler target 每一个Message都保存一个用来处理此Message的Handler(发送消息的Handler)Runnable callback ...

2022-03-17 14:14:29 5923

原创 CMake编译学习

设置ndk需要编译的版本选择app目录下的build.gradle文件,找到文件中android的根目录,找到目录中的defaultConfig二级目录,再此二级目录下设置ndk的参数,设置的参数为需要编译生成的架构的.so文件修改编译的配置参数当编译好以后,在app目录下会生成.cxx文件夹和build文件夹,cxx文件夹中的cmake文件夹中的debug文件夹中,包含了生成了每个平台要被构建起来需要的文件,在每个平台文件夹下的b...

2022-03-17 14:07:12 4820

原创 JNI学习

Java与C基本类型Java中char的类型长度为2字节,C语言1字节Java中long的类型长度为8字节,C语言4字节C语言中没有byteC语言中boolean类型,0表示非false,非0表示truesigned:有符号 -128~127unsigned:无符号 0~255void: 无类型,代表任意类型输出函数C语言中默认保留...

2022-03-16 17:41:39 1396

原创 RTMP协议

协议与编码编码是为了极限压缩数据不方便解析 编码涉及到大量的算法协议是为了更好的传输数据方便解析方便扩展方便传输rtmp与rtsp与rtprtmp传输时不管丢包支持并发如果推流端传输给服务器时丢包了,服务器端给客户端发送空数据...

2022-03-16 17:25:31 305

原创 H265与H264的差别

H265的优点最大支持64*64的宏块大小H264最大支持16*16的宏块大小,主要以宏块进行编码(每个宏块内部区别不大)H265在细节表达上会比H264更清楚,在像素一致的情况下,H265的压缩比会更高,主要以树形结构进行编码(宏块内部会继续划分)在编码时vps,sps,pps只会编码一次在直播中,需要人为的在每个I帧之前加上vps,sps,ppsH264与H265的差异H...

2022-03-16 17:16:32 11152

原创 MediaCodec

MediaCodec解码方式一般是有16个盒子进行存放处理数据左边客户端从codec的左边队列中取出空的盒子,将需要解码的数据放入此盒子中,交给codec,codec再将数据交给dsp进行解码解码的数据放入右端的队列中,给到接收数据方,接收数据方再讲数据渲染到手机上,在渲染之后,需要把盒子给释放掉,Codec能够继续进行解码mediaCodec.getInputBuffers();不推荐此用法...

2022-03-16 17:06:12 284

原创 H264编码解码

视频编码器硬件层编码信源编码器将一帧打乱成很多的宏块视频符合编码器记录每个宏块的上边颜色信息和左边颜色信息,再记录一个预测方向传输缓冲器当接收到视频的B帧(体积小),进行缓存,当达到足够的数量再进行输出(例如再收到一帧I帧时)传输编码器将接收到的数据输出成H26...

2022-03-16 16:48:46 1148

原创 Service与IntentService

intentService继承Service,在onCreate时会创建一个线程,在onStart时可以向线程发送handler发送消息。可以执行耗时操作,Service不能执行耗时操作Service是什么?Service是Android四大组件之一,Service是长期运行在后台的应用程序组件。Service不是进程,也不是线程,它和应用程序在同一个进程中,它更像是一个没有UI的ActivityService运行在主线程中,不能做耗时操作...

2022-03-16 16:35:17 613

原创 安卓启动模式

在清单文件中配置launchModestandard模式默认不写也是standard模式创建的新的任务会放到栈顶,当点击返回的时候就是销毁的当前任务,也就是出栈的过程singleTop模式如果栈顶已经是当前的任务,那么就不会在创建新的任务应用场景:应用的推送 可以出现的情况s...

2022-03-16 16:31:44 57

原创 Android四大组件

组件必须在清单文件里面注册<application>Activity生命周期页面首次启动onCreate() onStart()onResume()应用界面完全不可见状态下应用界面部分被遮挡状态下onPause()...

2022-03-16 16:23:07 97

原创 内存抖动 GC垃圾回收 Crash问题

内存抖动指在短时间内有大量的对象被创建或者被回收的现象,内存抖动出现的原因主要是频繁在循环里创建对象。(导致大量对象在短时间内被创建,由于新对象是要占用内存空间的而且是很频繁)内存抖动的结果:如果抖动很频繁,会导致垃圾回收机制频繁运行(短时间内产生大量对象,需要大量内存,而且还是频繁抖动,就可能会需要回收内存以用于产生对象,垃圾回收机制就自然会频繁运行了)综上就是频繁内存抖动会导致垃圾回收频繁运行。内存抖动解决办法尽量避免在循环体内创...

2022-03-16 16:05:11 1806

原创 内存溢出与内存泄露

内存溢出与内存泄露

2022-03-16 15:56:58 993

空空如也

空空如也

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

TA关注的人

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