- 博客(25)
- 收藏
- 关注
转载 OpenMax在Android上的实现
http://blog.youkuaiyun.com/xietao_live_cn/article/details/6423277摘要:本文简要介绍了OpenMax 的集成层,并阐述了其在Android上的实现和运行过程。关键字:OMX, 多媒体框架, IL, Android, Stagefright1、OpenMax 集成层介绍OpenMax是一个多媒体应用程序的框架标准。它自上
2013-06-07 11:26:03
676
转载 OMX 移植解码器
移植个解码器而已,没必要还非得自己写个播放器吧参考libstatefright/codecs目录里的代码,封装实现start、stop、read三个接口就可以了程序的流程是播放器打开文件,得到输入流 ,输入流传递给解码器, 解码器解码, 解码器输出流, 输出流来到java端,java端调用SurfaceView绘图.statefrightPl
2013-06-07 11:22:13
1215
翻译 Android 代码名字-版本号-API级别-NDK版本对应关系
源文:http://source.android.com/source/build-numbers.htmlAPI级别与NDK的对应关系如下:Code nameVersionAPI level(no code name)1.0API level 1(no code name)1.1
2013-06-07 10:43:34
1381
转载 Android Code 和 Kernel下载方法
1.依次执行以下命令,下载Android Code$ mkdir ~/bin$ PATH=~/bin:$PATH 下载Repo script$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo
2013-06-07 10:39:18
1017
转载 Android4.0.1中各个Player的功能
1. Android4.0.1中默认定义了4个真正的Player,具体情况如下:[cpp] view plaincopystatic sp createPlayer(player_type playerType, void* cookie, notify_callback_f notifyFunc) {
2013-06-07 10:37:17
662
转载 usleep的--系统调用流程 Android4.0.1
1.由于在不同的硬件平台上经常遇到usleep不准确的问题,比如usleep(2*1000),结果sleep了10ms,是不是有点过分,测试代码如下:[cpp] view plaincopy#include #include int main(int argc,char **argv) {
2013-06-07 10:35:53
6620
转载 试探Galaxy的音频设计框架
之前转载过一篇文章-智能手机音频系统概述,描述了手机音频系统设计框图。实际上那是一个简单的做法,应用中有较大的局限性。那么一个完善的音频框架应该是什么样的呢?这两天根据Android4.0源码的一些线索,找到了相应的硬件资料,摘录下来。注:以samsung tuna方案(即galaxy nexus)为例。audio_hw在ANDROID音频系统散记之
2013-06-06 15:49:03
675
转载 智能手机音频系统概述
音频系统概述专业术语:[plain] view plaincopyASLA - Advanced Sound Linux Architecture OSS - 以前的Linux音频体系结构,被ASLA取代并兼容 Codec - Coder/Decoder
2013-06-06 15:28:40
536
转载 下载编译android kernel
在ubuntu10.04中用git和repo获得的 android源码目录中没有kernel目录, kernel需要我们在重新下载。编译linux内核映像a)准备交叉编译工具链android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。注意:虽然Prebuilt下包含了交叉编译工具,但是编译时有可能会出现“/bin/sh: arm-e
2013-06-06 14:26:49
537
转载 ANDROID4.0音频系统HAL初探
转自http://blog.youkuaiyun.com/sepnic/article/details/6978484一、代码模块位置1、AudioFlinger[plain] view plaincopyframeworks/base/services/audioflinger/
2013-06-06 13:57:17
3987
转载 android IPC通信机制中BBinder与BpBinder的区别
刚开始看android的IPC通信机制,BBinder与BpBinder这两者容易混淆。其实这两者是很好区分,对于service来说继承了BBinder(BnInterface)因为BBinder有onTransact消息处理函数,而对于与service通信的client来说需要继承BpBinder(BpInterface),因为BpBinder有消息传递函数transcat。
2013-06-04 15:26:22
1668
转载 Andriod 实现自己的Service
如果是纯C++程序的话,肯定得类似main_MediaService那样干了。int main(){ sp proc(ProcessState::self());sp sm = defaultServiceManager();sm->addService(“service.name”,new XXXService());ProcessState::self()->st
2013-06-04 15:17:21
680
转载 GStreamer MP3
本文介绍如何使用GStreamer 编写一个简单的MP3播放器。1,需要使用mad解码插件,因此需要先安装gstreamer0.10-plugins-ugly2,编写mp3播放器下面来看看如何利用GStreamer框架提供的组件,来实现一个简单的MP3播放器。数据源元件负责从磁盘上读取数据,过滤器元件负责对数据进行解码,而接受器元件则负责将解码后的数据写入声卡。如果想要在程序中应用
2013-06-03 10:27:48
1034
转载 Ubuntu下构建gstreamer开发环境
1,Ubuntu已经安装了gstreamer库,因此只需要再安装几个开发库即可,是libstreamer0.10-0libstreamer0.10-devlibstreamer0.10-0-dbg在新立得里选中应用即可2,测试gstreamer开发库#include gst/gst.h>int main (int argc,char *arg
2013-06-03 10:12:35
680
转载 Android Audio System 之三: AudioPolicyService 和 AudioPolicyManager
转自http://blog.youkuaiyun.com/droidphone/article/details/5949280引言 AudioPolicyService是Android音频系统的两大服务之一,另一个服务是AudioFlinger,这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks/base/media/mediaserver/
2013-05-31 18:17:05
448
原创 popcount或者hamming weight(二进制1的个数问题)
这是一道《编程之美-微软技术面试心得》中的题目,《编程之美》中给出了五种解法,但是实际上从 Wikipedia 上我们可以找到更优的算法。这道题的本质相当于求二进制数的 Hamming 权重,或者说是该二进制数与 0 的 Hamming 距离,这两个概念在信息论和编码理论中是相当有名的。在二进制的情况下,它们也经常被叫做 population count 或者 popcou
2013-05-31 18:11:22
1028
转载 Android Audio System 之二:AudioFlinger
转自http://blog.youkuaiyun.com/droidphone/article/details/5951999引言 AudioFlinger是Android音频系统的两大服务之一,另一个服务是AudioPolicyService,这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks/base/media/mediaserver/
2013-05-31 16:36:13
466
转载 Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据
引子Android Framework的音频子系统中,每一个音频流对应着一个AudioTrack类的一个实例,每个AudioTrack会在创建时注册到AudioFlinger中,由AudioFlinger把所有的AudioTrack进行混合(Mixer),然后输送到AudioHardware中进行播放,目前Android的Froyo版本设定了同时最多可以创建32个音频流,也就是说,Mixe
2013-05-31 16:21:15
814
转载 Android中的2D引擎skia之 -- SkBitmap的内存管理分析
Android使用的2D图形引擎skia,是一个高效的2D矢量图形库,google已经把skia开源:http://code.google.com/p/skia/。 SkBitmap是skia中很重要的一个类,很多画图动作涉及到SkBitmap,它封装了与位图相关的一系列操作,了解它的内存管理策略有助于我们更好的使用它,了解它的初衷是要想实现对skia中的blitter进行硬件加速
2013-05-31 16:00:09
1014
转载 Ashmem 内存分析
http://blog.youkuaiyun.com/long19851105/article/details/7287001android中调用ashmem的地方很多,一个dalvik中的例子:[cpp] view plaincopyvoid *dvmAllocRegion(size_t byteCount, int prot, const char
2013-05-31 15:40:40
997
转载 Android 本地代码中的LIKELY和UNLIKELY宏
转自http://blog.youkuaiyun.com/droidphone/article/details/5984255阅读Android Frameworks中的C++代码时,经常会碰到在条件判断语句中使用了LIKELY和UNLIKELY这两个宏,找到这两个宏的定义如下:[c-sharp] view plaincopy#d
2013-05-31 15:19:49
436
转载 Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
转自http://blog.youkuaiyun.com/DroidPhone/article/details/5972568 SurfaceFlinger在系统启动阶段作为系统服务被加载。应用程序中的每个窗口,对应本地代码中的Surface,而Surface又对应于SurfaceFlinger中的各个Layer,SurfaceFlinger的主要作用是为这些Layer申请内存,根据应用程序
2013-05-31 15:13:50
460
转载 surfaceflinger 工作流程分析
转自:http://blog.youkuaiyun.com/droidphone/article/details/5982893SurfaceFlinger继承了Thread类,自然也继承了Thread类的threadLoop方法,SurfaceFlinger工作线程的主代码都在threadLoop()方法中。工作线程启动后,基类Thread会循环地调用threadLoop方法,Surfa
2013-05-31 14:31:59
908
转载 Pmem使用小结
转自:http://blog.youkuaiyun.com/long19851105/article/details/6600452基本原理Android Pmem是为了实现共享大尺寸连续物理内存而开发的一种机制,该机制对dsp,gpu等部件非常有用。Pmem相当于把系统内存划分出一部分单独管理,即不被linux mm管理,实际上linux mm根本看不到这段内存。Pmem与A
2013-05-31 14:16:17
732
原创 卷首
为什么要开一个blog呢?长期以来,总有一种愿望,想将自己知道的东西告诉那些想知道的人,特别是像我这样的菜鸟。因为那种极力想要知道,却经过努力而未果的感觉太难受了,有时真的想放弃。但是真正的计算机人又不会放弃,所以长期处于这样一种似乎无助、焦虑的状态,实在很郁闷!更搞笑的是“募然回首,那人却在灯火阑珊处”,百般求索,原来也许只是一点即会。故,在程序员的王国里借一点空间,写下个人的所得。
2006-03-28 13:42:00
690
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人