`
ai_longyu
  • 浏览: 482223 次
社区版块
存档分类
最新评论
文章列表
转载时请注明出处和作者 文章出处:http://danielwood.cublog.cn 作者:Daniel Wood ------------------------------------------------------------ 以下将讲讲surfaceflinger的启动过程,可以结合启动过程图来了解。当然最关键是代码(Google Android 2.2),因为我讲的难免有错误之处。 由于工作需要,所以要了解surfaceflinger这一块,参考的资料也较多,已经无法追溯来源,所以参考文献如下:^_^ 参考文献: ...
转载时请注明出处和作者 文章出处:http://danielwood.cublog.cn 作者:Daniel Wood ------------------------------------------------------------ Android的图形显示系统包括2D和3D两部分。2D部分主要由开源的2D向量图形处理函数库—Skia实现。3D部分由Opengl ES实现。Opengl ES,OpenGL for Embedded Systems是Opengl的子集,是一种跨平台的专为嵌入式设计的图形库。而Opengl为了要做到跨平台,必须有一个和本地窗口系统交互并 ...
转载时请注明出处和作者 文章出处:http://danielwood.cublog.cn 作者:Daniel Wood --------------------------------------------------------------------------- 这里主要是SurfaceFlinger的readToRun函数的通过DisplayHardware初始化Framebuffer,其他的初始化EGL,OpenGl ES以及threadLoop都没有分析。 基于google2.2
默认开机LOGO会在液晶屏的左上脚显示一只小企鹅,分辨率为80*80,具体在 kernel/drivers/video/logo下会有logo_linux_clut224.ppm这幅图像,程序会 根据这幅图像生成logo_linux_clut224.c和logo_linux_clut224.o两个文件,最 终将小企鹅显示在液晶屏上。 这里我们需要修改开机画面,而且不限于仅显示80*80,如我们需要显示一幅 铺满LCD屏的图像,该怎么办呢? 为了以后还能恢复显示这个小企鹅,这里我们另外再添加一组数据用于显示全屏, 如果以后不用恢 ...
蓝牙耳机功能,也就是bluetooth headset /headfree profile,实现起来比想象的复杂。早期的蓝牙规范只定义了headset的profile, headset的实现原理是在hci层之上扩展一个接口,传输sco面向连接的同步音频数据包,限定音频流只能是单声道8k的话音级别的
View layers   在所有版本的Android中,views都有画到离屏缓冲的能力,这包括使用view的绘制cache,或使用Canvas.saveLayer().离屏缓冲,或者说层,有很多用处.你可以使用它们来为复杂的view动画或使用组合效果时提高性能.例如,你可以使用Canvas.saveLayer()实现淡出效果,这个方法会临时的把一个view画到一个layer中然后使用一个透明系数把它组合回屏幕上.   从Android3.0 (API level11)开始,你对何时以及如何通过View.setLayerType()方法来使用layer有了更多的控制能力.此方法有两个参数:你 ...
由于最近做的项目中也用到了这个功能,今天刚好实现了下,就趁现在有时间写篇博客分享下。在做的时候也参考了下别人的代码,毕竟站在巨人的肩膀上才会是自己更加强大。哈哈!先看看新浪的下拉更新是什么样的吧! OK,今天我们要实现的就是上面的下拉刷新功能。 首先实现下拉刷新的布局文件 layout/head.xml <?xml version="1.0" encoding="utf-8"?> <!-- ListView的头部 --> <LinearLayout xmlns:android="http ...
本文主要来自$ANDROID_SOURCE/system/init/readme.txt的翻译. 1 简述 Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得使用转义字符"\",如果在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来处理,这样做主要是为了避免一行的字符太长,与C语言中的含义是一致的。注释是 ...
对于Listview的分组我们再熟悉不过了,因为Android自带的通讯录中的联系人信息就是使用的ListView分组,最近项目中用到了这个功能。所以趁着周末有时间,也更新下一篇这样的博客,希望对大家能够有帮助。 其实对于分组的List ...
关于如何下载Android4.0源码,请查看我的博客内另一篇文章(同样是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 如何编译Android4.0源码请看: http://blog.csdn.net/flydream0/article/details/7046612 下面进入正题: 第一步:下载goldfish源码 在Android源码根目录下新建k
1 开始 1.1 初始化构建环境 这节主要是描述如何设置你的本地工作环境,怎么使用repo这个工具获取Android文件,怎么创建你机器上的文件。使用Linux或Mac Os才能构建Android源文件,Windows目前不支持. 注:源文件有6G大小。构 ...
  当硬加速被启用,Android框架利用一个新的绘制模式来把你的应用呈现到屏幕,这个模式利用了一个显示列表.要完全理解显示列表以及它如何影响你的应用,先要理解android如何在非硬加速下绘制View.下面的小节描述了软加速的和硬加速的绘制models. 软件绘制模式   在软件绘制模式,view按以下两步进行绘制: 1使整个View层级都变得无效 2绘制所有的View层级   任何时候一个应用需要更新部分UI时,它应在任何改变了内容的View上调用invalidate()(或它的任一变体)
de项目需要,要实现在Android中实现串口的收发功能,有几种方法可以参考使用。 1. 标准的Android HAL层思想,把串口的功能加入framework的API中(类似于android中sensor的实现) a. 确保驱动层中基于tty的串口驱动可以正常read、write、p ...
JNICC++C#Windows jbytearray转c++byte数组 C代码
  从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作.   启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制产生影响.出现的问题经常是不可见的,也可能是异常,或错误地显示了像素.为了避免这些问题,Android提供了在以下各级别上启用或禁止硬加速的能力: Application Activity
Global site tag (gtag.js) - Google Analytics