TA的每日心情 | 开心 2024-9-19 21:14 |
---|
签到天数: 757 天 [LV.10]以坛为家III
管理员
- 积分
- 1312455
|
资源详情
简 介 该课程包含C/C++基础和进阶、JNI基础实战、数据结构和算法、智能识别、Linux内核和音视频实战,是大家从中级到高级过渡的一个必经过程。
第一部分:入门C的基础、C++的基础和JNI基础,分析JNIEnv的实现原理,手写Android共享内存的序列化过程等等。
第二部分:深入C的进阶和C++的进阶,分析内存四驱模型和项目开发模型,强化二级指针与多级指针,刨析STL的设计理念与算法等等。
第三部分:主讲数据结构和算法,这部分知识是面试的必备基础,同时也是为后面的智能识别与音视频开发做铺垫,我们不能只停留在API的调用阶段。数组、链表、栈、队列、二叉树、AVL树、红黑树、哈夫曼编码、图、LeetCode刷题等等。
第四部分:主讲OpenCV智能识别,首先带大家熟悉常用API,其次带大家手写实现算法,最后带大家实战银行卡扫描,二维码检测,实现人脸美容,实时人脸识别等等。
第五部分:主讲Linux内核,Android系统是基于Linux内核的,我们熟悉了Linux内核也就熟悉了Android底层。应用编译运行的工作过程,进程创建与进程管理,IPC进程间通信,Binder驱动的底层原理等等。
第六部分:主讲音视频开发,自己动手编译FFmpeg,打造一款万能的音视频播放器,多线程队列解码播放,录制视频加背景音乐,OpenGL渲染相机添加水印,H264协议详解,Android直播推拉流等等。
.
├──01.NDK开发前奏–x团参数加密和签名校验
│ ├──01.怎么架构新项目.wmv
│ ├──02.加密算法介绍.wmv
│ ├──03.MD5参数加密实现.wmv
│ ├──04.APP签名校验.wmv
│ └──笔记和资源
│ ├──01.NDK开发前奏–x团参数加密和签名校验.mht
│ └──NDK_Day01.rar
├──03.NDK开发前奏–视频转码压缩
│ ├──01.视频转码压缩介绍.wmv
│ ├──02.ffmpeg整合集成.wmv
│ ├──03.压缩回调处理.wmv
│ └──笔记和源码
│ └──NDK_Day03.rar
├──05.NDK开发前奏–实现支付宝人脸识别功能
│ ├──01.opencv介绍和整合.wmv
│ ├──02.人脸识别实现的思路.wmv
│ ├──03.opencv图像灰度处理.wmv
│ ├──04.实现人脸识别.wmv
│ └──笔记和源码
│ ├──05.NDK开发前奏–实现支付宝人脸识别功能.mht
│ └──NDK_Day05.rar
├──06.C基础–基本数据类型与指针入门
│ ├──01.C开发的一些准备工作.wmv
│ ├──02.基本数据类型.wmv
│ ├──03.变量地址和指针变量.wmv
│ ├──04.通过指针变量修改值.wmv
│ ├──05.面试题讲解.wmv
│ └──笔记和源码
│ ├──06.C基础–基本数据类型与指针入门.mht
│ └──NDK_Day06.rar
├──07.C基础–指针运算和函数指针
│ ├──01.二级指针和多级指针.wmv
│ ├──02.数组和数组指针.wmv
│ ├──03.指针循环遍历和赋值.wmv
│ ├──04.指针与数组的几种写法.wmv
│ ├──05.函数指针.wmv
│ └──源码和笔记
│ ├──NDK_Day07.rar
│ └──笔记.png
├──08.C基础–动态开辟内存和字符串
│ ├──01.上次内容回顾.wmv
│ ├──02.如何文档阅读.wmv
│ ├──03.静态内存开辟和动态内存开辟.wmv
│ ├──04.动态内存开辟的实用场景.wmv
│ ├──05.realloc和动态内存开启注意事项.wmv
│ └──源码和笔记
│ ├──08.C基础–动态开辟内存和字符串.mht
│ ├──C语言中文帮助文档.rar
│ ├──NDK_Day08.rar
│ ├──realloc.png
│ ├──函数指针.png
│ └──动态内存开辟.png
├──09.C基础–字符串常见操作和指针练习
│ ├──01.字符串长度.wmv
│ ├──02.字符串类型转换.wmv
│ ├──03.字符串比较.wmv
│ ├──04.字符串查找和拼接.wmv
│ ├──05.字符串截取和大小写转换.wmv
│ └──笔记和源码
│ ├──09.C基础–字符串常见操作和指针练习.mht
│ └──NDK_Day09.rar
├──10.C基础–结构体联合体和枚举
│ ├──01.字符串替换讲解.wmv
│ ├──02.结构体和结构体指针.wmv
│ ├──03.结构体数组.wmv
│ ├──04.字节对其和结构体大小计算.wmv
│ ├──05.联合体和枚举.wmv
│ └──笔记和源码
│ ├──10.C基础–结构体联合体和枚举.mht
│ └──NDK_Day10.rar
├──11.C基础–文件操作
│ ├──01.读取文本文件.wmv
│ ├──02.拷贝文件.wmv
│ ├──03.文件加解密和文件切割.wmv
│ └──笔记和源码
│ └──NDK_Day11.rar
├──12.JNI基础–JNIEnv的实现原理
│ ├──01.JNI开发的一般流程.wmv
│ ├──02.详解.h头文件和实现文件.wmv
│ ├──03.JNIEnv的实现原理.wmv
│ ├──04.C访问Java属性.wmv
│ ├──05.C访问Java方法.wmv
│ └──笔记和源码
│ ├──12.JNI基础–JNIEnv的实现原理.mht
│ ├──JNIEnv的原理和流程.png
│ ├──NDK_Day12_Java.rar
│ └──NDK_Day12_VS.rar
├──13.JNI基础–Native层构建Java对象
│ ├──01.作业讲解.wmv
│ ├──02.常量指针和指针常量.wmv
│ ├──03.Native层构建Java对象.wmv
│ ├──04.设置属性练习.wmv
│ └──笔记和源码
│ ├──13.JNI基础–Native层构建Java对象.mht
│ ├──NDK_Day13_Java.rar
│ └──NDK_Day13_VS.rar
├──14.JNI基础–Android共享内存的序列化过程
│ ├──01.Java对象与C对象对应.wmv
│ ├──02.Parcel源码解析.wmv
│ ├──03.自己动手实现内存共享.wmv
│ ├──04.共享内存面试题讲解.wmv
│ └──笔记和源码
│ ├──14.JNI基础–Android共享内存的序列化过程.mht
│ ├──1.png
│ ├──NDK_Day14.rar
│ └──无标题.png
├──15.JNI基础–缓存策略和异常处理
│ ├──01.数组的细节处理.wmv
│ ├──02.局部引用和全局引用.wmv
│ ├──03.静态缓存策略.wmv
│ ├──04.jni的异常处理.wmv
│ └──笔记和源码
│ ├──15.JNI基础–缓存策略和异常处理.mht
│ ├──NDK_Day15_Java.rar
│ └──NDK_Day15_VS.rar
├──16.C进阶–内存四驱模型
│ ├──01.数组参数传递.wmv
│ ├──02.数据类型剖析.wmv
│ ├──03.变量的本质.wmv
│ ├──04.内存四驱模型.wmv
│ └──笔记和源码
│ ├──16.C进阶–内存四驱模型.mht
│ └──NDK_Day16.rar
├──17.C进阶–项目开发模型强化
│ ├──01.内存四驱模型.wmv
│ ├──02.通过指针间接赋值的意义.wmv
│ ├──03.野指针和NULL地址.wmv
│ ├──04.定义字符串的几种区别.wmv
│ ├──05.项目开发模型强化.wmv
│ └──笔记和源码
│ ├──01.间接赋值.png
│ ├──02.通过指针间接赋值.png
│ ├──03.野指针.png
│ ├──04.字符串的不同之处.png
│ ├──17.C进阶–项目开发模型强化.mht
│ └──NDK_Day17.rar
├──18.C进阶–二级指针和多级指针
│ ├──01.指针使用的注意事项.wmv
│ ├──02.二级指针的内存模式.wmv
│ ├──03.多级指针.wmv
│ └──笔记和源码
│ ├──01.NULL地址的强化.png
│ ├──02.指针数组和二级指针.png
│ ├──03.二维数组的第三种定义方式.png
│ └──18.C进阶–二级指针和多级指针.mht
├──19.C进阶–结构体中的高级话题
│ ├──01.结构体赋值操作.wmv
│ ├──02.深拷贝和浅拷贝.wmv
│ ├──03.结构体的偏移量强化.wmv
│ └──笔记和源码
│ ├──19.C进阶–结构体中的高级话题.mht
│ └──结构体套指针.png
├──20.C++基础–引用和函数重载
│ ├──01.c和c++的区别.wmv
│ ├──02.常量.wmv
│ ├──03.引用和常量引用.wmv
│ ├──04.函数重载和默认参数.wmv
│ ├──05.类的初探.wmv
│ └──笔记和源码
│ ├──20.C++基础–引用和函数重载.mht
│ ├──NDK_Day20.rar
│ └──引用实例.png
├──21.C++基础–构造函数、析构函数和拷贝构造函数
│ ├──01.构造函数.wmv
│ ├──02.析构函数.wmv
│ ├──03.malloc、free、new、delete区别.wmv
│ ├──04.拷贝构造函数和调用场景.wmv
│ └──笔记和源码
│ ├──01.指针赋值.png
│ ├──02.拷贝构造函数赋值.png
│ ├──21.C++基础–构造函数、析构函数和拷贝构造函数.mht
│ └──NDK_Day21.rar
├──22.C++基础–对象大小和友元类
│ ├──01.可变参数.wmv
│ ├──02.static关键字.wmv
│ ├──03.const修饰函数.wmv
│ ├──04.友元函数和类.wmv
│ └──源码和笔记
│ ├──21.C++基础–对象大小和友元类.mht
│ └──NDK_Day22.rar
├──23.C++基础–操作符重载和类的继承
│ ├──01.加减运算符重载.wmv
│ ├──02.条件运算符和括号运算符重载.wmv
│ ├──03.类对象的继承.wmv
│ └──笔记和源码
│ ├──23.C++基础–操作符重载和类的继承.mht
│ └──NDK_Day23.rar
├──24.C++基础–虚继承、虚函数和模板函数
│ ├──01.属性初始化.wmv
│ ├──02.虚继承.wmv
│ ├──03.C++中的多态.wmv
│ ├──04.抽象类和接口.wmv
│ ├──05.模板函数.wmv
│ └──笔记和源码
│ ├──24.C++基础–虚继承、虚函数和模板函数.mht
│ └──NDK_Day24.rar
├──25.C++基础–实现Native层的ArrayList
│ ├──01.编译流程.wmv
│ ├──02.模板类.wmv
│ ├──03.ArrayList源码分析.wmv
│ ├──04.实现Native层的ArrayList.wmv
│ └──笔记和源码
│ ├──25.C++基础–实现Native层的ArrayList.mht
│ ├──NDK_Day25_AS.rar
│ └──NDK_Day25_VS.rar
├──26.C++基础–异常处理和字符串操作
│ ├──01.类型转换.wmv
│ ├──02.实现System.arrayCopy.wmv
│ ├──03.c++中的异常处理.wmv
│ ├──04.字符串操作.wmv
│ └──源码和笔记
│ ├──26.C++基础–异常处理和字符串操作.mht
│ ├──NDK_Day26_AS.rar
│ └──NDK_Day26_VS.rar
├──27.C++进阶–Const关键字增强和引用的本质剖析
│ ├──01.string字符串的常见操作.wmv
│ ├──02.const关键增强字.wmv
│ ├──03.引用的加强.wmv
│ ├──04.NDK异常处理增强.wmv
│ └──笔记和源码
│ ├──NDK_Day27_VS.rar
│ └──c++中的常量.png
├──28.C++进阶–STL容器的基本介绍和使用
│ ├──01.vector和stack容器.wmv
│ ├──02.queue基本操作.wmv
│ ├──03.list增删改查.wmv
│ ├──04.谓词和函数对象.wmv
│ └──笔记和源码
│ ├──28.C++进阶–STL容器的基本介绍和使用.mht
│ └──NDK_Day28.rar
├──29.C++进阶–STL函数对象和谓词
│ ├──01.map容器介绍和使用.wmv
│ ├──02.multimap容器介绍和使用.wmv
│ ├──03.容器对象拷贝构造函数.wmv
│ ├──04.一元谓词和二元谓词.wmv
│ └──笔记和源码
│ ├──29.C++进阶–STL函数对象和谓词.mht
│ └──NDK_Day29_VS.rar
├──30.C++进阶–STL算法设计理念分析
│ ├──01.预定义函数对象.wmv
│ ├──02.函数适配器.wmv
│ ├──03.STL算法设计理念分析.wmv
│ ├──04.源码阅读的经验总结.wmv
│ └──源码和笔记
│ ├──30.C++进阶–STL算法设计理念分析.mht
│ └──NDK_Day30_VS.rar
├──31.Android智能识别–银行卡区域裁剪
│ ├──01.银行卡识别的思路分析.wmv
│ ├──02.bitmap和mat转换.wmv
│ ├──03.截取银行卡区域.wmv
│ └──源码和资源
│ ├──31.Android智能识别–银行卡区域裁剪.mht
│ └──NDK_Day31_AS.rar
├──32.Android智能识别–银行卡数字识别
│ ├──01.裁剪银行卡区域.wmv
│ ├──02.过滤填充干扰区域.wmv
│ ├──03.分割获取银行卡数字.wmv
│ ├──04.字符串粘连处理.wmv
│ └──笔记和源码
│ ├──32.Android智能识别–银行卡数字识别.mht
│ └──NDK_Day31_AS.rar
├──33.数据结构算法–数组与链表
│ ├──01.数据结构算法基本概念.wmv
│ ├──02.时间复杂度和空间复杂度.wmv
│ ├──03.数组与链表源码分析.wmv
│ └──笔记和源码
│ ├──33.数据结构算法–数组与链表.mht
│ └──NDK_Day33_VS.rar
├──34.数据结构算法–单链表与双向链表
│ ├──01.单链表.wmv
│ ├──02.时间复杂度优化.wmv
│ ├──03.双向链表.wmv
│ └──笔记和源码
│ ├──34.数据结构算法–单链表与双向链表.mht
│ └──NDK_Day34_AS.rar
├──35.数据结构算法–冒泡、选择和插入排序
│ ├──01.上次作业讲解.wmv
│ ├──02.冒泡排序.wmv
│ ├──03.方法宏定义.wmv
│ ├──04.时间复杂度求解.wmv
│ ├──05.选择排序.wmv
│ ├──06.性能测试比较分析.wmv
│ └──笔记和源码
│ ├──35.数据结构算法–冒泡、选择和插入排序.mht
│ ├──NDK_Day35_AS.rar
│ └──希尔排序.png
├──36.数据结构算法–冒泡优化、插入和希尔排序
│ ├──01.ndk错误日志调试.wmv
│ ├──02.冒泡排序优化.wmv
│ ├──03.插入排序.wmv
│ ├──04.希尔排序.wmv
│ └──源码和笔记
│ ├──36.数据结构算法–冒泡优化、插入和希尔排序.mht
│ └──NDK_Day36_AS.rar
├──37.数据结构算法–归并排序和快速排序
│ ├──01.上次遗留问题解决.wmv
│ ├──02.稳定排序.wmv
│ ├──03.归并排序.wmv
│ ├──04.归并优化和时间复杂度求解.wmv
│ ├──05.快速排序.wmv
│ ├──06.快速排序优化.wmv
│ └──笔记和源码
│ ├──NDK_Day36_AS.rar
│ ├──merge数组.png
│ └──归并排序.png
├──38.数据结构算法–递归和栈结构
│ ├──01.循环和递归.wmv
│ ├──02.汉诺塔问题.wmv
│ ├──03.数组实现栈.wmv
│ ├──04.链表实现栈.wmv
│ └──源码和笔记
│ ├──38.数据结构算法–递归和栈结构.mht
│ └──NDK_Day38_AS.rar
├──39.数据结构算法–队列和双向队列
│ ├──01.汉诺塔问题求解.wmv
│ ├──02.位运算.wmv
│ ├──03.数组实现队列.wmv
│ └──笔记和源码
│ ├──39.数据结构算法–队列和双向队列.mht
│ └──NDK_Day39_AS.rar
├──40.数据结构算法–HashMap源码分析和手写实现
│ ├──01.HashMap源码实现分析.wmv
│ ├──02.hashCode底层实现分析.wmv
│ ├──03.==、equals和hashCode.wmv
│ ├──04.手写HashMap扩容.wmv
│ └──源码和笔记
│ ├──40.HashMap源码分析和手写实现.mht
│ └──NDK_Day40.rar
├──41.数据结构算法–树和二叉树
│ ├──01.树的定义和分类.wmv
│ ├──02.树的存储.wmv
│ ├──03.树、森林与二叉树之间互转.wmv
│ └──笔记和源码
│ ├──41.树和二叉树.mht
│ ├──NDK_Day41.rar
│ ├──二叉树转树.png
│ ├──树转二叉树.png
│ └──森林转二叉树.png
├──42.数据结构算法–二叉树常见操作
│ ├──01.二叉树的分类.wmv
│ ├──02.二叉树的遍历.wmv
│ ├──03.平衡二叉树.wmv
│ └──笔记和源码
│ ├──42.数据结构算法–二叉树常用操作.mht
│ ├──NDK_Day42.rar
│ └──二叉树遍历.png
├──43.数据结构算法–优先级队列和堆排序
│ ├──01.二叉树序列化和反序列.wmv
│ ├──02.优先级队列和堆排序.wmv
│ └──笔记和源码
│ ├──43.数据结构算法–优先级队列和堆排序.mht
│ ├──NDK_Day34_AS.rar
│ └──二叉树的序列化和反序列化.png
├──44.数据结构算法–二叉搜索树
│ ├──01.二叉搜索树-新增.wmv
│ ├──02.二叉搜索树-查找.wmv
│ ├──03.二叉搜索树–删除.wmv
│ └──笔记和源码
│ ├──44.数据结构算法–二叉搜索树.mht
│ └──NDK_Day44.rar
├──45.数据结构算法–AVL树
│ ├──01.为什么要引入AVL树.wmv
│ ├──02.AVL树–旋转调整.wmv
│ ├──03.AVL树–插入调整.wmv
│ └──笔记和源码
│ ├──NDK_Day45.rar
│ ├──先右旋在左旋.png
│ ├──先左旋再右旋.png
│ ├──右旋.png
│ └──左旋.png
├──46.数据结构算法–AVL树的新增和移除
│ ├──01.新增操作.wmv
│ ├──02.删除操作.wmv
│ └──源码和笔记
│ ├──46.数据结构算法–AVL树的新增和移除.mht
│ └──NDK_Day46.rar
├──47.数据结构算法–红黑树上篇
│ ├──01.红黑树和性质.wmv
│ ├──02.红黑树新增逻辑讲解.wmv
│ ├──03.红黑树新增代码实现.wmv
│ └──笔记和源码
│ ├──NDK_Day47.rar
│ └──aaa.png
├──48.数据结构算法–红黑树下篇
│ ├──01.红黑树和AVL树的算法复杂度分析.wmv
│ ├──02.红黑树新增理解.wmv
│ ├──03.红黑树的删除操作.wmv
│ └──笔记和源码
│ ├──48.数据结构算法–红黑树下篇.mht
│ └──NDK_Day48.rar
├──49.数据结构算法–哈夫曼编码
│ ├──01.定长编码和变成编码.wmv
│ ├──02.霍夫曼树的构建过程.wmv
│ ├──03.代码实现霍夫曼编码和解码.wmv
│ └──源码和笔记
│ ├──49.数据结构算法–哈夫曼编码.mht
│ ├──NDK_Day48(修正版).rar
│ └──NDK_Day49.rar
├──50.数据结构算法–图
│ ├──01.Java多线程的内存模型.wmv
│ ├──02.synchronized的底层实现原理.wmv
│ ├──03.图的基础定义.wmv
│ └──源码和笔记
│ ├──01.霍夫曼编码.png
│ ├──02.多线操作HashMap.png
│ ├──03.synchronized底层实现原理.png
│ ├──04.无向边存储方式.png
│ ├──05.有向边存储方式.png
│ └──50.数据结构算法–图.mht
├──51.数据结构算法–图的最小生成树和最短路径
│ ├──01.邻接表和十字链表.wmv
│ ├──02.图的广度和深度优先遍历.wmv
│ ├──03.最小生成树.wmv
│ └──笔记和源码
│ ├──51.数据结构算法–图的最小生成树和最短路径.mht
│ ├──NDK_Day51.rar
│ ├──十字链表.png
│ ├──广度优先遍历.png
│ └──邻接表.png
├──52.LeetCode刷题–数字篇
│ ├──01.迪杰斯特拉算法.wmv
│ ├──02.toSum.wmv
│ ├──03.stringtointeger.wmv
│ └──笔记和源码
│ ├──52.LeetCode刷题–数字篇.mht
│ └──NDK_Day52.rar
├──53.LeetCode刷题–位运算
│ ├──01.ReverseInteger.wmv
│ ├──02.位运算.wmv
│ ├──03.PowerofTwo.wmv
│ ├──04.PowerofThree.wmv
│ ├──05.Numberof1Bits.wmv
│ ├──06.FactorialTrailingZeroes.wmv
│ └──笔记和源码
│ ├──53.LeetCode刷题–位运算.mht
│ └──位运算.png
├──54.LeetCode刷题–树
│ ├──01.BinaryTreeInorderTraversal.wmv
│ ├──02.PathSum.wmv
│ ├──03.MaximumDepthofBinaryTree.wmv
│ └──笔记和源码
│ └──54.LeetCode刷题–树.mht
├──55.LeetCode刷题–常用算法思想
│ ├──01.贪心算法思想.wmv
│ ├──02.回溯算法思想.wmv
│ ├──03.动态规划算法思想.wmv
│ └──笔记和源码
│ └──55.LeetCode刷题–常用算法思想.mht
├──56.OpenCV–安装和简介
│ ├──01.OpenCV安装.wmv
│ ├──02.操作指针转灰度图.wmv
│ └──笔记和源码
│ ├──56.OpenCV–安装和简介.mht
│ ├──NDK_Day56.rar
│ └──opencv需要的dll文件
│ ├──concrt140d.dll
│ ├──msvcp140d.dll
│ ├──opencv_ffmpeg310_64.dll
│ ├──opencv_world340d.dll
│ ├──opencv_world340.dll
│ └──ucrtbased.dll
├──57.OpenCV–Android滤镜效果处理
│ ├──01.ColorMatrix矩阵运算.wmv
│ ├──02.JavaBitmap获取像素操作.wmv
│ ├──03.Native层操作像素指针.wmv
│ ├──04.ARGB_8888和RGB_565.wmv
│ └──笔记和源码
│ ├──57.OpenCV–Android滤镜效果处理.mht
│ └──NDK_Day57.rar
├──58.OpenCV–Mat对象与图像混合
│ ├──01.细讲Mat对象.wmv
│ ├──02.像素获取和修改.wmv
│ ├──03.图像混合.wmv
│ ├──04.饱和度、亮度和对比度.wmv
│ └──笔记和源码
│ ├──58.OpenCV–Mat对象与图像混合.mht
│ └──NDK_Day58_VS.rar
├──59.OpenCV–图像的绘制与卷积操作
│ ├──01.inline内联函数.wmv
│ ├──02.绘制形状和文字.wmv
│ ├──03.图像的卷积操作.wmv
│ └──笔记和源码
│ ├──59.OpenCV–图像的绘制与模糊.mht
│ ├──NDK_Day59_VS.rar
│ └──卷积操作.png
├──60.Android性能优化实战–界面卡顿
│ ├──01.APP项目介绍.wmv
│ ├──02.AndroidDeviceMonitor介绍.wmv
│ ├──03.高斯模糊和均值模糊.wmv
│ ├──04.Glide源码分析.wmv
│ ├──05.LruCache的正确使用姿势.wmv
│ └──笔记和源码
│ ├──60.Android性能优化实战–界面卡顿.mht
│ ├──NDK_Day60_VS.rar
│ └──高斯模糊和均值模糊.png
├──61.Android性能优化实战–Bitmap全面解析
│ ├──01.Bitmap到底占多大的内存.wmv
│ ├──02.Bitmap的内存开辟.wmv
│ ├──03.Bitmap的内存销毁和复用.wmv
│ └──笔记和源码
│ ├──61.Android性能优化实战–Bitmap全面解析.mht
│ ├──Native层解析Bitmap的流程.png
│ └──dp、dip、dpi、px.png
├──62.OpenCV–实现图片的美容效果
│ ├──01.Bitmap的内存优化与适配.wmv
│ ├──02.线上OOM内存dump搜集.wmv
│ ├──03.实现图片的美容效果.wmv
│ ├──04.腐蚀与膨胀.wmv
│ └──笔记和源码
│ ├──62.OpenCV–实现图片的美容效果.mht
│ └──NDK_Day62.rar
├──63.OpenCV–验证码自动识别
│ ├──01.形态学操作.wmv
│ ├──02.过滤验证码的干扰.wmv
│ ├──03.上采样与降采样.wmv
│ └──笔记和源码
│ ├──63.OpenCV–验证码自动识别.mht
│ └──NDK_Day63_VS.rar
├──64.OpenCV–自定义线性滤波
│ ├──01.处理边缘类型.wmv
│ ├──02.自定义线性滤波.wmv
│ ├──03.图像二值化.wmv
│ └──笔记和源码
│ ├──64.OpenCV–自定义线性滤波.mht
│ ├──NDK_Day64_VS.rar
│ ├──卷积操作.png
│ └──自定义算子.png
├──65.OpenCV–图像边缘检测
│ ├──01.Sobel算子.wmv
│ ├──02.Laplance算子.wmv
│ ├──03.Canny边缘检测.wmv
│ └──笔记和源码
│ ├──65.OpenCV–图像边缘检测.mht
│ ├──NDK_Day65_VS.rar
│ ├──sobel合并.png
│ └──微积分求导.png
├──66.OpenCV–霍夫检测与重映射
│ ├──01.霍夫直线检测.wmv
│ ├──02.霍夫圆检测.wmv
│ ├──03.重映射.wmv
│ └──笔记和源码
│ ├──66.OpenCV–霍夫检测与重映射.mht
│ ├──NDK_Day66_VS.rar
│ ├──霍夫圆检测.png
│ └──霍夫直线检测.png
├──67.OpenCV–色彩空间与直方图
│ ├──01.RGB与HSV.wmv
│ ├──02.直方图均衡化.wmv
│ ├──03.直方图计算绘制.wmv
│ └──笔记和源码
│ ├──1_01.jpg
│ ├──1_02.jpg
│ ├──1_03.jpg
│ ├──2_01.jpg
│ ├──2_02.png
│ ├──2_03.jpg
│ ├──2_04.png
│ ├──2_05.jpg
│ └──NDK_Day67_VS.rar
├──68.OpenCV–直方图比较和匹配
│ ├──01.直方图比较.wmv
│ ├──02.直方图的反向投射和模板匹配.wmv
│ └──笔记和源码
│ ├──68.OpenCV–直方图比较和匹配.mht
│ └──NDK_Day68_VS.rar
├──69.OpenCV–轮廓查找与图像分水岭
│ ├──01.银行卡轮廓查找与绘制.wmv
│ ├──02.图形矩和图像分水岭切割.wmv
│ └──源码和笔记
│ ├──69.OpenCV–轮廓查找与图像分水岭.mht
│ └──NDK_Day69_VS.rar
├──70.OpenCV–手写QQ说说图片效果
│ ├──01.Bitmap的解封装与编解码.wmv
│ ├──02.镜像和逆世界效果.wmv
│ ├──03.浮雕和马赛克效果.wmv
│ ├──04.毛玻璃效果.wmv
│ ├──05.油画效果和速度油画.wmv
│ └──源码和笔记
│ ├──70.OpenCV–手写QQ说说图片效果.mht
│ ├──NDK_Day70_AS.rar
│ ├──图形图像处理.png
│ ├──图片Bitmap的解压缩和编解码.png
│ └──逆世界.png
├──71.OpenCV–图片的几何变换
│ ├──01.图片旋转.wmv
│ ├──02.矩阵仿射变换.wmv
│ ├──03.reSize()图片缩放.wmv
│ ├──04.remap重映射 .wmv
│ └──笔记和源码
│ ├──71.OpenCV–图片的几何变换.mht
│ └──NDK_Day71_AS.rar
├──72.OpenCv–封装 java 层sdk模型
│ ├──01.苏宁体育面试题讲解.wmv
│ ├──02.NDK学到什么程度,该怎么学?.wmv
│ ├──03.如何封装java层sdk模型.wmv
│ ├──04.动手封装Opencv的Mat.java对象.wmv
│ ├──05.Java和C++的回收机制.wmv
│ └──源码和笔记
│ ├──72.NDK开发实战–封装java层sdk模型.mht
│ └──NDK_Day72_AS.rar
├──73.OpenCV–手写直方图和直方均衡
│ ├──01.知识回顾.wmv
│ ├──02.手写实现直方图计算.wmv
│ ├──03.手写实现归一化.wmv
│ ├──04.手写实现直方均衡.wmv
│ └──笔记和源码
│ ├──73.OpenCV–手写直方图和直方均衡.mht
│ └──NDK_Day73_VS.rar
├──74.NDK开发实战–实现人脸的美容效果(上)
│ ├──01.卷积模糊算法复杂度分析.wmv
│ ├──02.积分图算法介绍.wmv
│ ├──03.卷积模糊算法优化.wmv
│ ├──04.快速边缘保留算法.wmv
│ └──笔记和源码
│ ├──01.积分图计算.png
│ ├──02.快速边缘保留算法.png
│ ├──03.局部方差公式推导.png
│ └──NDK_Day74_VS.rar
├──75.NDK开发实战–实现人脸的美容效果(下)
│ ├──01.皮肤区域检测.wmv
│ ├──02.皮肤区域融合.wmv
│ ├──03.边缘加强与模糊叠加.wmv
│ └──笔记和源码
│ ├──75.OpenCV–实现人脸的美容效果(下).mht
│ └──NDK_Day75_VS.rar
├──76.NDK开发实战–微信公众号二维码检测与识别
│ ├──01.实现思路剖析.wmv
│ ├──02.算法流程分析.wmv
│ ├──03.手写实现.wmv
│ ├──04.如何优化.wmv
│ └──笔记和源码
│ ├──76.NDK开发实战–微信公众号二维码检测与识别.mht
│ └──NDK_Day76_VS.rar
├──77.人脸识别–HOG和LBP特征检测
│ ├──01.HOG特征检测的实现原理.wmv
│ ├──02.行人检测.wmv
│ ├──03.手写LBP特征算法.wmv
│ ├──04.haar特征介绍.wmv
│ └──笔记和源码
│ ├──77.人脸识别–HOG和LBP特征检测.mht
│ ├──Haar特征.png
│ ├──NDK_Day77_AS.rar
│ ├──hog特征.png
│ ├──lbp.特征.png
│ ├──lbp表达.png
│ ├──peoples.png
│ ├──分网格的梯度方向直方图.png
│ └──块描述子.png
├──78.人脸识别–实时人脸检测
│ ├──01.相机实时检测人脸.wmv
│ ├──02.均值,方差与协方差.wmv
│ ├──03.特征值与特征向量.wmv
│ ├──04.PCA的降维原理与应用.wmv
│ └──笔记和源码
│ ├──78.人脸识别–级联分类器.mht
│ ├──NDK_Day78_AS.rar
│ └──NDK_Day78_VS.rar
├──79.NDK开发实战–实时人脸检测和识别
│ ├──01.样本训练.wmv
│ ├──02.实时识别人脸.wmv
│ ├──03.后续的安排.wmv
│ └──笔记和源码
│ ├──79.NDK开发实战–实时人脸检测和识别.mht
│ ├──NDK_Day78_AS.rar
│ ├──OpenCV-android-sdk.rar
│ ├──orl_faces.rar
│ ├──实时人脸检测.gif
│ └──实时人脸识别.gif
├──80.音视频技术学习–启动篇
│ ├──01.音视频基础知识.wmv
│ ├──02.视频播放的流程.wmv
│ ├──03.音视频编解码.wmv
│ ├──04.FFmpeg介绍.wmv
│ └──笔记和资料
│ ├──80.音视频技术学习–启动篇.mht
│ ├──视音频分析工具.rar
│ └──视音频播放流程.png
├──81.linux系统编程–命令基础,软件卸载与安装
│ ├──01.linux常用快键键.wmv
│ ├──02.文件和文件夹操作.wmv
│ ├──03.用户与用户组.wmv
│ ├──04.搜索与查找.wmv
│ ├──05.软件安装流程.wmv
│ ├──06.压缩与解压缩.wmv
│ └──笔记与资料
│ ├──81.linux系统编程–命令基础,软件卸载与安装.mht
│ ├──Xftp5.exe
│ └──Xshell5.exe
├──82.linux系统编程–应用编译运行的工作过程
│ ├──01.vim的三种工作模式.wmv
│ ├──02.vim常用命令.wmv
│ ├──03.gcc编译四个步骤.wmv
│ ├──04.动态库与静态库.wmv
│ ├──05.虚拟内存.wmv
│ └──笔记与源码
│ ├──82.linux系统编程–应用编译运行的工作过程.mht
│ ├──vim三种工作模式.png
│ ├──动态库.png
│ └──虚拟内存布局图.png
├──83.linux内核编程–文件IO与文件描述符
│ ├──01.系统调用.wmv
│ ├──02.文件描述符表.wmv
│ ├──03.stat与lstat.wmv
│ ├──04.目录操作.wmv
│ └──笔记与源码
│ ├──83.linux内核编程–文件IO与文件描述符.mht
│ ├──dir_operate.cpp
│ ├──文件描述符.png
│ ├──系统函数与普通函数.png
│ └──系统调用.png
├──84.linux内核编程–进程创建与进程管理
│ ├──01.pcb进程控制块.wmv
│ ├──02.内存映射.wmv
│ ├──03.fork创建子进程.wmv
│ ├──04.父子进程共享.wmv
│ ├──05.回收进程.wmv
│ ├──06.监听APP应用被卸载.wmv
│ └──笔记和源码
│ ├──84.linux内核编程– 进程创建与进程管理.mht
│ ├──fork函数.png
│ └──内存映射.png
├──85.linux内核编程–IPC进程间通信
│ ├──01.进程间通信的本质.wmv
│ ├──02.管道.wmv
│ ├──03.信号通信的原理.wmv
│ ├──04.共享映射区通信.wmv
│ ├──05.mmap的实现原理.wmv
│ └──笔记和源码
│ ├──85.linux内核编程–IPC进程间通信.mht
│ ├──mmap_ipc_1.cpp
│ ├──mmap_ipc_2.cpp
│ ├──mmap的实现原理.png
│ ├──管道.png
│ ├──管道的通信机制.png
│ └──进程间通信.png
├──86.linux内核编程– 线程与多线程同步
│ ├──01.线程的创建与销毁.wmv
│ ├──02.回收线程.wmv
│ ├──03.分离线程.wmv
│ ├──04.生产者与消费者.wmv
│ └──笔记和源码
│ ├──86.linux内核编程– 线程与多线程同步.mht
│ ├──binder驱动.png
│ ├──thread1.cpp
│ └──thread_comm.cpp
├──87.CMake语法–自动编译和链接
│ ├──01.Makefile、CMake与Shell之间的联系.wmv
│ ├──02.Makefile的一个规则.wmv
│ ├──03.Makefile的两个函数.wmv
│ ├──04.Makefile的三个自动变量.wmv
│ ├──05.Cmake的安装与简介.wmv
│ └──笔记与源码
│ ├──87.CMake语法–自动编译和链接.mht
│ ├──GNU_makefile中文手册.pdf
│ ├──Xftp5.exe
│ ├──cmake实战.pdf
│ ├──cmake-3.14.3.tar.gz
│ ├──m1
│ │ ├──Makefile
│ │ ├──add.cpp
│ │ ├──div.cpp
│ │ ├──hello.cpp
│ │ └──mul.cpp
│ ├──m2
│ │ ├──Makefile
│ │ └──sub.cpp
│ └──m3
│ ├──Makefile
│ └──hello.cpp
├──88.CMake语法–详解CMakeLists.txt
│ ├──01.CMake安装问题补充.wmv
│ ├──02.构建生成.so动态库.wmv
│ ├──03.链接外部动态库与头文件.wmv
│ ├──04.编写基于FFmpeg开发的CmakeLists.wmv
│ └──笔记与源码
│ └──88.CMake语法–详解CMakeLists.mht
├──89.Shell脚本–详解基础语法
│ ├──01.自定义变量与环境变量.wmv
│ ├──02.位置参数变量与预定义变量.wmv
│ ├──03.条件判断.wmv
│ ├──04.流程控制语句.wmv
│ └──笔记与源码
│ ├──01.sh
│ ├──02.sh
│ ├──03.sh
│ ├──04.sh
│ ├──05.sh
│ ├──06.sh
│ ├──07.sh
│ ├──89.Shell脚本–详解基础语法.mht
│ └──Linux命令行与shell脚本编程大全.第3版.pdf
├──90.Shell脚本–自己动手编译FFmpeg
│ ├──01.CMake交叉编译Android动态库.wmv
│ ├──02.配置NDK环境.wmv
│ ├──03.手写FFmpeg编译脚本.wmv
│ ├──04.编译参数传递详解.wmv
│ ├──05.运行调试视音频解码.wmv
│ └──笔记与源码
│ ├──configure_help.txt
│ ├──ffmpeg-3.3.9.tar.gz
│ └──ffmpeg_build.sh
├──91.FFmpeg–打造一款万能的音乐播放器
│ ├──01.效果演示.wmv
│ ├──02.获取Meta信息.wmv
│ ├──03.解码音频数据.wmv
│ ├──04.AudioTack 播放音频的原理.wmv
│ ├──05.播放pcm数据.wmv
│ ├──06.内存上涨问题分析.wmv
│ └──笔记和源码
│ ├──91.FFmpeg–打造一款万能的音乐播放器.mht
│ ├──MusicPlayer.rar
│ └──NDK_Day03.rar
├──92.FFmpeg–多线程解码播放
│ ├──01.内存上涨问题分析解决.wmv
│ ├──02.音频重采样.wmv
│ ├──03.添加错误回调到Java.wmv
│ ├──04.多线程解码播放.wmv
│ └──笔记和源码
│ ├──92.FFmpeg–多线程解码播放.mht
│ └──MusicPlayer.rar
├──93.FFmpeg–OpenSLES播放音频数据
│ ├──01.JNIEnv子线程回调Java问题.wmv
│ ├──02.OpenSLES播放音频原理分析.wmv
│ ├──03.OpenSLES播放音频数据.wmv
│ ├──04.抽取准备方法.wmv
│ ├──05.整理代码架构.wmv
│ └──笔记与源码
│ ├──93.FFmpeg–OpenSLES播放音频数据.mht
│ ├──MusicPlayer.rar
│ └──OpenSLES_Study.rar
├──94.FFmpeg–线程队列边解码边播放
│ ├──01.编译错误解决.wmv
│ ├──02.添加准备完毕回调.wmv
│ ├──03.用队列边解码边播放.wmv
│ ├──04.再次整理代码架构.wmv
│ ├──05.所有功能代码走读.wmv
│ └──笔记与源码
│ ├──94.FFmpeg–线程队列边解码边播放.mht
│ └──MusicPlayer.rar
├──95.FFmpeg–Android视频播放器
│ ├──01.整合音乐播放器项目.wmv
│ ├──02.OpenGLES渲染视频.wmv
│ ├──03.界面的渲染流程.wmv
│ ├──04.SurfaceView渲染视频.wmv
│ ├──05.下节课的安排.wmv
│ └──笔记与源码
│ ├──95.FFmpeg–Android视频播放器.mht
│ ├──NDK_Day03.rar
│ ├──VideoPlayer.rar
│ └──页面渲染流程.png
├──96.FFmpeg–音视频同步
│ ├──01.调整音乐播放器项目架构.wmv
│ ├──02.模板模式整合视频解码.wmv
│ ├──03.视音频同步的思想.wmv
│ ├──04.实现视音频同步.wmv
│ └──笔记与源码
│ ├──96.FFmpeg–音视频同步.mht
│ ├──VideoPlayer.rar
│ └──视音频同步.png
├──97.FFmpeg–Android直播推拉流
│ ├──01.自己动手搭建流媒体服务器.wmv
│ ├──02.配置流媒体环境.wmv
│ ├──03.集成RTMP推流源码.wmv
│ ├──04.初始化RTMP推流.wmv
│ ├──05.回调Java层监听初始化状态.wmv
│ └──笔记和源码
│ ├──97.FFmpeg–Android直播推拉流.mht
│ ├──LivePush.rar
│ ├──OpenGLES.rar
│ ├──ffmpeg-20190706-feade2b-win64-static.rar
│ └──rtmpdump.rar
|
|