摘要: 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧。它可以列出当前类中的所有方法及属性,你只需输入你想 阅读全文
posted @ 2013-10-22 23:05 Rosepotato 阅读(233) 评论(0) 推荐(0) 编辑
摘要: volatile的作用 2006-10-23 13:44:21 大 中 小 关键在于两个地方: 1. 编译器的优化 (请高手帮我看看下面的理解)在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致举一个不太准确的例子:发薪资时,会计每 阅读全文
posted @ 2013-09-30 16:22 Rosepotato 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 使用MediaPlayer播放音视频时,会创建AudioTrack对象用于播放音频数据。下面就来看看MediaPlayer创建AudioTrack的过程:1.创建AudioTrack对象MediaPlayer类中并没有直接创建AudioTrack,而是把创建AudioTrack对象的操作放在了MediaPlayerService类的内部类AudioOutput中具体代码是在 MediaPlayerService::AudioOutput::open函数中,通过新建(new)一个AudioTrack对象,赋给AudioOutput类的成员变量mTrack来实现的。mTrack是AudioTrac 阅读全文
posted @ 2013-09-25 13:54 Rosepotato 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/ameyume/article/details/7618820播放声音可以用MediaPlayer和AudioTrack,两者都提供了java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。 其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在framework层创建对应的音频解码器。 而AudioTrack只能播放已经解码的PCM流,如果是文件的话只支持wav格式的音频文件,因为wav格式的音频文件大部分都是PCM流。AudioTrac 阅读全文
posted @ 2013-09-25 13:52 Rosepotato 阅读(438) 评论(0) 推荐(0) 编辑
摘要: SystemServer的启动 frameworks/base/services/java/com/android/server/SystemServer.java: run() 其中调用ActivityManagerService.installSystemProviders(), 最终会调用到frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/下 的各个content providers的onCreate()函数,初始化数据库内容。。。=========================== 阅读全文
posted @ 2013-09-25 12:32 Rosepotato 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 前文仅了解了overlay HAL的架构,下面继续看看系统层是如何调用Overlay模块。1、测试代码frameworks/base/libs/surfaceflinger/tests/overlays/overlays.cpp提供了一个简单的overlay调用流程,可惜这个测试程序有错误, 在sp surface = client->createSurface(getpid(), 0, 320, 240, PIXEL_FORMAT_UNKNOWN, ISurfaceComposer::ePushBuffers);这句话编译不过去,错误在Surface的申请,和overlay无关。我们来 阅读全文
posted @ 2013-09-24 17:46 Rosepotato 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 1 overlay可能支持的颜色格式/* possible overlay formats可能支持的颜色格式 */enum { OVERLAY_FORMAT_RGBA_8888 = HAL_PIXEL_FORMAT_RGBA_8888, OVERLAY_FORMAT_RGB_565 = HAL_PIXEL_FORMAT_RGB_565, OVERLAY_FORMAT_BGRA_8888 = HAL_PIXEL_FORMAT_BGRA_8888, OVERLAY_FORMAT_YCbCr_422_SP = HAL_PIXEL_FORMAT_YCbCr_422_SP, OVER... 阅读全文
posted @ 2013-09-24 17:43 Rosepotato 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 最近在做0718的framebuffer驱动,fb驱动本身还是比较简单的,但重要的是需要按照android实现fb驱动的overlay特性,因此转一些关于android overlay的文章,以供以后参考。转载至:http://blog.csdn.net/yili_xie/archive/2009/11/12/4803527.aspxAndroid Display System --- Surface Flinger SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统 范围内的surface comp. 阅读全文
posted @ 2013-09-24 17:36 Rosepotato 阅读(894) 评论(0) 推荐(0) 编辑
摘要: 转自 http://www.cnblogs.com/riky/archive/2007/04/07/704298.htmlUML类图关系大全1、关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。使用ROSE 生成的代码是这样的:classC1 ...{ public: C2*t 阅读全文
posted @ 2013-09-24 16:23 Rosepotato 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 第二部分 MediaPlayer的接口与架构2.1 整体框架图 MediaPlayer的各个库之间的结构比较复杂,可以用下图的表示 在各个库中,libmedia.so位于核心的位置,它对上层的提供的接口主要是MediaPlayer类,类libmedia_jni.so通过调用MediaPlayer类提供对JAVA的接口,并且实现了android.media.MediaPlayer类。 libmediaplayerservice.so是Media的服务器,它通过继承libmedia.so的类实现服务器的功能,而libmedia.so中的另外一部分内容则通过进程间通讯和libmediaplaye.. 阅读全文
posted @ 2013-09-23 15:14 Rosepotato 阅读(1189) 评论(0) 推荐(1) 编辑