Android系统开发
jiajie961
这个作者很懒,什么都没留下…
展开
-
android系统开发(九)-Audio部分准备工作alsa移植
<br />1,audio内核部分的开发,包含codec驱动,cpu的声音驱动和内核alsa驱动等,<br />这个是完全的嵌入式linux的开发内容,这里跳过,请确保这几部分正确。<br /><br />2,从alsa的官方网站下载最新的alsa-lib-1.0.23和alsa-utils-1.0.23<br />官方网站:http://www.alsa-project.org<br />alsa-lib基于内核alsa驱动,它将对内核alsa接口的操作封装成libasound库<br /原创 2010-11-30 14:53:00 · 11760 阅读 · 1 评论 -
android系统开发(七)-背光模块
<br />1,总论<br />背光模块属于HAL层开发,HAL层开发,用一句话来概括就是定义一个hardware.h中定义的名称为宏HAL_MODULE_INFO_SYM的hw_module_t结构体,<br />然后实现结构体的相关内容<br /><br />2,驱动方面的准备<br />简单的嵌入式linux驱动,编写LCD背光驱动,并提供接口给上层修改,我所用的是直接修改接口文件,接口如下:<br />/sys/class/backlight/pwm-backlight/brig原创 2010-11-23 18:09:00 · 10837 阅读 · 2 评论 -
android系统开发(六)-HAL层开发基础
Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念1,源代码和目标位置源代码: /hardware/libhardware目录,该目录的目录结构如下:/hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录/hardware/libhardware/include/hardware目录下包含如下头文件:hardware.h 通用硬件模块头文件copybit.原创 2010-11-22 11:47:00 · 13148 阅读 · 4 评论 -
android启动过程配置文件的解析与语法
<br />(1)android启动文件系统后调用的第一个应用程序是/init,此文件的很重要的内容是解析了init.rc和init.xxx.rc<br />两个配置文件,然后执行解析出来的任务。相关代码在android源代码/system/core/init/init.c文件中,如下:<br /> parse_config_file("/init.rc");<br /><br /> /* pull the kernel commandline and ramdisk propert原创 2010-11-11 15:39:00 · 5917 阅读 · 0 评论 -
android系统开发(五)-tslib移植
(1)切换至tslib目录然后执行如下命令(以marvell平台为例)./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" > arm-marvell-linux.cache./configure --host=arm-marvell-linux-gnueabi --prefix=/work/svn/ts_build --cache-file=arm-marvell-linux.cache上面三步仅仅是为了取得tslib目录下的config.h原创 2010-11-12 17:11:00 · 5716 阅读 · 3 评论 -
android系统开发(四)-触摸屏tslib移植(内核)和原理分析
首先了解一下tslib的运行原理,tslib的运行分成两部分(1)校验在LCD固定坐标位置依次显示出5个坐标让用户触摸,把LCD坐标和用户触摸时驱动屏驱动底层的坐标总共5组值保存起来运行tslib库的算法对其进行运算,得出校准用7个值(2)校准每次触摸屏驱动读取到硬件坐标时应用校准用的7个值对该坐标进行一次运算,然后将运算后的坐标作为正常坐标即可。按照上面的原理,(1)我们先修改内核部分,我的平台用的触摸屏幕驱动是tsc2007,驱动文件为内核/drivers/input/tou原创 2010-11-11 19:16:00 · 6700 阅读 · 0 评论 -
Android系统移植(三)-按键字符表
<br />上节讲android的Window Manager将内核按键码通过按键映射表转换成android按键码,<br />这节讲的是android按键码向android字符的转换,转换也是通过Window Manager来完成的<br />(1)原始按键字符表,我们知道一个按键是可以显示多个字符的,决定显示字符的是CAPS(大小写),FN,NUNMBER等按键<br />举例如下:<br />[type=QWERTY]原创 2010-11-11 10:25:00 · 4933 阅读 · 1 评论 -
Android系统开发小知识-在android产品开发中添加新的编译模块
<br />Android开发中用户内容定义在vendor目录下,而用户产品的内容都定义在vendor/<company_name>/<board_name>目录下<br />如果需要添加新的内容,可以在该目录下新建子目录,同时修改AndroidBoard.mk文件即可。比如说要添加一个按键映射文件:<br />(1)在vendor/<company_name>/<board_name>目录下建立一个keymaps子目录<br />(2)将我们需要的按键映射文件gpio-keys.kl和powe原创 2010-11-10 17:10:00 · 5239 阅读 · 2 评论 -
Android系统移植(二)-按键移植
<br />这一部分主要是移植android的键盘和按键<br />(1)Android使用标准的linux输入事件设备(/dev/input目录下)和驱动,按键定义在内核include/linux/input.h文件中,<br />按键定义形式如下:<br />#define KEY_ESC 1<br />#define KEY_1 2<br />#define KEY_2 3<br /><br />(2)内核中(我原创 2010-11-10 16:35:00 · 15774 阅读 · 8 评论 -
android系统开发小问题-启动过程中android字符没有显示出来
<br />android目标平台可以正常启动,但是启动过程中的android字符没有显示出来,这个是linux内核配置的问题<br />打开内核framebuffer控制台即可。<br />(1)make menuconifg后选择Device Drivers->Graphics support->Console display driver support->Framebuffer Console support<br />然后打开相关的几个配置选项即可。<br />(2)直接修改内核配原创 2010-11-11 11:33:00 · 3413 阅读 · 2 评论 -
android编译系统makefile(Android.mk)写法.txt
<br />android编译系统的makefile文件Android.mk写法如下<br />(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下<br />Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:<br />LOCAL_PATH:=$(call my-dir)<br />上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。<br />(2)Android.mk中可以定义多个编译模块,每个编译模块都是以incl原创 2010-11-09 11:37:00 · 9123 阅读 · 0 评论 -
Android系统移植(一)-让android系统在目标平台上运行起来
Android系统由于用的是linux内核,因此内核移植和嵌入式linux内核移植差异不大,过程如下:(1)移植boot-loader和linux2.6内核到目标平台上,让linux内核可以启动起来,基本的驱动允许正常。此过程完全是嵌入式linux的开发,这里直接跳过。需要注意的是,由于android已经被linux官方开除,因此从网站上(如http://www.kernel.org/)下载的最新linux内核源代码已经不包含android的专有驱动,因此建议从google网上下下载Linu原创 2010-11-10 11:41:00 · 14708 阅读 · 6 评论 -
创建一个新的Android产品项目
从google网站上下载的android源代码编译时默认是编译google设定的产品,如果要开发自己的产品,则需要重新定义一个产品项目,过程如下:首先我们定义产品的规格,举例如下:公司名称 ardent产品名称 MTP主板名称 merlin然后安装下面的步骤新建产品项目:(1)在源代码目录下创建一个用户目录mkdir vendor(2)在用户目录下创建一个公司目录mkdir vendor/merlin(3)在公司目录下创建一个products目录mkdir原创 2010-11-07 13:31:00 · 5267 阅读 · 3 评论 -
Android系统开发编译环境配置
<br />主机系统:Ubuntu9.04<br />(1)安装如下软件包<br />sudo apt-get install git-core <br />sudo apt-get install gnupg<br />sudo apt-get install sun-java5-jdk<br />sudo apt-get install flex<br />sudo apt-get install bison<br />sudo apt-get install gperf<b原创 2010-11-04 13:41:00 · 3242 阅读 · 1 评论 -
android系统开发小知识-启动脚本文件内部的执行顺序
<br />我们知道android在启动的时候通过init进程来解析init.rc和init.xxx.rc文件,<br />然后执行这两个文件解析出来的内容,init.rc和init.xxx.rc文件中的内容却并不是<br />按照顺序来执行的,而是有固定的执行顺序,首先,init.rc和init.xxx.rc文件中的内容<br />全部会放在4个关键字下:<br />early-init, init, early-boot, boot<br />所以一个典型的rc文件的写法如下:<br原创 2010-12-01 11:04:00 · 7010 阅读 · 1 评论 -
android系统开发(十)-audio移植一
<br />1,移植基础:<br />(1)内核声音驱动和alsa驱动<br />(2)alsa-lib和alsa-utils库移植<br />这两部分上一节已经介绍过了。<br /><br />2,android的audio最核心的部分是audioflinger,audioflinger向上处理来自于应用程序的声音相关的所有请求<br />向下通过AudioHardwareInterface访问硬件,android的audio架构如下所示:<br /> Ap原创 2010-12-01 10:27:00 · 12970 阅读 · 7 评论 -
android系统开发编译过程中的汇编错误
<br />android系统开发移植alsa-lib库的过程中编译的时候出现了如下的错误:<br />错误1<br />/tmp/cckyaR40.s: Assembler messages:<br />/tmp/cckyaR40.s:2763: Error: selected processor does not support `mrs ip,cpsr'<br />/tmp/cckyaR40.s:2764: Error: unshifted register required -- `原创 2010-11-30 14:54:00 · 6433 阅读 · 2 评论 -
android系统开发(八)-SDCARD
<br />关于android系统开发sdcard移植,主要有如下工作:<br />1,内核驱动开发,完成后每次插入和拔出sdcard系统都会有相关的信息显示,而且sdcard可以手动挂载。<br /><br />2,android的sdcard挂载主要是vold来完成,vold的源代码在/system/vold目录下,编译成/system/bin/vold<br />init.rc文件中有vold系统服务,确保android系统开机后vold有正常运行。<br /><br />3,添加vo原创 2010-11-25 16:59:00 · 9079 阅读 · 3 评论