当前位置: 首页 > news >正文

【置顶】 本博博文汇总

文章目录

  • 前言
  • 音视频
    • ijkplayer源码分析
    • FFmpeg、音视频协议
    • Andriod系统音视频框架
    • C、C++
  • Android&Java
    • 源码分析、绘制、渲染
    • Dalvik、Art虚拟机
    • Java并发
  • 计算机基础
    • 操作系统
    • 计算机网络
    • 设计模式、数据结构、算法

前言

23年底了,想来也工作十年,也一直在csdn输出。
这十年,从业务层做到性能优化,再到音视频,再到播放器稳定性相关的native crash。
这十年,也积累了不少文章,在此汇总一下;另外还有大量的深度源码分析草稿,之后也整理发出来吧。

音视频

本系列有一些放到付费专栏里了,都是苦心孤诣研究琢磨的文章,现在也往里面添加了深度性能优化和稳定性方面的内容,欢迎关注。

ijkplayer源码分析

整体概述
read线程流程
视频解码流程
视频渲染流程
音频解码流程
音频播放流程
视频向音频同步
PacketQueue分析
FrameQueue分析
start流程和buffering缓冲策略

FFmpeg、音视频协议

FFmpeg学习 总体介绍
FFmpeg学习 avformat_open_input()函数分析
FFmpeg学习 avformat_find_stream_info()函数分析
FFmpeg学习 av_read_frame()函数分析
FFmpeg学习 avcodec软解码函数分析
音视频 FLV格式解析
音视频 H.264格式介绍
音视频 RTMP协议分析
音视频 HLS协议和m3u8格式分析
音视频 TS格式解析

Andriod系统音视频框架

MediaCodec源码分析 createByCodecName流程
MediaCodec源码分析 configure流程
Android 深入理解SurfaceView
Android 性能优化 命令行查看CPU使用率
Android 创建线程源码分析 JavaThread&NativeThread
Android 设置线程优先级源码分析

C、C++

C内存模型
C语言 基础知识整理
c、c++ 常用API汇总
C++实战笔记
C++ Primer 前六章基础知识笔记
C++ 侯捷课程知识整理
arm体系结构:寄存器
arm体系结构:汇编指令
C语言 非本地跳转 实现native层TryCatch

Android&Java

源码分析、绘制、渲染

JNI原理 System.loadLibrary源码分析
JNI原理 模仿System.loadLibrary和dlopen使用
Android基础 Bitmap基础
硬件加速和软件绘制 invalidate和RequestLayout流程
Android源码分析 理解Refbase
Android 性能优化 Systrace使用

Dalvik、Art虚拟机

  • ART
    Andriod ART虚拟机 启动和初始化
    Android ART虚拟机 关键类
    Android ART虚拟机 堆Heap类构造函数
    Android ART虚拟机 Space类体系
    Android ART虚拟机 对象创建内存分配流程
    Android ART虚拟机 GC流程分析
    Android ART&Dalvik虚拟机 追踪对象分配

  • Dalvik
    Android 虚拟机 内存优化 分析GC日志
    Android Dalvik虚拟机 启动和初始化
    Android Dalvik虚拟机 堆初始化流程
    Android Dalvik虚拟机 GC流程分析
    Android Dalvik虚拟机 堆内存管理 增长&释放

  • 深入理解虚拟机
    深入理解Java虚拟机 第二章 Java运行时数据区域
    深入理解Java虚拟机 第七章 虚拟机类加载器
    深入理解Java虚拟机 第七章 虚拟机类加载时机与过程
    Java虚拟机 对象创建流程、初始化流程

Java并发

EffectiveJava第十章:并发
Java并发 并发编程一定快么
Java并发 基础概念
Java并发 示例
Java并发 并发机制的底层实现原理
Java并发 线程安全的三个条件
Java并发 锁优化和锁升级
Java并发 Java内存模型 happens-before原则
Java并发 lockInterruptibly导致IllegalMonitorStateException异常研究

计算机基础

操作系统

操作系统 定义、特征、用户态、核心态、中断、系统调用
操作系统 CPU调度 定义、分类、时机、方式、调度算法
操作系统 程序如何运行:编译、链接、装入
操作系统 内存管理概念和连续分配方式
操作系统 内存管理概念和连续分配方式
操作系统 进程篇之基本概念、状态和状态转换
操作系统 进程篇之进程间通信
操作系统 线程的概念、属性和实现方式
操作系统 虚拟内存技术
操作系统 死锁和死锁处理策略
操作系统 内存管理单元MMU TLB

计算机网络

计算机网络 TCP/IP模型
计算机网络 TCP协议梳理
计算机网络 UDP协议梳理
计算机网络 网络层梳理
计算机网络 DNS服务介绍
计算机网络 CDN技术介绍
计算机网络 常见的网络性能指标
计算机网络 网络地址转换NAT
计算机网络 浏览器输入url回车后发生了什么
计算机网络 DNS解析命令汇总
计算机网络 网络层 ICMP协议 ping和traceroute介绍

设计模式、数据结构、算法

面向对象设计原则
设计模式 基础概念
设计模式 状态机
设计模式总结
算法 常见的排序算法
算法 二叉树遍历 递归和非递归
算法 字符串匹配算法
算法 字符串匹配算法
算法 有向无环图 拓扑排序
算法 排列、组合 相关

相关文章:

【置顶】 本博博文汇总

文章目录 前言音视频ijkplayer源码分析FFmpeg、音视频协议Andriod系统音视频框架C、C Android&Java源码分析、绘制、渲染Dalvik、Art虚拟机Java并发 计算机基础操作系统计算机网络设计模式、数据结构、算法 前言 23年底了,想来也工作十年,也一直在c…...

react.js源码二

三、调度Scheduler scheduling(调度)是fiber reconciliation的一个过程,主要决定应该在何时做什么?在stack reconciler中,reconciliation是“一气呵成”,对于函数来说,这没什么问题,因为我们只想要函数的运行结果,但对于UI来说还需要考虑以下问题: 并不是所有的state更…...

如何学习英语

前言 首先写一些自己的感言吧,其实从大学的时候就在不断地听英语,学英语,但是到毕业十几年后,英语一直没起到什么作用,当然最有作用的时候就是几次英语面试吧。 工作之后有一段学习英语的经历,当时花费了…...

robot测试自动化

一. 安装 黑羽robot 首先确保你电脑上安装好了 Python 3.7 或者 3.8 版本的解释器 hyrobot 使用说明1 | 白月黑羽 安装RF 黑羽robot基于Robot Framework ,所以必须先安装RobotFramework 直接执行如下Pip命令即可: pip install robotframework...

Linux---重定向命令

1. 重定向命令的介绍 重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件。 2. 重定向命令的使用 命令说明>如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式>>如果文件存在会追加写入文件末尾,相当于文件…...

小区生活污水处理需要哪些设备和工艺

在小区生活中,污水处理是一个非常重要的环节,它关乎到环境的保护和居民的生活质量。因此,了解小区生活污水处理所需要的设备和工艺是至关重要的。 首先,在小区生活污水处理中,需要用到的设备包括污水收集系统、初级沉淀…...

【高性能计算】Cpp + Eigen + Intel MKL + 函数写成传引用

CUDA加速原理:CUDA编程学习:自定义Pytorch+cpp/cuda extension 高质量C++进阶[2]:如何让线性代数加速1000倍? 【gcc, cmake, eigen, opencv,ubuntu】三.eigen和mkl安装和使用 Linux下MKL库的安装部署与使用,并利用cmake编译器调用MKL库去提升eigen库的计算速度 Eigen库…...

【教学类-05-02】20231216 (比大小> <=)X-Y之间的比大小88题(补全88格子,有空格分割提示)

作品展示: 背景需求: 1、以前做过一份比大小的题目 【教学类-05-01】20211018 Python VSC 大班 数字比大小(> <)_vsc比较3位数大小-CSDN博客文章浏览阅读674次。【教学类-05-01】20211018 Python VSC 大班…...

【Spark精讲】Spark与MapReduce对比

目录 对比总结 MapReduce流程 ​编辑 MapTask流程 ReduceTask流程 MapReduce原理 阶段划分 Map shuffle Partition Collector Sort Spill Merge Reduce shuffle Copy Merge Sort 对比总结 Map端读取文件:都是需要通过split概念来进行逻辑切片&…...

SQL错题集3

1.薪水第二多的员工的emp_no以及其对应的薪水salary limit a,b 其中a表示查询数据的起始位置,b表示返回的数量。 (MySQL数据库中的记录是从0开始的) 注意从0开始 2.员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth 聚合函数不能…...

Elasticsearch:使用 OpenAI 生成嵌入并进行向量搜索 - nodejs

在我之前的文章: Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (一)(二)(三)(四)​​​​​ 我详细地描述了如何使用…...

[python高级编程]:02-类

此系列主要用于记录Python学习过程中查阅的优秀文章,均为索引方式。其中内容只针对本作者一人,作者熟悉了解的内容不再重复记录。 目录 01-装饰器 overload -- 方法重载 02-多态 多态和鸭子类型 03-设计模式 抽象基类和接口 01-装饰器 overload -- 方…...

java.lang.UnsupportedOperationException异常解决

在执行如下代码时&#xff0c;发现当apps.add("...");代码执行时&#xff0c;会报java.lang.UnsupportedOperationException错误 List<String> apps Arrays.asList("...");apps.add("..."); 问题出现的原因如下&#xff1a; 1、ArrayLi…...

openmediavault debian linux安装配置企业私有网盘(三 )——raid5与btrfs文件系统无损原数据扩容

一、适用环境 1、企业自有物理专业服务器&#xff0c;一些敏感数据不外流时&#xff0c;使用openmediavault自建NAS系统&#xff1b; 2、在虚拟化环境中自建NAS系统&#xff0c;用于内网办公&#xff0c;或出差外网办公时&#xff0c;企业内的文件共享&#xff1b; 3、虚拟化环…...

Two Phase Termination(两阶段)设计模式

Two Phase Termination设计模式是针对任务由两个环节组成&#xff0c;第一个环节是处理业务相关的内容&#xff0c;第二个阶段是处理任务结束时的同步、释放资源等操作。在进行两阶段终结的时候&#xff0c;需要考虑&#xff1a; 第二阶段终止操作必须保证线程安全。 要百分百…...

闲人闲谈PS之四十九——PLM和SAP集成常见的问题

惯例闲话&#xff1a;天气突变&#xff0c;没想到珠三角也骤降了10几度&#xff0c;昨晚还吹风扇模式&#xff0c;早上起来一下子感觉丝丝凉意。闲人还是喜欢冬天&#xff0c;冷&#xff0c;能让人思维清晰&#xff0c;提高工作效率。趁着天气适宜&#xff0c;赶紧加班擦屁股去…...

帆软BI目录

数据导入ORACLE库 写法 SELECT * FROM (SELECT a.id ,a.expandType,a.parentId,a.displayName,a.sortIndex,LEVEL lv ,replace(sys_connect_by_path(displayName,//),//Dec-Entry_Management//,) AS 路径FROM FINE_AUTHORITY_OBJECT aSTART WITH a.id decision-directory-ro…...

(第8天)保姆级 PL/SQL Developer 安装与配置

PL/SQL Developer 安装与配置(第8天) 咱们前面分享了很多 Oracle 数据库的安装,但是还没有正式使用过 Oracle 数据库,怎么连接 Oracle 数据库?今天就来讲讲我学习中比较常用的 Oracle 数据库连接工具:PL/SQL DEVELOPER。 PL/SQL Developer 的安装和配置对于新手来说还是…...

【CSS】前端点点点加载小点样式css动画过程实现

对话的 ... 加载动画&#xff0c;直接用 CSS 就可以实现&#xff0c;样式可以自己改&#xff0c;逻辑大差不差 <div class"loading-text"><span class"dot1"></span><span class"dot2"></span><span class&quo…...

【LeetCode: 2415. 反转二叉树的奇数层 | BFS + DFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...

Python学习(8) ----- Python的类与对象

Python 中的类&#xff08;Class&#xff09;与对象&#xff08;Object&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心。我们可以通过“类是模板&#xff0c;对象是实例”来理解它们的关系。 &#x1f9f1; 一句话理解&#xff1a; 类就像“图纸”&#xff0c;对…...