Posts

OpenGL 学习系列---基本形状的绘制

在之前的一篇博客中,讲述了 OpenGL 绘制一个点的流程及相关的代码,其中关于 OpenGL 程序编译部分都是可以在其他项目中接着复用的,接下来会讲到如何去绘制其他的基本图元。
2017-12-22
5 min read

OpenGL 学习系列---基础的绘制流程

避免图片丢失,建议阅读微信原文: https://mp.weixin.qq.com/s/H6p3cLGpKys5ihF7ymBhJw 终于要开始探索奇妙的 3D 世界了,OpenGL 搞起。
2017-12-22
12 min read

Python 函数式编程

函数式编程是一种编程范式,不同于之前的面向对象编程。它是面向数学的抽象,也就是说,这里的函数二字不再是我们编程语言中的函数,而是数学中的函数了。
2017-12-22
3 min read

Python 命令行参数解析工具 docopt

正如标题所言,docopt 是一个用来解析命令行参数的工具,当想要在 Python 程序后面附加参数时,就不需要再为此而发愁了。 docopt 是一个开源的库,代码地址:https://github.com/docopt/docopt。它在 README 中就已经做了详细的介绍,并且还附带了很多例子可供学习,这篇文章也是翻译一下 README 中内容……
2017-12-22
3 min read

FFmpeg 3.0 版本视频解码浅析

有了上一篇文章基础,这里就只关注 FFmpeg 如何解析的具体实践了。 在开始工程之前,第一步要做的就是编译 FFmpeg 源码,生成 Android 平台上使用的 so 库。 在生成完了之后,导入 Android 工程项目中,并且配置 CMake 文件,添加对应的库,就可以开始开发了。
2017-12-22
2 min read

音视频编解码的那些基础理论

最近在研究学习 FFmpeg,从网上参考了好多资料,其中最了不起的就当属——雷霄骅大神了,若没有他的博文,别说入门了,可能连门在哪里都不知道,在此还是要表达一下对雷神的敬佩和敬仰。 本文主要讲的是视频文件的解码,从视频文件的封装格式解码到原始数据格式,通过讲解涉及到的各种概念,从而理清整个思路和流程。
2017-12-22
3 min read

用 Rxjava 封装 Dialog 以及 RxBinding 实现简要分析

之前有写过一篇文章:用 RxJava 封装回调方法 CallBack。 RxJava 封装回调方法的大体思路就是:使用 Observable 的 create 方法来返回一个 Observable,在 create 方法内给事物设置回调接口,用 Observable 的 onNext 方法来接受回调接口所产生的内容。 这样一来,通过 onNext 方法就把事物的回调方法转换到 Rxjava 对应的事件流里面了,再可以通过其他操作符,如 Map、FlatMap 等对事件流进行相应的转换。
2017-12-22
4 min read

Android 布局加载之 LayoutInflater

Activity 在界面创建时需要将 XML 布局文件中的内容加载进来,正如我们在 ListView 或者 RecyclerView 中需要将 Item 的布局加载进来一样,都是使用 LayoutInflater 来进行操作的。 LayoutInflater 实例的获取有多种方式,但最终是通过(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)来得到的,也就是说加载布局的 LayoutInflater 是来自于系统服务的。
2017-12-22
5 min read

Android 插件换肤原理及源码分析

在学习安卓插件化开发的路上,有一处风景是肯定要观赏的,那就是基于插件的应用换肤了。
2017-12-22
6 min read

Android 6.0 Service 启动过程源码分析(一)

Service 组件也是 Android 四大组件之一,它的启动过程分为显示和隐式两种。对于隐式启动的 Service 组件来说,我们只需要它的组件名称;对于显示启动的 Service 组件来说,我们需要知道它的类名称。 Service 组件可以被 Activity 组件启动,也可以被其他的 Service 组件启动。同时,它既可以在启动它的 Activity 组件或者 Service 组件所在的应用程序中启动,也可以在一个新的应用程序进程中启动。
2017-12-22
10 min read