- 博客(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关注的人