在阅读SurfaceFlinger HardwareComposer以及gralloc相关代码的过程中,我们经常会遇到native_handle private_handle_t ANativeWindowBuffer ANativeWindow GraphicBuffer Surface等等一系列和memory相关的struct和class,他们相互之间到底是什么区别,又有什么联系呢?本文从struct/class的结构角度分析下上述类型之间的关联. 概括来说,native_handle pr…
Android手机适配是非常让人头疼的一件事,尤其是图片,android为了做到是适配提供了很多文件夹来存放不同大小的图片,比如:drawable-ldpi.drawable-mdpi.drawable-hdpi.drawable-xhdpi.drawable-xxhdpi等,其实同一张内容的图片放到上面不同的文件夹中是有区别的,可能你会问:如果在上述各个文件夹中都放置一张内容相同,尺寸不同的图片,那么系统会选择加载哪一张图片呢?这个问题,系统有内部的选择机制,简单来说:系统会选择最接近手机屏幕…
转自:http://hi.baidu.com/xiaofanqing/blog/item/8261ac114ab14f64cb80c435.html 我这里根据我个人的理解来讲讲我个人对这3个概念的理解.当然这里设计到通用的事件窗口模型等通用GUI设计,我这里就不打算讲了,纯粹从概念上来进行区分. 但在用户级别,程序员可能根愿意理解成为一个界面的载体.但仅仅是个载体,它本身并不负责任何绘制.Activity的内部实现,实际上是聚了一个 Window对象.Window是一个抽象类,它的具体是在an…
转自知乎用户的回答: 1. dpi是dot per inch,每英寸多少点,ppi是 Pixel per inch,每英寸像素数,针对显示器的设计时,dpi=ppi.ppi计算方法是长宽各自平方之和开方,除以对角线长度(单位英寸).原理可以自己画个矩形勾股定理算一算.2. ppi表示显示设备的点密度,dpi表示印刷品点密度.3. dip或dp,是安卓开发用的单位,1dp表示在屏幕点密度为160ppi时1px长度.因为安卓设备屏幕众多不可能为每个屏幕单独开发,所以用公式 px=dp*(ppi/16…
android中的EditView控件 EditText继承关系:View-->TextView-->EditText ,EditText是可编辑文本框 1.EditText默认情况下,光标会一直的闪动,有几种方法可以取消光标的闪动 (1)利用两个EditText,第一个设置宽和高都为0dp,这样运行的时候,光标落在第一个EditText上,显示出来的效果就是隐藏了光标. <EditText android:layout_width="0dp" android:lay…
Fence是一种同步机制,在Android里主要用于图形系统中GraphicBuffer的同步.那它和已有同步机制相比有什么特点呢?它主要被用来处理跨硬件的情况.尤其是CPU.GPU和HWC之间的同步,另外它还能够用于多个时间点之间的同步.GPU编程和纯CPU编程一个非常大的不同是它是异步的.也就是说当我们调用GL command返回时这条命令并不一定完毕了.仅仅是把这个命令放在本地的command buffer里.详细什么时候这条GL command被真正运行完毕CPU是不知道的,除非CPU使…
一.什么是Surface 简单的说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都要画在Surface的Canvas上(后面有原因解释).传统的view共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行. 在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen c…
传入一个surface,然后让openGL在surface上画图 window->view hierachy(DecorView是tree的root)->ViewRoot->Surface 某一个view->surfacesurfaceview是在view hierachy中embedded的surface 普通的是通过view访问surface window manager会通过layer协调各个surface画图到frame buffer中去 一个activity对应一个或多个…
一.前言 之前介绍了Android直播视频中一种视频源数据采集:摄像头Camera视频数据采集分析 中介绍了利用Camera的回调机制,获取摄像头的每一帧数据,然后进行二次处理进行推流.现在我们在介绍另外一种视频源类型,屏幕桌面视频数据源,这个就是录屏功能,这个在Android中的利用场景现阶段也是很多的,比如像斗鱼这些直播app,在录制游戏的时候用的还是比较多的,因为现在的移动游戏也那么火,游戏视频直播也是一个很不错的产业! 二.技术方案 下面先来分析一下Android中录制屏幕采用的方案有哪…
一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更重要的是学习技术,其实Android中的视频技术没什么说的,因为网上的资料很多,但是之前的视频技术大部分都出现在了视频播放,就是主流的视频播放器,那个最重要的一个技术就是视频的编解码,这个也会在后续文章中详细介绍视频的处理技术.但是现在直播的技术是在之前的视频技术上又有了一个要求就是视频录制,现在录…