用cflow分析ffmpeg.c源文件中的函数调用图, 函数调用图(call graph,也称为call multigraph),属于控制流图,可以展示程序中函数之间的关系。函数调用图可以由动态程序分析产生(动态函数调用图),也可以由静态程序分析产生(静态函数调用图)
Video Buffer Verifier
The Video Buffering Verifier (VBV) is a theoretical MPEG video buffer model, used to ensure that an encoded video stream can be correctly buffered, and played back at the decoder device.
Linux core dump 分析
有时,直接调试应用程序是不可能的。在这些情况下,可以在应用程序终止时收集有关该应用程序的信息,然后对其进行分析。识别应用程序中崩溃问题的最有效方法之一是通过分析 Core dump文件。
Android NDK 使用 Address Sanitizer
从 API 级别 27 (Android O MR 1) 开始,Android NDK 支持 Address Sanitizer(也称为 ASan)。ASan 是一种基于编译器的快速检测工具,用于检测C/C++代码中的内存错误。ASan 的 CPU 开销约为 2 倍,代码大小开销在 50% 到 2 倍之间,并且内存开销很大。
注意: ASan在Android 平台上不支持检测内存泄漏!!!
理解C/C++编译
编译和链接是在C/C++软件开发过程中经常发生的两个非常基本的过程,为什么C/C++源代码分割成头文件和源文件? 编译器是如何看到每个部分的? 这如何影响编译和链接? 还有许多类似的问题,无论是在设计C/C++应用程序、为其实现新特性、试图解决bug(尤其是某些奇怪的bug),还是试图让C和C/C++代码协同工作,了解如何编译和链接将节省大量时间。
Unity-Android-Plugin
Android-Studio中-gitignore的配置
如果你使用git 作版本控制工具,那么你可以轻松的使用android studio / Intellij IDEA 的.gitignore 插件来生成一份可以将这些文件排除在外的.gitignore 过滤清单。
Mac下配置多个SSH-Key
Android消息机制
消息驱动模式是android提供的用来更新UI的一套机制,即消息处理的机制,类似于Windows的消息机制,所有的外部来的按键消息、触屏消息、各种系统Intent、广播等都转化为内部消息,然后在主线程中分发处理。在Windows的消息处理模型中,存在一个系统消息队列,这个队列是整个进程的核心,几乎所有的动作都要转化成消息,然后放在队列中,消息的处理只能在主线程中完成。Android的消息处理则不太一样。Android没有全局的消息队列,消息队列是和某个线程关联在一起的。每个线程最多有一个消息队列,消息的取出和处理在线程中完成。