Android
文章平均质量分 77
bigzzhang
做一个爱工作,爱生活的人!
展开
-
Free Diff Tools Ubuntu (Linux), Windows
Posted by shaan on May 3, 2010 | Filed under General, Ubuntu (Linux)<br />While finding the Diff and Merge tools for Ubuntu, I found the following tools, which could be used in Ubuntu (Linux).Diff Tools / Merge Tools<br />The Diff Tools o原创 2010-12-21 00:13:00 · 2248 阅读 · 0 评论 -
android中c/c++程序的调试(eclipse)
1. 使用gdbserver调试使用JDWP只能调试java层面的程序,如果想调试C层面的代码,需要使用gdbserver方式,gdbserver的服务端和客户端都包含在android的源码中。server端是out/target/product/xxxxxx/system/bin/gdbserver。client端是prebuild/linux-x86/toolchain/xxxxxx/bin/arm-eabi-gdb),不需另外安装。(请看完本文再开始调试,尤其是“注意转载 2010-11-27 01:29:00 · 1359 阅读 · 0 评论 -
Linux进程间通信分类 以及 pipe的原理实现
http://blog.sina.com.cn/s/blog_4a84bd960100by8s.htmlhttp://home.lupaworld.com/home-space-uid-296848-do-blog-id-230801.html一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了Linux环境转载 2012-09-13 19:44:08 · 758 阅读 · 0 评论 -
Android 开发之 ---- bootloader (LK)
LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码 ,little kernel 是小内核小操作系统。 LK 代码 在 bootable/bootloadler/lk 目录下 LK 代码结构 +ap转载 2012-11-26 23:40:23 · 1321 阅读 · 1 评论 -
u-boot-1.1.6顶层目录config.mk分析
<br />#####################################<br /># 这个文件的主要任务就是:<br />1、定义交叉编译器 <br />2、定义AR、调试、优化、预处理、C编译器、链接选项 <br />3、指定编译规则<br />#####################################<br /><br />ifneq ($(OBJTREE),$(SRCTREE)) #如果目标存放目录不等于源码目录(UBOOT顶层目录)<br />ifeq (转载 2011-05-15 16:41:00 · 731 阅读 · 0 评论 -
android makefile(android.mk)分析(2)
<br />1.2 用makefile构建交叉编译环境<br />这节的内容请参考http://blog.csdn.net/absurd/category/228434.aspx里面的交叉编译场景分析,我只是说一下我做的步骤:<br />1.下载交叉编译环境(http://www.codesourcery.com/downloads/public/gnu_toolchain/arm-none-linux-gnueabi)并安装,一般解压就可以了,然后将里面的bin目录加到环境变量的PATH里面,我的转载 2010-12-21 14:08:00 · 472 阅读 · 0 评论 -
mmc驱动的读写过程解析
mmc io的读写从mmc_queue_thread()的获取queue里面的request开始。 先列出调用栈,看下大概的调用顺序, 下面的内容主要阐述这些函数如何工作。host->ops->request() // sdhci_request()mmc_start_request()mmc_start_req()mmc_blk_issue_rw_转载 2014-08-06 23:54:46 · 7541 阅读 · 0 评论 -
Android的init过程(二):初始化语言(init.rc)解析
本文使用的软件版本Android:4.2.2Linux内核:3.1.10 在上一篇文章中介绍了init的初始化第一阶段,也就是处理各种属性。在本文将会详细分析init最重要的一环:解析init.rc文件。init.rc文件并不是普通的配置文件,而是由一种被称为“Android初始化语言”(Android Init Language,这里简称为AIL)的转载 2013-10-28 14:17:09 · 1022 阅读 · 0 评论 -
Android中init.rc文件的解析
本文分析Android中如何解析init.rc文件,重点描述了on action内的解析,并从解析的过程中总结出init.rc的语法规范。 对init.rc的解析是在parse_config(): [system/core/init/init_parser.c]中进行的。解析发生在init全过程中的哪个阶段,参看《Android init进程启动过程分析》。 一、解转载 2013-10-28 16:34:40 · 851 阅读 · 0 评论 -
往android的内核添加驱动及 ueventd.rc 修改
向android的内核添加驱动,其实就是向linux内核添加驱动。主要在两个文件里添加点信息,一个是Kconfig文件,一个是Makefile文件。比如你添加的驱动你代码放到drivers目录下面的XXX目录,那么修在该目录下的Kconfig文件和Makefile文件。具体的修改方法:比如我现在修改drivers/staging/android/下的Kconfig文件。config A转载 2012-12-20 13:05:53 · 1212 阅读 · 0 评论 -
Android的init过程详解(一)
本文使用的软件版本Android:4.2.2Linux内核:3.1.10 本文及后续几篇文章将对Android的初始化(init)过程进行详细地、剥丝抽茧式地分析,并且在其中穿插了大量的知识,希望对读者了解Android的启动过程又所帮助。本章主要介绍了与硬件相关初始化文件名的确定以及属性服务的原理和实现。 Android本质上就是一个基于Linux转载 2013-10-28 14:13:38 · 1005 阅读 · 0 评论 -
linux内核 address_space 结构
在阅读Linux2.6的内核内存管理这一部分时,我看到page结构中的一个mapping成员,我感到很迷惑,这个成员的属性太复杂了,我们来看看:struct address_space *mapping;表示该页所在地址空间描述结构指针,用于内容为文件的页帧(1) 如果page->mapping等 于0,说明该页属于交换告诉缓存swap cache(2)转载 2014-08-08 16:28:51 · 2708 阅读 · 1 评论 -
Android Building System 分析
<br />想要了解一個系統,我常會從 makefile 或是 building system 下手,以了解系統組成元素為何? 目錄結構為何? 對於 Android ,我也不例外。透過了解 building system ,我們能知道如何新增、修改、刪除程式,並保有完整性,順利編譯出結果。<br /> 設定檔 <br />Android building system 包括幾種重要的設定檔,Android.mk AndroidProducts.mk target_<原创 2010-12-21 14:00:00 · 453 阅读 · 0 评论 -
Android Makefile and build system 分析与梳理
前言:预计未来一致两年内移动互联网将会有很大的发展,必将孕育很多的机会,而Google推出的Android手机操作系统无疑将是移动互联网中的明星。由于其是开源系统,很有必要对此进行深入研究。 工欲善其事,必先利其器。Makefile无疑是打开系统架构的一扇窗户。但因Android的Makefile (build system)文件众多,架构复杂,分析起来较为困难。本文梳理了build system的大致脉络,希望对build system感兴趣的同学们有所帮助。1.转载 2010-12-21 13:59:00 · 1017 阅读 · 0 评论 -
android makefile(android.mk)分析(序)
<br />android是什么就不用说了,android自从开源以来,就受到很多人的追捧。当然,一部人追捧它是因为它是Google开发的。对一个程序员来说,一个系统值不值得追捧得要拿代码来说话。我这里并不打算分析android的代码,而是android的makefile,我想通过分析andorid的makefile来告诉大家如何写makefile。<br />对于一个程序新手而言,好的IDE是他们追捧的对象。但当他接触的代码多了之后,就会逐渐发现IDE不够用了,因为有好多东西用IDE是不好做的,转载 2010-12-21 14:06:00 · 671 阅读 · 0 评论 -
Android Camera Framework Stream(三)
7. 那么现在的关键就是Client类了·进一步跟进:CameraService::Client::Client(const sp& cameraService, const sp& cameraClient, pid_t clientPid){ ….. mCameraService = cameraService; mCameraClient = cameraClient; mClientPid = clientPid;转载 2010-12-05 22:32:00 · 1523 阅读 · 0 评论 -
Android 入门系列文章
1.Android开发之旅:环境搭建及HelloWorld2.Android开发之旅:HelloWorld项目的目录结构3.Android开发之旅:android架构4.Android开发之旅:应用程序基础及组件5.Android开发之旅:应用程序原创 2011-08-22 13:44:28 · 694 阅读 · 0 评论 -
U-boot项目添加命令
一、U-BOOT源码树结构:board 针对各个主板的源代码common 公用部分net 网络相关include/configs 针对各个主板的配置文件二、增加命令1.修改common/cmd_net.c声明一个命令:U_BOOT_CMD( exit, 2, 1, do_exit, "exit - exit s转载 2011-04-11 00:38:00 · 658 阅读 · 0 评论 -
u-boot Makefile结构分析
<br />分析了一下u-boot1.3.2的Makefile,基本的结构如下:<br /> 主目录下有一个Makefile,一个config.mk,一个mkconfig脚本。<br /> (一) 首先用户需要make smdk2410_config,这样Makefile会掉用mkconfig脚本生成include/config.mk这里面包含了ARCH,BOARD,CPU,SOC等变量,这些变量可以供其它的makefile使用,作为一个基本配置.<br /> 如果还转载 2011-05-15 16:40:00 · 861 阅读 · 0 评论 -
Linux与Android休眠唤醒对比(一)
Linux休眠(suspend)的简单介绍在Linux中(PC和嵌入式系统),休眠主要分三个主要的步骤:1,冻结用户态进程和内核态任务.2,调用注册的设备的suspend的回调函数. 顺序是按照注册顺序3,休眠核心设备和使CPU进入休眠态冻结进程是内核把进程列表中所有的进程的状态都设置转载 2011-06-13 13:50:00 · 1123 阅读 · 0 评论 -
Linux与Android休眠唤醒对比(二)
Android 休眠与唤醒(二)Android 中定义了几种低功耗状态:earlysuspend,suspend,hibernation。1,earlysuspend是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如LCD可以降低亮度或灭掉;2,suspend是指除电源管理以外的其他外围模块以及c转载 2011-06-13 13:52:00 · 1310 阅读 · 0 评论 -
Android 的 HAL 技術
Android 的 HAL 技術, #1: 簡介與發展現況jollen 發表於 October 8, 2009 2:05 AM Android 的 HAL(硬體抽像層)是 Google 因應廠商「希望不公開源碼」的要求下,所推出的新觀念,其架構如下圖。雖然 HAL 現在的「抽象程度」還不足,現階段實作還不是全面符合 HAL 的架構規劃,不過也確實給了我們很好的思考空間。圖1:Android HAL 架構規劃這是 Patrick Brady (Google) 在2008 Google I/O 所發表的演講「A转载 2010-11-26 00:15:00 · 1030 阅读 · 0 评论 -
Android平台硬件调试之Camera篇
<br /> 之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了,只是把相关的驱动移植过来就好;另一款是Samsung的一款比较新的3M YUV FF sensor,在最新项目中要使用的,本文以调试该sensor为例,从底层驱动的角度分享一下高通android平台下调试camera的经验,而对于高通平台camera部分的架构以及原理不做过多的介绍。<br转载 2010-11-26 01:19:00 · 1673 阅读 · 0 评论 -
Android Camera Framework Stream(二)
<br />接下来,我们通过对流程的步步分析来将camera整体串接起来:<br />1. 首先则看看camera.java的onCreate函数入口,针对android的所有应用,onCreate函数入口作为跟踪和了解应用架构的首选。<br /> @Override<br /> public void onCreate(Bundle icicle) {<br /> super.onCreate(icicle);<br /> dev转载 2010-12-05 22:30:00 · 1846 阅读 · 0 评论 -
uboot: lcd frame buffer的保留机理
<br />board.c: start_armboot()<br /><br />1.lcd frame buffer的保留机理:<br /><br />#ifdef CONFIG_LCD<br /># ifndef PAGE_SIZE<br /># define PAGE_SIZE 4096<br /># endif<br /> /*<br /> * reserve memory for LCD display (always full p原创 2011-01-05 16:19:00 · 2157 阅读 · 0 评论 -
uboot开机logo
<br />参考资料:<br />【1】U-boot开机logo的制作方法(Tekkaman Ninja):http://blog.chinaunix.net/u1/34474/showart_2085233.html<br />【2】U-Boot中的Splash Screen(Charlie Chen):http://blog.chinaunix.net/u1/51797/showart.php?id=2070554<br />【3】UBOOT LCD驱动流程(牛蹄印章):http://blo转载 2011-01-05 16:17:00 · 4163 阅读 · 0 评论 -
android makefile(android.mk)分析(1)
<br />1.1 makefile helloworld<br />Makefile的规则如下:<br />target ... : prerequisites ... <br />command ... ...<br />target可以是一个目标文件,也可以是Object File(例如helloworld.obj),也可以是执行文件和标签。<br />prerequisites就是生成target所需要的文件或是目标。<br />command也就是要达到target这个目标所需要执行的命令转载 2010-12-21 14:07:00 · 660 阅读 · 0 评论 -
Android Camera Framework Stream(一)
现在我们尝试从最开始的启动流程来熟悉android camera的整体framework流程:首先从上图的各个步骤来逐一分析流程,后续会根据具体的一些点进行内容的添加和扩充:?Camera.javapackages/apps/camera/src/com/android/最上层的应用就是从这个文件开始。该文件集中了整个android上层应用的所有相关内容,当然更多的则为界面的代码实现。如果出现了camera应用界面的问题(当然除了camera拍摄区域内容外),可以从android的代码入手。?Camera.转载 2010-12-05 22:28:00 · 2030 阅读 · 0 评论 -
RCU 机制
《RCU是什么?》第一部分概述Read-copy update (RCU) 是一种 2002 年 10 月被引入到内核当中的同步机制。通过允许在更新的同时读数据,RCU 提高了同步机制的可伸缩性(scalability)。相对于传统的在并发线程间不区分是读者还是写者的简单互斥性锁机制,或者是哪些允许并发读但同时不 允许写的读写锁,RCU 支持同时一个更新线程和多个读线程的并发。RC转载 2012-09-14 18:04:52 · 1074 阅读 · 0 评论 -
使uboot支持S3C6410的SD启动
<br />这里使用的uboot并非uboot官方发布的uboot代码,而是为三星定制的一个uboot版本s3c-u-boot-1.1.6,其代码作者就包括了三星的程序员与denx的员工。这个版本支持SD启动,不过默认是nand启动,使它支持uboot需要做以下事情:<br /> 1、 虽然支持uboot启动,但是uboot代码里不叫SD启动方式,而是叫movinand启动方式,在incluede/configs/smdk6410.h中就有这个选项,所以在这个文件里关闭nand启动,打开movinand原创 2011-05-14 20:18:00 · 3020 阅读 · 0 评论 -
李洋谈Android系统启动过程剖析
1. 系统启动流程简介在Linux内核启动后,init 1(1号进程)将作为第一个用户空间(Linux虚拟内存的大小为232(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节供内核使用,称为“内核空间”。而较低的3G字节供各个进程使用,称为“用户空间”。)的进程来启动Android系统,该启动流程可以分为如下5个阶段,如下图:点击查看大图(转载 2012-12-20 11:19:03 · 1251 阅读 · 0 评论 -
android之init进程-uevent
Init是linux kernel启动的第一个进程,理解init,对熟悉android系统非常重要。 Android的每个目录下面都有一个非常重要的文件Android.mk,负责编译该目录下面的代码。 System/core/init/android.mk[cpp] view plaincopy "font-size:18p转载 2012-12-20 13:00:24 · 536 阅读 · 0 评论 -
基于V4L2的视频驱动开发(3)
四、 V4L2驱动框架上述流程的各个操作都需要有底层V4L2驱动的支持。内核中有一些非常完善的例子。比如:linux-2.6.26内核目录/drivers/media/video//zc301/zc301_core.c 中的ZC301视频驱动代码。上面的V4L2操作流程涉及的功能在其中都有实现。1、V4L2驱动注册、注销函数 Video核心层(drivers/media/video/videodev.c)提供了注册函数int video_register_device(转载 2010-11-12 23:01:00 · 1172 阅读 · 0 评论 -
基于V4L2的视频驱动开发(2)
<br />三、 V4L2 API及数据结构<br />V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。<br />1、常用的结构体在内核目录include/linux/videodev2.h中定义<br /> struct v4l2_requestbuffers //申请帧缓冲,对应命令VIDIOC_REQBUFS <br /> struct v4l2_capability //视频设备的功能,对应命令转载 2010-11-12 22:59:00 · 884 阅读 · 0 评论 -
基于V4L2的视频驱动开发(4)
<br />3、Video核心层的实现<br /> 参见内核/drivers/media/videodev.c<br />(1)注册256个视频设备<br /> static int __init videodev_init(void)<br />{<br />int ret;<br /> if (register_chrdev(VIDEO_MAJOR, VIDEO_NAME, &video_fops)) {<br />转载 2010-11-12 23:02:00 · 1204 阅读 · 0 评论 -
基于V4L2的视频驱动开发(1)
<br />编写基于V4L2视频驱动主要涉及到以下几个知识点:<br /><br />l 摄像头方面的知识<br />要了解选用的摄像头的特性,包括访问控制方法、各种参数的配置方法、信号输出类型等。<br />l Camera解码器、控制器<br />如果摄像头是模拟量输出的,要熟悉解码器的配置。最后数字视频信号进入camera控制器后,还要熟悉camera控制器的操作。<br />l V4L2的API和数据结构<br />编写驱动前要熟悉应用程序访问V4L2转载 2010-11-12 16:20:00 · 1209 阅读 · 0 评论 -
linux android V4l2 的一些精品文章连接
<br />Android camera preview and take picture with V4l2: http://hi.baidu.com/kellyvivian/blog/item/5ea8244b91e20c3aafc3ab95.html<br />v4l2驱动编写篇第五B--格式的协定 :http://www.usr.cc/forum-redirect-goto-nextnewset-tid-1901.html<br /><br />大家一起来讨论video for linux的编程转载 2010-11-16 22:48:00 · 1457 阅读 · 1 评论 -
V4L2 简介
1.什么是video4linux Video4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。 2.Video4linux下视频编程的流程 (1)打开视频设备: (2) 读取设备信息 (3)更改设备当前设置(没必要的话可以不做) (4)进行视频采集,两种方法: a.内转载 2010-11-16 22:33:00 · 1755 阅读 · 0 评论 -
Android的init过程详解(三)
解析Service(1)1.parse_service解析Service先从parse_service开始,代码如下:static void *parse_service(struct parse_state *state,int nargs, char **args) { struct service *svc;//service结构体,用于保存当前解析出的S原创 2013-10-28 15:53:02 · 1088 阅读 · 0 评论 -
启动系列Blog
ARM架构内核启动分析-head.S(1.2、stext分析之准备阶段)原创 2014-07-25 00:44:22 · 643 阅读 · 0 评论