自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 Android音频子系统源码分析之AudioTrack的使用

网上已有许多朋友对Android音频子系统做了透彻的分析,我这完全是给自己在做学习笔记本文基于Android IcsAudioTrack的使用实例,在google的源码中已经为我们准备了AudioTrack的测试代码,代码路径如下:frameworks/base/media/tests/MediaFrameworkTest/src/com/android/mediaframeworkt

2012-05-06 13:24:39 4604

转载 android 4.0.3最新源码下载编译

最新的android4.0源代码公布以后,相信很多人和我一样都跃跃欲试,其实4.0的代码下载和编译和以前的版本差不多,但是有一些小的差别,写下来供不明真相的新手来参考首先,开发环境,google建议在ubuntu10.0.4下,并且最好是64位,既然是为了工作和学习,就尽量按照官方要求的来吧。Python 2.5 -- 2.7  ubuntu10.0.4已经默认安装了,所以不需要安装,其他

2012-05-06 02:31:02 923

转载 Android学习工具之一自己创建Git库(Dean)

在前面一篇文件简述了一个标准流程的基本Git的操作!现在我尝试自己建立git库并操作文件将git命令的使用进行分析!采用SSH方式让局域网的同学们可以访问并且push和clone!首先要安装的几个工具包:Java代码  git工具包  sudo apt-get install git-core    一个图形操作界面的git工具  sudo apt-get inst

2012-05-06 01:04:32 881

转载 Android学习笔记Android必备开发工具之一命令行创建Git库(Dean)

在前面一篇文件简述了一个标准流程的基本Git的操作!现在我尝试自己建立git库并操作文件将git命令的使用进行分析!采用SSH方式让局域网的同学们可以访问并且push和clone!首先要安装的几个工具包:Java代码  git工具包  sudo apt-get install git-core    一个图形操作界面的git工具  sudo apt-get inst

2012-05-06 01:03:12 688

转载 github快速使用指南

如果你是使用git作为版本控制工具,那么github基本上是必备的网站,github可以托管你的git版本库,作用类似于SourceForge和Google Code,github的界面是非常人性化的,由于git本身会比svn来的复杂,所以在操作上github会比SourceForge来的难点。所以就有了今天的这篇教程。跳过账户注册阶段。1.在github上创建一个新的版本库githu

2012-05-05 23:21:57 749

转载 Git 简明教程

---------------------------------------------------------------------------Auther: Roy ZhuDate: 2008-04-29Doc: 实践果然出真知!今天下午花了五个小时,终于弄懂了GitHub的用法。开心!--------------------------------------------

2012-05-05 21:54:14 846

转载 Git学习教程(七) Git差异比对

第七课 Git差异比对内容提要:显示项目的两个不同版本之间的差异,或者显示指定文件的不同之处 在‘git日志’一课中,我们通过'git log -p'命令来显示每一次提交与其父节点提交内容之间快照的差异。这节课介绍的'diff'命令会实现类似的功能---用一种统一的格式来显示两个快照或文件之间的差异。这节课就向你展示如何使用diff命令。查看变更还未载入(changed but

2012-05-05 21:51:26 736

转载 Git学习教程(六)Git日志

第六课 Git 日志内容提要:浏览项目历史,查询指定提交内容,图形化显示分枝和合并...'git log'是git中最常用的一个命令,执行之后,会显示该项目的提交历史。如果命令不加任何参数,那么就会显示目前所在分枝上,从最后一次提交开始,按时间顺序依次向前排列的所有提交历史记录。$ git logcommit 166ae0c4d3f420721acbb115cc3384

2012-05-05 21:50:50 705

转载 Git学习教程(五):Git标签

第五课 Git标签内容提要:创建有签名,无签名、轻量级标签来永久的标记项目历史中的关键点 跟大多数的VCS工具一样,git也有在历史状态的关键点“贴标签”的功能--一般人们用这个功能来标记发布点(例如'v1.0')。这节课我们学习如何使用标签列表,创建新标签,以及在git中有哪些不同类别的标签。 列出git中现有标签 要想列出git中现有的所有标签,输入'git

2012-05-05 21:50:06 627

转载 Git学习教程(四):分枝和合并

第四课  分枝和合并基础知识介绍 内容提要:创建工作分枝,合并分枝以及删除分枝 从第一课的介绍中,我们了解到,git处理分枝和合并是非常独到的。首先,无论是创建新分枝还是分枝之间切换,都表现出一个共同的特征--快! git 有一个独立的工作目录,专门用来存放所有分枝的内容,所以你没必要为每一个分枝再分别创建目录。这一节,我们的任务是:1. 创建一个新的分枝;2.

2012-05-05 21:49:25 578

转载 Git学习教程(三):Git工作流程

第三课   Git 工作流程    与远程仓库同步,修改,载入(stage)和提交项目 现在你已经有一个git本地仓库,一切都配置完毕。然后该怎么办?一般来说,跟其他的源码控制系统的工作流程没什么两样,唯一一个区别就是载入(stage)的过程。整个工作流程大致是这样(流程1):与远程仓库同步 修改文件查看变更载入变更提交载入的变更

2012-05-05 21:48:48 558

转载 Git学习教程(二):配置和初始化

第二课.配置和初始化 配置git在使用git之前你需要配置一下git。git在你创建提交的时候会记录你的名字和email地址,所以你应该告诉git这些内容。可以使用'git config'命令来设置,如果传递参数'-global' ,它会将这些值记录在~/.gitconfig文件里,作为这些配置的默认值。$ git config --global user.na

2012-05-05 21:48:15 527

转载 Git学习教程(一):git简介

原文地址第一课. git简介内容:什么是git,为什么要使用git以及获取和学习git的途径。  欢迎来到github学习教程的第一课。本教程将通过一系列的实例来介绍如快速,轻松地使用Git。教程中会有很多屏幕截图,希望这样可以让你更好的学习和理解。本节简要介绍git的概念和为什么应该使用它 git是一个快速,开源,分布式的版本控制系统。因此

2012-05-05 21:47:01 512

转载 Ubuntu 11.04 下安装配置 JDK 7

第一步:下载jdk-7-linux-i586.tar.gz[plain] view plaincopywget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.tar.gz  (注:如果下载不下来,建议使用迅雷下载,然后拷贝到Linux系统上。)第二步:解压安装

2012-05-05 14:05:00 525

转载 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 4088

转载 android的init过程分析

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

2012-04-26 11:17:58 505

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

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

2012-04-26 10:44:04 762

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

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

2012-04-26 10:42:59 917

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

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

2012-04-26 10:37:32 885

转载 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 1053

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

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

2012-04-26 07:34:15 693

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

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

2012-04-26 07:33:04 783

转载 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 841

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

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

2012-04-26 07:27:49 1258

转载 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 1062

转载 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 1801 1

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

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

2012-04-26 06:55:23 2287

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

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

2012-04-25 22:07:08 948

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

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

2012-04-25 18:21:51 861

转载 Android串口通信

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

2012-04-25 18:19:28 932

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

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

2012-04-25 18:17:58 1095

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

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

2012-04-24 15:30:29 1033

转载 在init.rc中添加event

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

2012-04-24 15:29:53 1074

转载 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 2097

转载 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 767

转载 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 870

转载 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 1188

转载 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 983

转载 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 1074

转载 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 898

空空如也

空空如也

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

TA关注的人

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