0%

CMake是一个跨平台的编译构建工具,可以用简单的语句来描述所有平台的编译过程。他能够输出各种各样的MakeFile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

CMake的学习资料较少,只能通过github的各种例子进行学习。不过仍然建议在学习之前看一下《CMake实践》这本中文书,本CMake系列是依据github上的cmake-examples进行翻译总结。 英文github地址

本文会记录一些音视频中常见的基本概念。音频技术是为了记录、存储和回放声学现象才发明的,最早能记录声音恐怕就是留声机了。当人类有了记录以及存储声音的能力之后,就迎来了模拟信号到数字信号的转换,所以如何记录以及存储声音会涉及到很多概念,理解这些概念往往对音视频开发比较重要。

如何让 SurfaceView 或者 TextureView 实现圆角呢?这篇文章正好解决此问题,转载一手。其实主要是基于 ViewOutlineProvider 这个组件专门用于裁剪 View 的边界,注意使用 ViewOutlineProvider 时必须API >= 21。不光可以实现圆角裁剪,还可以实现轮廓、阴影等很多效果,这个如果后面用到了再补充。

最近拉女朋友入steam的坑,一起玩Don’t starve together的时候发现游戏玩到后期总是会变的非常不流畅,经过测试后排除网络问题,主要是因为联机玩饥荒时创建世界的那台主机因为需要同时处理画面和世界的刷新,玩到后期主机要处理的太多,其他联机的用户就会卡顿。为了解决这个问题我也是头疼了很久,最后发现在主机上搭建一个独立服务器,所有人都再连接到这个独立服务器上,卡顿问题就能很好的解决了。当然这个独立服务器并不需要一台独立的电脑,只需要一起玩游戏的某个人开一个独立服务器,大家再连接到这个独立服务器里,就不会卡顿了。

Android10以及以上的版本提供了分区存储机制,为了让用户更好地管理自己的文件并减少混乱,此类应用只能访问外部存储空间上的应用专属目录,以及本应用所创建的特定类型的媒体文件。简单解释就是:Android 10 开启分区存储后,应用在有权限的情况下也无法随便访问其他外部存储空间中的公有文件夹了,应该怎么办呢?

Bitmap 是一个吃内存的大家伙,所以我们需要养成一个好的习惯,才能更好的驾驭 Bitmap,让其对内存的占用变得合理起来。在这里,主要说明一下:什么时候需要释放 Bitmap,如何释放 Bitmap 占用的内存。

本篇文章来看看基于角色的权限控制 —— RBAC(Role-Based Access Control),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样就构造成了 『用户-角色-权限』的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般是多对多的关系。理解了 RBAC 之后,再通过Spring Security oAuth2来实现基于 RBAC 的自定义认证。

《Spring Security oAuth2(一)》 中主要是oAuth的一些基本概念与四种认证方式,现在就正式开始完成几个主要示例,快速上手Spring提供的Spring Security oAuth2。网上很多示例教程都是使用 JWT(JSON Web Tokens)来管理Token,于是很多人认为oAuth2就应该用JWT来管理Token,其实这是非常错误的想法,后面我会专门就使用 JWT 这个问题进行讨论,看看 JWT 的最佳使用场景。