Android开发
文章平均质量分 66
MM-Graphics
这个作者很懒,什么都没留下…
展开
-
Android中的BatteryService及相关组件
BatteryService作为电池及充电相关的服务,它的实现非常简单:o 监听UEvent,读取sysfs里中的状态。实现了一个UEvent的观察者。uevent是Linux内核用来向用户空间主动上报事件的机制,对于JAVA程序来说,只实现UEventObserver的虚函数onUEvent,然后注册即可。 private UEventObserver mUEven转载 2011-12-16 20:52:36 · 909 阅读 · 0 评论 -
Sync Object in OpenGL (about GPU Fence)
Sync ObjectJump to: navigation,searchSyncObject Core in version4.4Core since version3.2Core ARB extensionARB_syncVendor extensionNV_fenceSyn转载 2015-02-08 15:23:06 · 3208 阅读 · 0 评论 -
GDB 调试Native Crash 总结
一 、 什么是Native Crash : 最简单的理解就是发生在Native世界里的异常,当然你也可以更直接一些,发生在lib库里异常。 常见的native crash有 SIG 7/11 等,尤其是这两个哥们,在新项目阶段的出场率还是非常高的,访问非法内存/内存对齐诸如此类。二、如何分析Native Crash: 发生nativeCrash的时候,通常可以从转载 2015-01-22 19:59:03 · 1496 阅读 · 0 评论 -
Android中的GraphicBuffer同步机制-Fence
http://blog.csdn.net/jinzhuojun/article/details/39698317Fence是一种同步机制,在Android里主要用于图形系统中GraphicBuffer的同步。那它和已有同步机制相比有什么特点呢?它主要被用来处理跨硬件的情况,尤其是CPU,GPU和HWC之间的同步,另外它还可以用于多个时间点之间的同步。GPU编程和纯CPU编程一个很大的不转载 2015-02-12 21:38:51 · 6758 阅读 · 0 评论 -
Android Synchronization Fences – An Introduction
In any system that employs the exchange of buffers betweenindependent buffer Producers and buffer Consumers, there is a need for a policyto control buffer life times (allocation/deallocation) and a po转载 2015-08-10 21:10:07 · 1642 阅读 · 0 评论 -
The Android ION memory allocator, DMABUF is mentioned as well
转自:http://blog.csdn.net/thegameisfives/article/details/7308458什么是ION ?我的理解就是google在android4.0引入的一种内存管理器,来替代之前各个芯片厂家自己的方案..以下是网上找到的: it has become clear that PMEM is considered obsolete and转载 2015-09-13 14:59:16 · 815 阅读 · 0 评论 -
DDMS调试native heap实战
第一步:setprop libc.debug.malloc 1。这里有四种prop可以设置,1是mem leak,5和10是内存越界,20是虚拟机。可悲的是5和10并没有被libc_malloc_debug库完美地支持,所以只有1好用。第二步,stop, start。这些操作都是在device shell里面做的。设备会快速重启。第三步,验证prop。getprop看看原创 2016-02-25 14:14:51 · 5523 阅读 · 0 评论 -
截取framebuffer中数据
一般情况下用两种方法都可以: 1. sudo adb shell gsnap /data/fb.jpg /dev/graphics/fb0截取当前显示的framebuffer(前台buffer),并且转换成fb.jpg保存起来。推荐使用这种方式。2. sudo adb shell "cat /dev/graphics/fb0 > /data/fb0"截取framebu转载 2014-05-21 20:40:20 · 5454 阅读 · 0 评论 -
Android bug——Launcher 0x506导致花屏问题
现象描述:在Android4.4中,概率极高会出现Launcher或者应用整个绘制成花屏、黑屏或者字体绘制成方块等问题,出现花屏问题的时候将会在hwui中打印0x506的错误。分析:通过log发现也只有hwui中出现0x506这个错误码,即hwui中当前绘图时使用的fbo是无效的。接着通过分析代码发现当前hwui中使用fbo的地方为LayerRenderer中,在Layer原创 2016-06-30 14:45:35 · 2654 阅读 · 0 评论 -
EGLImage与纹理
Using the EGL* Image ExtensionThe conventional way to copy an image into a texture is with either the glTexImage2D() orglTexSubImage2D() methods, but these methods are slow because of how they c转载 2016-07-13 10:19:42 · 5287 阅读 · 0 评论 -
Android中线程同步之Mutex与Condtion的用法
Android封装的同步类主要有MUTEX(AutoMutex)与Condition。本文分析如何使用他们,具体的实现参见《Android中线程同步之MUTEX与Condtion的实现》与《pthread之MUTEX与Condition用法》。Keywords: Mutex, Condition Variable, AutoLock/AutoMutex, Android关键字:互斥体、条件转载 2016-07-07 09:36:25 · 501 阅读 · 0 评论 -
Android createWindowSurface failed EGL_BAD_ALLOC 引起Crash的解决方案
createWindowSurface failed EGL_BAD_ALLOC先看下Log:[java] view plain copyW/Adreno-EGL﹕ 5493>: EGL_BAD_ALLOC E/libEGL﹕ eglMakeCurrent:784 error 3003 (EGL_BAD_ALLOC) I/转载 2016-08-05 11:34:45 · 10053 阅读 · 0 评论 -
surfaceflinger composer flow && mutex introduction
1.1.1 Android中的同步与互斥Android系统也提供了自己的同步互斥机制,不过任何技术的本质都是类似的,更多的是把这些本质的东西应用到符合自己要求的场景。目前Android封装的同步互斥类包括:· Mutex头文件在frameworks/native/include/utils/Mutex.h,因为实现与具体的平台有关,我们只关心如何使用它原创 2016-09-09 11:22:31 · 792 阅读 · 1 评论 -
Android用surface直接显示yuv数据(二)
研究了一段时间Android的surface系统,一直执着地认为所有在surface或者屏幕上显示的画面,必须要转换成RGB才能显示,yuv数据也要通过颜色空间转换成RGB才能显示。可最近在研究stagefright视频显示时发现,根本找不到omx解码后的yuv是怎么转换成RGB的代码,yuv数据在render之后就找不到去向了,可画面确确实实的显示出来了,这从此颠覆了yuv必须要转换成RGB才能转载 2016-08-29 17:01:07 · 5280 阅读 · 1 评论 -
Android中native_handle private_handle_t ANativeWindowBuffer ANativeWindow GraphicBuffer Surface的关系
在阅读SurfaceFlinger HardwareComposer以及gralloc相关代码的过程中,我们经常会遇到native_handle private_handle_t ANativeWindowBuffer ANativeWindow GraphicBuffer Surface等等一系列和memory相关的struct和class,他们相互之间到底是什么区别,又有什么联系呢?本文从st转载 2016-08-30 16:53:48 · 4050 阅读 · 0 评论 -
Android 4.4(KitKat)中的设计模式-Graphics子系统
原文地址:http://blog.csdn.net/jinzhuojun/article/details/17427491 本文主要从设计模式角度简单地侃下Android4.4(KitKat)的Graphics子系统。作为一个操作系统,Android需要考虑到灵活性,兼容性,可用性,可维护性等方方面面 ,为了达到这些需求,它需要良好的设计。因此,在Android源码中可以看到很多设转载 2016-08-31 15:47:56 · 877 阅读 · 0 评论 -
Android下打印调试堆栈方法总结以及strace工具使用
打印堆栈是调试的常用方法,一般在系统异常时,我们可以将异常情况下的堆栈打印出来,这样十分方便错误查找。实际上还有另外一个非常有用的功能:分析代码的行为。android代码太过庞大复杂了,完全的静态分析经常是无从下手,因此通过打印堆栈的动态分析也十分必要。Android打印堆栈的方法,简单归类一下 1. zygote的堆栈dump实际上这个可以同时dump jav转载 2016-08-24 17:53:46 · 4459 阅读 · 0 评论 -
Android图形子系统详解
Android的图形系统发展经历了通过CPU模拟图形操作,和GPU专门进行图形处理的阶段,因为这方面硬件技术发展很快,因此Android图形系统也在不断调整,以期提供更加快速流畅的UI体验。图形操作可以有两种方式实现:一是利用通用CPU模拟图形操作;二是利用GPU专门做图形操作。前者会增加CPU的负担,在现在高分辨率已经是普遍现象的时候,让通用处理器来完成大量的图形计算已经不现实。An转载 2014-08-30 13:40:16 · 2280 阅读 · 0 评论 -
颜色混合opengl--glBlendFunc函数
混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。要使用OpenG转载 2014-08-30 15:25:55 · 816 阅读 · 0 评论 -
Git - SVN Crash Course
Git - SVN Crash CourseWelcome to the Git version control system! Here we will briefly introduce you to Git usage based on your current Subversion knowledge. You will need the latestGit installed; Th转载 2012-03-02 15:25:27 · 1513 阅读 · 0 评论 -
MT6573的driver相关目录和文件
================================================================================================drivers debug---------------------------------------------------------------------------------------转载 2012-03-26 12:12:46 · 3663 阅读 · 1 评论 -
Ubuntu下设置adb环境变量
同Windows一样,Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。Ubuntu Linux 环境变量用户环境变量通常被存储在下面的文件中:~/.profile~/.bash_profile 或者 ~./bash_login~/.bashrc上述文件在Ubuntu 10.0以前版转载 2012-03-29 11:42:57 · 1279 阅读 · 0 评论 -
vm-install vmware tools安装
在XP下安装完VMware虚拟机后启动Ubuntu,窗口很小,需要安装vm-install vmware tools才能自动适配合适的窗口大小,为了安装这个东东浪费了我好几个小时时间,现在把我的步骤记录下来,以便后续同仁遇到相同问题避免麻烦:11、点击VM 下的 install VMware Tools ,然后会提示make sure that you are logged in to th原创 2012-03-13 20:50:49 · 13954 阅读 · 5 评论 -
git服务器搭建
@ubuntu:~$ sudo apt-get install git-core。服务器端。 a@ubuntu:~$ sudo apt-get install openssh-server。 a@ubuntu:~$ sudo apt-get install openssh-client。新加用户git,该用户将作为所有代码仓库和用户权限的管理者。 服务器端: a@ubuntu:转载 2012-03-02 15:32:09 · 1351 阅读 · 0 评论 -
wifi流程详细分析
一.启动wifi服务1.在 SystemServer 启动的时候,会生成一个 ConnectivityService 的实例 路径为:\frameworks\base\services\java\com\android\server\SystemServer.java try { Slog.i(TAG, "Connectivity Serv转载 2012-06-29 16:23:07 · 7561 阅读 · 0 评论 -
MTK Android 开发笔记
编译代码步骤:一.无源代码目录时1.登录编译服务器 进入命令行执行 ssh release@192.168.1.302.从GIT服务器上下载代码 1). curl http://192.168.1.29/repo/repo >repo //下载repo脚本 2). chmod +x repo /转载 2012-10-08 16:51:36 · 4495 阅读 · 0 评论 -
手机充电原理分析及问题总结
(1)充电流程介绍:当充电器插入时,亦即为PMIC充电模块提供了Vcharge电压,这时会产生一个充电中断信号到CPU,通知CPU现在已经进入充电状态。CPU开始启动如下模块:1,ADC采样,主要是采集Vchrg,Vbat及从MOSFET漏极输出的电压,可以算出充电电压和充电电流;2,发消息给MMI层,让它显示充电状态及一些采样数据;3,检测电池电压有没有超过保护电压及电池连接是否连接转载 2012-10-08 16:57:01 · 9005 阅读 · 0 评论 -
android驱动一些外设调试记录
2010 - 微博元年,智能手机元年,2011 - 平板电脑元年,2012 - 智能电视元年。又到年末,是时候梳理下Android开发工作,展望下未来了。本文仅供我个人参考...开发产品 电子书 手机 平板电脑负责模块 Camera, Sound, SD, USB, G-sensor, TP软件平台 Android 1.6/2.2/2.3硬件平台 Mavell PX转载 2012-10-10 16:18:27 · 6074 阅读 · 0 评论 -
Android命令行工具logcat详细用法!
技术交流】android的logcat详细用法! logcat是Android中一个命令行工具,可以用于得到程序的log信息。见板凳详细说明! 本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB%B5%C4%CB%AE%BD%A7/blog/item/7cc9e1d00715dc369b50271d.html。转载 2012-10-11 12:16:38 · 6215 阅读 · 0 评论 -
Kernel Coding style
Run the ./scripts/checkpatch.pl before you push code原创 2013-08-08 14:38:19 · 801 阅读 · 0 评论 -
GUI系统之SurfaceFlinger(9)Project Butter黄油计划
1.1 SurfaceFlinger从这一小节开始,我们正式切入SurfaceFlinger的分析。为了保持讲解的连贯性,部分内容可能在前面的章节中已经有所涉及了,接下来将会对其中的细节做更多的扩展讲解。内容组织如下:l 首先介绍Android 4.1引入的新特性(Project Butter),理解这个项目是必要的,可以说SurfaceFlinger有很大一部分转载 2014-05-15 13:36:43 · 906 阅读 · 0 评论 -
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
前面在介绍Android系统的开机画面时提到,Android设备的显示屏被抽象为一个帧缓冲区,而Android系统中的SurfaceFlinger服务就是通过向这个帧缓冲区写入内容来绘制应用程序的用户界面的。Android系统在硬件抽象层中提供了一个Gralloc模块,封装了对帧缓冲区的所有访问操作。本文将详细分析Gralloc模块的实现,为后续分析SurfaceFlinger服务的实现打下基础。转载 2014-05-22 13:32:41 · 1319 阅读 · 0 评论 -
EGL接口 简介
第二章 EGL 接口EGL 是 OpenGL ES 和底层 Native 平台视窗系统之间的接口。本章主要讲述 OpenGL ES 的 EGL API ,以及如何用它创建 Context和绘制 Surface 等,并对用于 OpenGL 的其他视窗 API 做了比较分析,比如 WGL 和 GLX 。本章中将涵盖如下几个方面:l EGL 综述l EGL转载 2014-05-22 13:30:30 · 769 阅读 · 0 评论 -
使用objdump看内核源码
1. 修改源代码的顶层 Makefile CC =$(CROSSCOM_PILE)gcc 为 CC =$(CROSSCOM_PILE)gcc -g 使成生的vmlinux中含有debug信息2. 所有生成 .o 的 rule 中再加一条 /*其他参数除了-c外抄生成.o文件用的参数*/ CC转载 2014-05-22 13:40:16 · 2663 阅读 · 0 评论 -
Android monkey测试脚本
@echo offset /p times=测试开关机次数set n=0:starttestset /a temp+=1echo 执行第%temp%次adb rebootadb wait-for-devicesping -n 40 127.1>nulset /a n+=1if %n%==%times%(echo 测试结束) else(goto restart原创 2017-12-25 13:56:49 · 966 阅读 · 0 评论