
Android
xiaoshi_xiaoshi
这个作者很懒,什么都没留下…
展开
-
Android SurfaceFlinger中的Layer,LayerDim,LayerBlur,LayerBuffer
应用程序中不同类型的Surface,在FrameWorks本地层的SurfaceFlinger中,分别对应着不同的Layer类,本文主要是讨论这几种Layer的实现和差异。视觉效果下面几张图片分别表示了不同Layer产生的视觉效果:Layer对应普通的窗口LayerDim会使他后面的窗口产生一个变暗的透明效果LayerBlur在LayerDim的基础上,背景会产生模糊的效果转载 2011-12-02 09:33:16 · 2171 阅读 · 0 评论 -
stagefright框架(二)- 和OpenMAX的運作
Stagefright的編解碼功能是利用OpenMAX框架,而且用的還是OpenCORE之OMX的實作,我們來看一下Stagefright和OMX是如何運作的。(1) OMX_InitOMXClient mClient;AwesomePlayer::AwesomePlayer(){ mClient.connect();}st转载 2011-12-06 16:01:16 · 418 阅读 · 0 评论 -
An overview of Stagefright player
There is a new playback engine implemented by Google comes with Android 2.0 (i.e, Stagefright), which seems to be quite simple and straightforward compared with the OpenCORE solution.MediaEx转载 2011-12-06 14:57:32 · 678 阅读 · 0 评论 -
stagefright框架(三)-選擇Video Decoder
在《Stagefright (1) – Video Playback的流程》中,我們並沒有詳述Stagefright是如何根據影片檔的類型來選擇適合的video decoder,現在,就讓我們來看一看。(1) Video decoder是在onPrepareAsyncEvent中的initVideoDecoder被決定的OMXCodec::Create()會回傳video de转载 2011-12-06 18:08:07 · 362 阅读 · 0 评论 -
stagefright框架(五)-Video Rendering
AwesomePlayer::onVideoEvent除了透過OMXCodec::read取得解碼後的資料外,還必須將這些資料(mVideoBuffer)傳給video renderer,以便畫到螢幕上去。(1) 要將mVideoBuffer中的資料畫出來之前,必須先建立mVideoRenderervoid AwesomePlayer::onVideoE转载 2011-12-06 18:22:11 · 343 阅读 · 0 评论 -
Android 图形系统剖析
Android 中的图形系统采用 Client/Server 架构。Server (即SurfaceFlinger) 主要由 C++ 代码编写而成。Client 端代码分为两部分,一部分是由 Java 提供的供应用程序使用的 API,令一部分则是用 C++ 写成的底层实现。下图概要介绍了 Android 图形系统的架构以及使用的主要组件。SurfaceFlingerSurfaceF转载 2011-12-19 14:15:05 · 632 阅读 · 0 评论 -
repo 命令的用法
下载 repo 的地址: http://android.git.kernel.org/repo ,可以用 wgethttp://android.git.kernel.org/repo 或者 curl http://android.git.kernel.org/repo >~/bin/repo 来下载 repo , chmod a+x ~/bin/repo 用repo sync转载 2011-12-20 12:17:28 · 602 阅读 · 0 评论 -
详解Android Surface系统
转自网址:http://mobile.51cto.com/android-259922.htm------------------------------------------------------------------------------------------------------------------------------------------------转载 2011-12-23 15:37:07 · 769 阅读 · 0 评论 -
android surfaceflinger研究----Surface机制
转自 :http://blog.youkuaiyun.com/windskier/article/details/70416101. Surface机制的静态关系 将这一部分叫做Surface机制,是有别于SurfaceFlinger而言的,android的图形系统中,作为C/S模型两端的WMS和SurfaceFlinger是图形系统业务的核心,但是不把WMS和SurfaceFlinger中转载 2011-12-26 17:52:02 · 723 阅读 · 0 评论 -
android surfaceflinger研究----显示系统
转自:http://blog.youkuaiyun.com/windskier/article/details/7030732一. android显示系统的建立 我们看SurfaceFlinger的定义就知道,它其实是一个Thread, 因此SurfaceFlinger的初始化工作就理所当然的放在了SurfaceFlinger线程中,详见readyToRun()@Surfa转载 2011-12-26 16:48:05 · 751 阅读 · 0 评论 -
android surfaceflinger研究----SurfaceFlinger loop
转自 :http://blog.youkuaiyun.com/windskier/article/details/7060995 SurfaceFlinger 是一个thread,运行在system_server进程中,并且其threadLoop()方法的返回值为true,因此它是一个循环的loop。这样保证了SurfaceFlinger业务的循环周期性。 首先,先来个综转载 2011-12-27 10:37:23 · 1300 阅读 · 1 评论 -
Android Display System --- Surface Flinger
Android Display System --- Surface Flinger SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统 范围内的surface composer 功能,它能够将各种应用 程序的2D 、3D surface 进行组合。在具体讲SurfaceFlinger 之前转载 2011-12-05 18:21:12 · 480 阅读 · 0 评论 -
stagefright框架(六)-Audio Playback的流程
到目前為止,我們都只著重在video處理的部分,對於audio卻隻字未提。這篇文章將會開始audio處理的流程。Stagefright中關於audio的部分是交由AudioPlayer來處理,它是在AwesomePlayer::play_l中被建立的。(1) 當上層應用程式要求播放影音時,AudioPlayer同時被建立出來,並且被啟動statu转载 2011-12-06 18:50:24 · 394 阅读 · 0 评论 -
Android SurfaceFlinger中的工作线程:threadLoop()
SurfaceFlinger继承了Thread类,自然也继承了Thread类的threadLoop方法,SurfaceFlinger工作线程的主代码都在threadLoop()方法中。工作线程启动后,基类Thread会循环地调用threadLoop方法,SurfaceFlinger的threadLoop()主要是要完成系统中各个Layer(Surface)进行混合(compose),然后不停地把一转载 2011-12-02 10:10:06 · 509 阅读 · 0 评论 -
SurfaceFlinger启动过程(图)
文章出处:http://danielwood.cublog.cn作者:Daniel Wood 这里主要是SurfaceFlinger的readToRun函数的通过DisplayHardware初始化Framebuffer,其他的初始化EGL,OpenGl ES以及threadLoop都没有分析。基于Android 2.2转载 2011-12-02 16:25:42 · 402 阅读 · 0 评论 -
Android display system overview
文章出处:http://danielwood.cublog.cn作者:Daniel Wood------------------------------------------------------------ Android的图形显示系统包括2D和3D两部分。2D部分主要由开源的2D向量图形处理函数库—Skia实现。3D部分由Opengl ES实现。Opengl E转载 2011-12-02 16:10:41 · 922 阅读 · 0 评论 -
Android 基本空间划分
Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成。 从上图可以看到:Android Applications,Application Framework,Dalvik Virtual Machine,Linux。如果将Android泛化,我们可以将系统划分成两部分: 但是为了研究的方便我们先看最为本质的三层,上面是A转载 2011-12-05 13:24:08 · 569 阅读 · 0 评论 -
Android GDI之SurfaceFlinger
Android GDI之SurfaceFlingerSurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构。SufaceFlinger主要功能是:1) 将Layers (Surfaces) 内容的刷新到屏幕上2) 维持Layer的Zorder序列,并对Layer最终输出做出裁剪计算。3) 响应Clien转载 2011-12-05 13:33:40 · 413 阅读 · 0 评论 -
droid GDI 之SurfaceFlinger之动态结构示意图
SurfaceFlinger对象建立过程示意 1 SurfaceSession的建立 客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,如何没有建立,将会转载 2011-12-05 13:43:22 · 446 阅读 · 0 评论 -
智能指针和弱引用
智能 指针 和弱引用在android 中可以广泛看到的template class Sp 句柄类实际上是android 为实现垃圾回收机制的智能指针。智能指针是c++ 中的一个概念,因为c++ 本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为了实现内存( 动态存储区) 的安全回收,必须对指针进行一层封装,而这个封装就是智能指针,其实说白了,智能指针就是具备指针功能同时提供安全转载 2011-12-05 16:42:07 · 395 阅读 · 0 评论 -
Android-StageFright之数据流的封装和AwesomePlayer流程
数据流的封装一、由数据源DataSource生成MediaExtractor。通过MediaExtractor::Create(dataSource)来实现。Create方法通过两步来生成相应的MediaExtractor:1、通过dataSource->sniff来探测数据类型2、生成相应的Extractor:if (!strcasecmp(mime, MEDIA_MIM转载 2011-12-06 14:21:17 · 1486 阅读 · 0 评论 -
stagefright框架(一)Video Playback的流程
在Android上,預設的多媒體框架(multimedia framework)是OpenCORE。OpenCORE的優點是兼顧了跨平台的移植性,而且已經過多方驗證,所以相對來說較為穩定;但是其缺點是過於龐大複雜,需要耗費相當多的時間去維護。從Android 2.0開始,Google引進了架構稍為簡潔的Stagefright,並且有逐漸取代OpenCORE的趨勢 (註1)。[圖转载 2011-12-06 15:28:42 · 454 阅读 · 0 评论 -
stagefright框架(四)-Video Buffer傳輸流程
這篇文章將介紹Stagefright中是如何和OMX video decoder傳遞buffer。(1) OMXCodec會在一開始的時候透過read函式來傳送未解碼的data給decoder,並且要求decoder將解碼後的data傳回來status_t OMXCodec::read(...){ if (mInitialBuffe转载 2011-12-06 18:15:07 · 387 阅读 · 0 评论 -
Android系统体系结构概要
转自:编程艺术家Poechant的优快云博客 http://blog.youkuaiyun.com/poechant1、Android Architecture Overview2、四层结构应用层(Application Level),应用框架层(Application Frameworks),系统运行库层(Libraries an转载 2012-02-08 13:39:46 · 534 阅读 · 0 评论