0%

完整 ES6 教程详见 《ES6 标准入门》一书。 ECMA262 官网地址。本文发布时,官网最后更新时间为:2023/10/12 基础 JavaScript 需要注意的内容this 关键字绑定 this 的方法Function.prototype.call()函数实例的 call 方法,可以指定函数内部 this 的指向(即函数执行时所在的作用域),然后在所指定的作用域中,调用该函数。 12345678var obj = {};var f = function () { return this;};f() === window // ...
阅读全文 »

环境介绍本文所使用的运行环境如下: Kotlin 版本:1.9.10 Coroutine 版本:1.7.3 OpenJDK 版本:17.0.7+10-b829.16 x86_64 IDE:IntelliJ IDEA 2023.2 (Ultimate Edition) 术语翻译 flow:流 emit:发送,发射(本文统一翻译成“发送”) emitter:发射器 collect:收集 collector:收集器 terminal flow operators:末端流操作符,终端流操作符(本文统一翻译成“末端流操作符”) intermediate flow operators:中端流操作符,中间流 ...
阅读全文 »

本文还在持续更新中,目前仅为随笔状态,内容顺序尚未整理。仅作为初学速查阶段。 官方常用网站及工具: Material Design (Material 3) Material Theme Builder 术语翻译 compose:组合 composition:组合 composable:可组合、可组合项 recompose:重组 recomposition:重组 state holders:状态容器 关键术语 组合:对 Jetpack Compose 在执行可组合项时所构建界面的描述。 初始组合:通过首次运行可组合项创建组合。 重组:在数据发生变化时重新运行可组合项以更新组合。 状态容器:用于 ...
阅读全文 »

阅读指导本文仍在进一步完善中…(要详解的内容实在是太多了,之后有可能分成多个文章讲解,写在一篇文章里实在是太长太长了。) 本文并不是讲解“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.264H.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 以及其它信息被封装在 conta ...
阅读全文 »

编译环境 操作系统: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 (cl ...
阅读全文 »

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