0%

阅读指导 本文仍在进一步完善中…(要详解的内容实在是太多了,之后有可能分成多个文章讲解,写在一篇文章里实在是太长太长了。) 本文并不是讲解“Kotlin 协程”的底层实现,而是从应用层面详细的讲解协程的使用方法及相关知识。 引言 “协程”是 Kotlin 中非常重要的一个功能,它大大简化了并发程序设计的难度。 协程说简单也很简单,因为只是做简单的异步或并发处理的话,它的用法简单到不行。但是要应对复杂的场景,就需要对协程有深入的了解。 直到我深入学习了 Go 语言后,我觉得非常必要再重新研究下 Kotlin 的协程,之前是自己浅薄了。不知者无畏啊! 下面先让我们一起来做一些基础测验,了解下您对协 ...
阅读全文 »

阅读提示 老习惯,考虑到大忙人很多,为了节省您的时间,先说一下哪些人适合阅读本文。 想了解 Android 多点触控协议 想了解 getevent 的使用方法及解析方法 若您满足以下情况之一,您就可以跳过本文章: 您不需要 App 自身拥有“系统级”的全局获取用户触控点坐标的能力 您不需要通过 getevent 获取触控信息 您只需要获取到自身应用范围内的触控点坐标 前言 本文着重介绍了Android 多点触控协议的相关知识及 adb 命令 getevent 的数据解析方法。具体的程序实现并不是本文的重点。 项目需求 需要 App 本身能“系统级”的全局获取用户的触控点坐标。并且不能影响触控操 ...
阅读全文 »

概述 关于获取 Android 手机方向,有很多种方法,这原来是一个很简单的问题。但是最近在做“支持 Android 11+ 自定义 Toast 组件”时,同样遇到了这个问题。仔细研究时,发现这个问题其实还是值得讲一下的。 网上虽然已经提供了很多种方法来获取手机方向,但是讲解的都比较片面,并没有说明需要在什么情况下才能使用相关的方法。此外如果手机处于锁定屏幕方向的情况下,应该如何来获取手机方向等问题也没有说清楚。 还有一个问题,就是在 Android 11 及以上系统,应用处于后台时,应该如何正确获取手机方向,也有必要说明下。 所以我觉得这里有必要详细的来讲解一下这个问题。尤其是在做相机开发及 ...
阅读全文 »

说明 本文讲解的是 Android 本身的 OpenGL ES 的用法,而不是采用 Native C 方式。 若想了解采用 Native C 方式使用 OpenGL 的同学,请自觉绕行! 本文使用的是 OpenGL ES 2.0。 PS:OpenGL ES,即 OpenGL 的一个子集,裁剪了一些功能,专门使用在嵌入式设备中。 源码下载 本文涉及到的所有代码,可以从我的 Github上下载。该项目中包含了更多的 OpenGL ES 示例。 前提 需要读者了解最基本的 OpenGL 相关术语及基本概念。 样板代码 我们从一个最简单的示例入手,在页面上画一个点。 以下是使用 OpenGL ES 的 ...
阅读全文 »

H.264 & H.265 知识简介 H.264 H.264 有两种封装模式: Annex-B 模式,也叫 MPEG-2 transport stream format 格式(ts格式):传统模式,有 startcode。 SPS 和 PPS 是在 ES 中,vlc 里打开编码器信息中显示 H.264。 avcC 模式,也叫 AVC1 模式:MPEG-4 格式,字节对齐,因此也叫 Byte-Stream Format。Elementary Stream 格式。用于mp4/flv/mkv等封装中。没有 startcode。 SPS 和 PPS 以及其它信息被封装在 container 中 ...
阅读全文 »

编译环境 操作系统:macOS 11.6 NDK:22.1.7171670 libyuv:Version: 1815 (截止 2022/03/24) cmake: 3.20.3 gcc:12345Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1Apple clang version 13.0.0 (clang-1300.0 ...
阅读全文 »

前言 最近项目有个需求,要求使用 ffmpeg 将 PCM 编码成 ADPCM IMA QT 格式。可是网上竟然没有任何相关的资料(至少我是没找到),我也是哭了。唯一能参考的就是官方的示例,不过那个示例就是一个范例,毕竟人家不可能把每种编码都写个例子。所以自己在写代码时遇到了不少挑战。特此分享下学习成果。 关于 ffmpeg 的自定义编译,前文已经讲过了,并且讲解了如何将 ADPCM IMA QT 编码的音频解码成 PCM。 本文主要讲解如何将 PCM 编码成 ADPCM IMA QT 裸流。 编译环境 操作系统:macOS 10.15.5 NDK:22.1.7171670 ffmpeg:4. ...
阅读全文 »

编译环境 操作系统:macOS 10.15.5 NDK:22.1.7171670 ffmpeg:4.4 “Rao”(截止 20210609) cmake: 3.20.3 gcc: 123456789Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1Apple clang version 12.0.0 (clang- ...
阅读全文 »

前言 网上的编译方法都比较旧,这回我发个采用最新版 NDK 编译 x264 的方法。 环境说明: NDK 版本:22.0.7026061 操作系统:Ubuntu 20.04.2 LTS 下载 x264 1$ git clone https://code.videolan.org/videolan/x264.git 编译 so 查看支持的命令 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686 ...
阅读全文 »