分类目录归档:Android

Android: 直接在bitmap上绘制一个立方体

我在读书的时候,对开源的多媒体播放器特别感兴趣,如mplayer, ffmepg, videolan,当然VirtualDub也是其中之一。代码写得不怎么样,但还是很着迷于那些牛人写的开源软件,没事的时候就找个virtual studio编译,单步调试什么的。当时,出现了mp3, mp4, 还有彩屏手机,它们的运算能力有限,只能支持特定格式的视频文件,所以当时视频转换软件就非常火,VirtualDub在当时也很火了一把。对于VirtualDub中那个about界面用软件绘制的立方体也特别感兴趣,怎么做到的啊。 我们先看一下VirtualDub的about界面是怎么样的: 可以看到当前的版本已经 … 继续阅读Android: 直接在bitmap上绘制一个立方体

Android: 格式为RGB_565的bitmap问题

一般我们写代码的时候,创建的bitmap格式都为ARGB_8888, 包含alpha通道,并且可以获得最好的图片质量。但是有些时候,我们还是会需要使用到格式为RGB_565的bitmap, 以减少需要处理的数据量。   那么创建格式为RGB_565的bitmap有什么问题呢,先看下面一段代码: #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h> struct BitmapFileHeader { uint16_t bfType; u … 继续阅读Android: 格式为RGB_565的bitmap问题

Brillo开发: 关于google breakpad – macrodump

在google breakpad中,除了有minidump之外,还有一个macrodump。这两个的区别的,minidump会将进程的dump信息保存到文件或者是发送到服务器。而macrodump的功能就是作了debuggerd的一个替代品:会将dump信 息输出到logcat中。与debuggerd的区别是由于被dump的进程的可执行文件(exe & .so)没有unwind table, 所以使用macrodump输出的信息必需通过专门的工具进行处理。 由于可执行文件没有unwind table, 所以文件的大小可以再小一些。 引用文档:https://code.google.co … 继续阅读Brillo开发: 关于google breakpad – macrodump

Android: google nexus设备获取串口log

买Nexus系列手机的好处不仅仅是当google发布新版本的系统时,你的手机就有可以最先收到Android新版本的推送。同时,你也可以用它来做Android系统的开发与定制:可以修改native, HAL, framework, app的代码,完全定制你的手机。当然,你也可以修改kernel的代码,修改驱动代码,新增模块。 是的,你可以从android.googlesource.com上下载到kernel的源代码, 如nexus 4/5/6对应的kernel的代码:https://android.googlesource.com/kernel/msm/+refs 要想调试kernel的代码,当 … 继续阅读Android: google nexus设备获取串口log

Brillo开发: 关于google breakpad

对于Android程序,我们一般使用java语言进行开发,当程序出现uncaught exception的时候,我们可以通过Thread.setDefaultUncaughtExceptionHander()或者是Thread.setUncaughtExceptionHandler() 方法来捕获相关的异常,并记录与之相关的信息并上传到服务器进行分析。如果Android程序中包含native code或者说当相关的native code出现问题的时候,我们怎么才能将相关的call stack信息保存起来以便之后进行分析呢? 同时可以看到,我们在编译Brillo项目的时候,在生成可执行文件(ex … 继续阅读Brillo开发: 关于google breakpad