自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(82)
  • 收藏
  • 关注

转载 Porting WiFi drivers to Android

For mini-box.com picoPC we want to support several USB and miniPCI WiFi dongles, this guide provides a step by step explanation of what's involved in adding a new wifi driver and making wifi work in a

2012-04-28 21:37:20 3884

转载 android的init过程分析

前言Android系统是运作在linux kernal上的,因此它的启动过程也遵循linux的启动过程,当linux内核启动之后,运行的第一个进程是init,这个进程是一个守护进程,它的生命周期贯穿整个linux 内核运行的始终, linux中所有其他的进程的共同始祖均为init进程。当然为了启动并运行整个android系统,google实现了自己的init进程,下面主要分析init进程都做了

2012-04-26 11:17:58 468

转载 android surfaceflinger研究----SurfaceFlinger loop

上一篇文章介绍了整个Surface机制(我是这么称呼的,主要是Surface的建立,Surface的显示存储的管理),同时我们也介绍过了整个显示系统,那么这篇文章就介绍一下SurfaceFlinger 这个核心服务层的机制。    从代码中我们可以看出SurfaceFlinger 是一个thread,运行在system_server进程中,并且其threadLoop()方法的返回值为true,

2012-04-26 10:44:04 724

转载 android surfaceflinger研究----Surface机制

前一篇文章介绍了android的显示系统,这篇文章中,我们把视角往上层移动一下,研究一下framework是如何与surfaceflinger进行业务交互的。如何创建surface,如何显示窗口等等,所有的这一切都是通过系统服务WindowManagerService与surfaceflinger来进行的。    android中的Surface机制这一块代码写的比较难理解,光叫Surface

2012-04-26 10:42:59 817

转载 android surfaceflinger研究----显示系统

这周抽空研究了一下SurfaceFlinger,发现真正复杂的并不是SurfaceFlinger本身,而是android的display显示系统,网上关于这部分的介绍有不少,本不打算写的,但是发现还是记录一下研究代码的过程比较好,一是能够帮助自己理清思路,另一个原因就是以后当这块内容忘记的时候,能快速的通过这个记录捡起来。    一.  android显示系统的建立    我们看Surfa

2012-04-26 10:37:32 835

转载 Android SurfaceFlinger学习文档

参考资料:1、“Android Display System --- Surface Flinger”2、“Android核心分析(26) ----- Android GDI之SurfaceFlinger”3、“Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理”4、“Android S

2012-04-26 07:35:33 988

转载 Android SurfaceFlinger中的工作线程:threadLoop()

SurfaceFlinger继承了Thread类,自然也继承了Thread类的threadLoop方法,SurfaceFlinger工作线程的主代码都在threadLoop()方法中。工作线程启动后,基类Thread会循环地调用threadLoop方法,SurfaceFlinger的threadLoop()主要是要完成系统中各个Layer(Surface)进行混合(compose),然后不停地把一

2012-04-26 07:34:15 638

转载 Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理

SurfaceFlinger在系统启动阶段作为系统服务被加载。应用程序中的每个窗口,对应本地代码中的Surface,而Surface又对应于SurfaceFlinger中的各个Layer,SurfaceFlinger的主要作用是为这些Layer申请内存,根据应用程序的请求管理这些Layer显示、隐藏、重画等操作,最终由SurfaceFlinger把所有的Layer组合到一起,显示到显示器上。当一个

2012-04-26 07:33:04 747

转载 Android核心分析(28)-----Android GDI之Surface&Canvas

Surface&Canvas    Canvas为在画布的意思。Android上层的作图几乎都通过Canvas实例来完成,其实Canvas更多是一种接口的包装。drawPaints ,drawPoints,drawRect,drawBitmap ...1 Canvas与Surface之间本质关系     对于本节,我们不去研究Skia图形引擎本身,我们需要了解的我们的所做的图形

2012-04-26 07:28:51 790

转载 Android核心分析(27)-----Android GDI 之SurfaceFlinger之动态结构示意图

SurfaceFlinger对象建立过程示意 1 SurfaceSession的建立    客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,如何没有建立,将会

2012-04-26 07:27:49 1222

转载 Android核心分析(26)-----Android GDI之SurfaceFlinger

Android GDI之SurfaceFlingerSurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构。SufaceFlinger主要功能是:1) 将Layers (Surfaces) 内容的刷新到屏幕上2) 维持Layer的Zorder序列,并对Layer最终输出做出裁剪计算。3) 响应Clien

2012-04-26 07:27:04 988

转载 Android Display System --- Surface Flinger

Android Display System ---Surface Flinger    SurfaceFlinger是Android multimedia的一个部分,在Android的实现中它是一个service,提供系统范围内的surface composer功能,它能够将各种应用程序的2D、3D surface进行组合。在具体讲SurfaceFlinger之前,我们先来看一下有关显示

2012-04-26 07:23:05 1738 1

转载 Android4.0.3 显示系统深入理解

网上已经有很多兄弟对Android的显示系统做了深入解剖,很是佩服。可最近小弟在研究Android4.0时发现出入比较大,也许是Android4.0的修改比较多吧!因为小弟没有看Android4.0以前的代码。       面对这么复杂一个Android显示系统,如何入手呢? 根据以前的经验,不管它有多么复杂,其功能不就是以下三步曲吗?  1)显示系统的创建及初始化       2)画

2012-04-26 06:55:23 2243

转载 Android调试.so库常用工具

readelf显示目标ELF文件的信息,比如信赖库,头信息,段信息等。addr2line用户进程崩溃时内核会记录一些基本的调试信息,如果进程执行的ELF文件包含调试符号,就可以通过addr2line找到源文件中哪一行出问题。我在调试Android的VM崩溃问题时使用到了这个工具(详细过程参考这里http://blog.csdn.net/a345017062/archive/2011/0

2012-04-25 22:07:08 898

转载 Android2.3异步双屏修改记录之部分测试结果

代码部分的修改主要涉及到如下所列这些:1 HAL层修改... 2 libui.so库的修改... 3 EGL的修改... 4 SurfaceFlinger的修改... 5 SurfaceFlinger_Client的修改... 总体指导框图如下:具体修改过程这里不再详述,下面是相关的测试结果:1、运动可执行文件surfaceflinger启动SurfaceFli

2012-04-25 18:21:51 772

转载 Android串口通信

最近段时间一直在做android下串口通信的东东,大概功能是android系统端的ARM和系统外的一个MCU通信,通过android界面控制MCU上挂的设备,如radio、TV、BT等等,下面对这个过程作一个浅显的阐述,有错之处还望大家斧正……先来看一张图,如下:我是直接在HAL层中通过两个线程对串口的设备节点/dev/ttymxc1进行读和写的,相应的代码如下:1、init代码

2012-04-25 18:19:28 867

转载 Android双屏显示的一些修改与尝试

这些天来一直在看android display相关的代码和资料并作了一些尝试,现在将这些天来的工作记录如下,有错误的地方希望广大同行指正,谢谢!经过阅读代码和查到的相关一些资料,对android双屏的支持总体思路如下图所示:由于目前跟踪代码只跟到了surfaceflinger这一层,下面先从surfaceflinger说起:在frameworks\base\servic

2012-04-25 18:17:58 1008

转载 android触摸屏校准中间层实现方法

android第一次开机启动,进行了校准屏幕,但如果没有设置正确或用户需要重新校准时,进行按键校准的需求就来了。根据公司情况采取的方法是长按两次back键删除校准程序产生的文件,然后重新启动系统。系统检测到没有校准产生的文件时,将启动重新校准。修改/myandroid/frameworks/policies/base/phone/com/android/internal/polic

2012-04-24 15:30:29 1001

转载 在init.rc中添加event

在init.rc中添加event,在触摸屏加载后把pointercal参数输送给驱动。结果-效果实现细节:扩展init-proper_serivce系统支持的属性权限,对自定义的特殊系统属性进行权限开放。使用自定义系统属性在init.rc中on property事件中处理pointercal的读写权限。使用自定义系统属性触摸屏校准程序.apk和InputDevi

2012-04-24 15:29:53 1008

转载 android实现触摸屏校准通用方法介绍(sys)

触摸校准算法触摸屏校准通用方法。XL,YL是显示屏坐标,XT,YT是触摸屏坐标,)XL=XT*A+YT*B+C YL=YT*D+YT*E+F由于具体计算是希望是整数运算,所以实际中保存的ABCDEF为整数,而增加一个参数DivXL=(XT*A+YT*B+C)/Div YL=(YT*D+YT*E+F)/Div TSLIB把以上的7个参数ABCDEF Div

2012-04-24 15:29:17 1965

转载 Android2.3 中如何使用GPU硬件加速

1.名词解释GPU:Graphic Processing Unit (图形处理器)OpenGL:Open Graphic Library 定义了一个跨编程语言、跨平台的编程接口的规格,不同厂商会有不同的实现方法,它主要用于三维图象(二维的亦可)绘制。SurfaceFlinger:Android中负责Surface之间叠加、混合操作的动态库Skia:Android中的2D图形库l

2012-04-24 14:21:51 728

转载 Android OpenGL ES 分析与实践(6)

egl_connection_t的第二个变量是一个指针数组,类型是gl_hooks_t,从名字可以看出,它指向的是一组函数指针。跟踪一下struct gl_hooks_t {    struct gl_t {        #include "entries.in"    } gl;    struct gl_ext_t {        void (*extensions

2012-04-24 14:19:04 820

转载 Android OpenGL ES 分析与实践(5)

看一下load_driver中到底做了什么手脚。1.首先调用dlopen打开动态链接库,返回值是void*,这个void*指向的是什么内容呢?追踪到bionic/linker/Dlfcn.c中。其中调用了find_library函数,这个函数是一个奇怪的函数,因为它虽然叫做find_library,在其实现中,不但在系统的so链表中去查找指定的文件名的动态链接库信息,而且对其动态链接库进行加载

2012-04-24 14:18:15 1118

转载 Android OpenGL ES 分析与实践 (3)

<!--@page {margin:2cm}h3 {margin-top:0.46cm; margin-bottom:0.46cm; line-height:173%; page-break-inside:avoid}h3.western {font-family:"Droid Sans Fallback",serif; font-size:16pt}h

2012-04-24 14:15:18 933

转载 Android OpenGL ES 分析与实践(4)

由我以上图表可以看出,加载驱动的时候,会尝试先从libGLES_android.so中加载EGL、GLESV1_CM、GLESV2三个部分的函数,如 果加载失败,则会尝试从libEGL_android.so,libGLESV1_cm.so,libGLESV2.so三个动态库中对应的函数。在这部分代码中,我们可以看到一个非常重要的结构体,egl_connection_t,struct e

2012-04-24 14:14:01 1030

转载 Android OpenGL ES 分析与实践(2)

3.3 使用OpenGL ES画图必经的步骤  1、获取Display,Display代表显示器。    函数原型:    EGLDisplay eglGetDisplay(NativeDisplayType display);    display参数是native系统的窗口显示ID值,一般为 EGL_DEFAULT_DISPLAY。该参数实际的意义是平台实现

2012-04-24 14:10:38 862

转载 Android OpenGL ES 分析与实践(1)

1.    OpenGL ES 简介Android 3D引擎采用的是OpenGL ES。OpenGL ES是一套为手持和嵌入式系统设计的3D引擎API,由Khronos公司维护。在PC领域,一直有两种标准的3D API进行竞争,OpenGL 和 DirectX。一般主流的游戏和显卡都支持这两种渲染方式,DirectX在Windows平台上有很大的优势,但是OpenGL具有更好的跨平台性。由

2012-04-24 14:09:21 788

转载 android编译系统的makefile文件Android.mk写法如下

(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。(2)Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CL

2012-04-24 12:33:39 493

转载 分析Android 根文件系统启动过程(init守护进程分析)

今天开始分析Android 根文件系统启动过程。在Android系统启动时,内核引导参数上一般都会设置“init=/init”,这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序所了什么呢? 我们只有RFSC(Readthe Fucking Source code)!!init程序源码在Android官方源码的system/core/ini

2012-04-23 21:38:35 431

转载 Android开机动画过程

Android 开机会出现3个画面: 1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片); 2. Android平台启动初始化,出现"A N D R I O D"文字字样画面; 3. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。 1、开机图片(Linux小企鹅) (

2012-04-23 21:37:50 483

转载 Android 文件系统获取root权限

最近在移植Android 2.3 到s3c6410平台,文件系统成功挂载后,在超级终端执行一些命令不成功,比如mkdir,这样的基础命令,后来查阅资料,是自己没有取得root权 限,只需在启动的shell时,指定该程序(shell 程序)属于root用户即可,修改init.rc文件如下:原始init.rc设置:service console /system/bin/shconsole

2012-04-23 20:44:25 768

转载 S3c610 Codec移植的工作经验总结

1. S3C6410与WM9713的I2S,AC97,PCM相比较:1.I2S,AC97,PCM是不同的,各是各的,三者时序不同,要双方通信,必须要是同一种时序,要么均是I2S,要么均是AC97,要么均是PCM2.S3C6410的I2S,AC97,PCM复用同一组Pin脚,但同一时间只能用一种类型,要么是I2S,要么是AC97,要么是PCM3.WM9713有两大接口,一

2012-04-20 21:20:25 694

转载 android+WM9714(AC97)调试

s3c6410平台,codec为WM9714(驱动可使用WM9713的),使用ALSA,android版本1.5. MID上移植android以来一直没有声音。 首先确认AC97的硬件连接,AC-LINK通讯是否正常,这里使用到wince中的init寄存器组,在sound/soc/codecs/wm9713.c中替换static const u16 wm9713_reg[]相应的寄存器

2012-04-20 21:16:17 706

转载 linux 内核库函数

当编写驱动程序时,一般情况下不能使用C标准库的函数。Linux内核也提供了与标准库函数功能相同的一些函数,但二者还是稍有差别。 类别函数名功能函数形成参数描述字符串转换simple_strtol把一个字符串转换为一个有符号长整数long simple_strt

2012-04-20 20:03:20 616

转载 Android触摸屏校准方法

本文记录了在调试华清远见教学平台FS_S5PC100上的Android触摸屏驱动的过程。屏的型号是上篇博客《液晶背光电源的选择》中的A043FW02 V0。这里也给大家确认下,上次的电源选择是没问题的。我采用的触摸屏校准方法利用到了tslib-1.4。tslib的移植方法,网上有很多介绍,这里就不赘述了。有过linux下触摸屏开发经验的,应该知道通常驱动是把采集到的原始坐标(A/D值),直

2012-04-20 19:09:01 1019

转载 内核中针对proc文件系统的编程函数总结

一、头文件:    #include 二、创建与删除proc文件:    创建普通文件:        1.创建不可读写的普通文件            /*此函数只负责在proc中创建一个只读文件,即能在proc中看到这个文件。             * */            struct proc_dir_entry* create_proc_entry (

2012-04-20 19:05:16 591

转载 linux /proc文件系统编程实例

/* *proc ipsec test  */#include #include #include #include #include #include #include #define  IPSEC_CONNTRACK "ipsec_conntrack"MODULE_AUTHOR("Qxl");MODULE_DESCRIPTION("Proc

2012-04-20 19:04:49 1011

转载 6410上的TSLIB移植问题

问题:在友善的6410开发板上,友善已经将TSLIB移好了,但是不提供TSLIB的源代码,我需要自己移植一下TSLIB,但是一直没有移植成功,在这里请教各位高手:具体移植步骤如下:一:下载TSLIB1.4版本解压,通过如下方式配置:./configure --divfix=/usr/local/lib/ --host=arm-none-linux-gnueabi ac_

2012-04-20 18:03:26 1308

转载 终于解决Tslib的问题了

前段时间让Tslib搞晕头了,原来一切都是版本惹的祸。本文只是一个随笔,随笔者,随意用笔写下心得而已,因此不必较真。正如我所欣赏的“乘兴而来,兴尽而返”一样。——估计当年王子猷是赏完了夜景,兴致也完了,就回家了。闲话少提。搞tslib时,出现了许多错误,像No raw modules loaded.ts_config: Successselected device

2012-04-20 18:00:27 5114

转载 Tslib移植与分析

目标平台:LOONGSON-1B开发板(mips32指令集)编译平台:x86PC--VMware6.5--Ubuntu10.04(下面简称“ubuntu系统”)            或:龙芯2F-debian6(下面简称“2F系统”)交叉工具链:gcc-3.4.6软件版本:Tslib1.40.简介(from 百度)嵌入式设备中触摸屏使用非常广泛,但触摸屏的坐标和屏的坐

2012-04-20 17:46:11 1125

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除