cxyjc8 发表于 2020-2-17 00:02:18

TX课堂 - Android进阶之旅(NDK实战篇)【价值999元】

简  介    该课程包含 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.string to integer.wmv
│   └── 笔记和源码
│       ├── 52. LeetCode 刷题 - 数字篇.mht
│       └── NDK_Day52.rar
├── 53.LeetCode 刷题 - 位运算
│   ├── 01.Reverse Integer.wmv
│   ├── 02.位运算.wmv
│   ├── 03.Power of Two.wmv
│   ├── 04.Power of Three.wmv
│   ├── 05.Number of 1 Bits.wmv
│   ├── 06.Factorial Trailing Zeroes.wmv
│   └── 笔记和源码
│       ├── 53. LeetCode 刷题 - 位运算.mht
│       └── 位运算.png
├── 54.LeetCode 刷题 - 树
│   ├── 01.Binary Tree Inorder Traversal.wmv
│   ├── 02.Path Sum.wmv
│   ├── 03.Maximum Depth of Binary Tree.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.Java Bitmap 获取像素操作.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.Android Device Monitor 介绍.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


下载地址:

**** Hidden Message *****

累了该死了 发表于 2020-4-17 21:30:14

不错,又占了一个沙发!

abcdefg 发表于 2020-4-28 20:47:54

啥也不说了,楼主就是给力!

vippp 发表于 2020-7-1 16:36:58

果断回帖,如果沉了就是我弄沉的很有成就感

jiaozhiwei 发表于 2020-9-3 22:54:09

看帖看完了至少要顶一下,还可以加入到淘帖哦!

daking 发表于 2020-9-30 23:07:44

谢谢分享哈哈哈

折翼的肯德鸡 发表于 2020-10-9 09:10:02

不错,又占了一个沙发!

释灬的心 发表于 2020-10-14 16:35:24

哥顶的不是帖子,是寂寞!

doudou 发表于 2020-10-16 17:58:39

不错,又占了一个沙发!

baa1130 发表于 2020-10-24 23:09:31

asd das da das das

8413848 发表于 2020-11-14 15:44:11

果断MARK,前十有我必火!

wplhsf 发表于 2020-11-14 16:25:33

不错,又占了一个沙发!

wplhsf 发表于 2020-11-15 14:33:50

看帖看完了至少要顶一下,还可以加入到淘帖哦!

yuanzelin8 发表于 2021-1-3 17:26:24

TX课堂 - Android进阶之旅(NDK实战篇)

aa666666 发表于 2021-1-17 18:03:47

1111111111111111111111111111111111

clausewitz 发表于 2021-3-23 01:10:01

学开发有益身心健康

airwei 发表于 2021-3-23 07:58:22

不错,又占了一个沙发!

captain 发表于 2021-5-12 17:07:33

哥顶的不是帖子,是寂寞!

18001975955 发表于 2022-4-5 17:06:59

14314632314315
页: [1]
查看完整版本: TX课堂 - Android进阶之旅(NDK实战篇)【价值999元】