深入浅出 - Android系统移植与平台开发(一)

+-------------------------------------------------+

+      本系列为连载,不定期会更新       + 

+-------------------------------------------------+


一、Android4.0系统的下载与编译

Android系统的下载与编译,Google的官方网站上已经给出了详细的说明,请参照Android的官方网址:

http://source.android.com/source/index.html

内容主要分为:

1.        准备Android下载与编译环境

2.        下载源码

3.        编译源码及内核源码

下面我们依次来说明其步骤及注意事项。

1.      准备Android下载与编译环境

Android源码的编译Google只给出了在类Unix系统,确切的说是Ubuntu及MacOS上的详细过程,我们下面只描述Ubuntu上的编译过程。

1.1硬件环境:

l  足够快的PC机,如果有条件,最好是使用实体PC

l  内存最少1G,硬盘最少要30GB

注:也可以使用Vmware或VirtualBox等虚拟机软件,但是编译速度太慢,至于内存,如果小于1G,在编译系统时可能会出错。

1.2软件环境

我们使用Ubuntu12.04作为编译主机系统,(官方不建议使用Ubuntu12.04版本),由于Android系统里代码大部分是由Java语言写的,所以必然要安装JDK,不过,不同的版本,对JDK的版本有不同的要求:

l  在Gingerbread(2.3.x) 版本及其之后版本,使用JDK6.0,并且使用64位系统编译

l  在Gingerbread(2.3.x) 以前版本,使用JDK5.0,并且可以在32位系统上编译

注:当然我们通过修改一些配置文件,在32位系统上编译,但是不能保证编译出来的系统将来能否不出问题。

JDK6.0建议直接从SUN公司的网站上下载:

http://java.sun.com/javase/downloads/

安装编译时依赖的包:

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386

执行下面的命令:

$ sudo  ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so

2.      下载Android4.0及Goldfish源码

2.1 下载并初始化repo工具

依次执行下面的命令:

$ mkdir ~/bin
$ PATH=~/bin:$PATH

通过curl命令下载repo工具:

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

给repo工具加下执行权限:

$ chmod  a+x ~/bin/repo

创建我们的源码目录:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

初始化repo工具,准备访问google源码仓库:

$ repo  init -u  https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

有的时候使用上面的命令不能连接android服务器,我们可以使用下面的命令连接:

$ repo init -u   https://android.googlesource.com/a/platform/manifest -b android-4.0.1_r1

这个时候,要保证您的ubuntu能够上网,并且能正常连接到Android服务器,在初始化完repo工具后,会让你输入gmail邮箱及用户名验证。

2.2下载Android源码

通过执行下面的命令,开始下载Android源码:

$repo sync

如果你的PC机足够给力,可以在命令后面加上–jn,n表示多个线程同时下载,可以提高下载速度。

然后是漫长的等待,Android4.0.1的源码大概有6GB左右,一般1~2个晚上的时间。

有的时候,网络可能会断,我们可以使用下面的脚本来进行下载,当连接出错时,会自动下载。

#!/bin/bash
PATH=~/bin:$PATH
repo init-u https://android.googlesource.com/a/platform/manifest-b android-4.0.1_r1
repo sync
while [ $? != 0]; do
         echo“  **Error: sync failed, re-sync again”
         sleep 5
         repo sync
done

2.3其它源码下载源

前面所述的下载步骤是Google放出一官方版本的Android代码,它里面通常只有模拟器和部分和Google有合作关系设备的源码,如果要想编译一个目标设备的Android4.0.1系统,我们肯定要对其进行定制,不过有一些知名的设备生产厂商或第三方厂商,也会开源针对自己设备的Android系统,如:三星,高通等,比较专业的,网址如下:

www.linaro.org

linaro网站主要是ARM的芯片的最新Android解决方案,如:基于三星猎户座芯片的origen开发板,基于TI的OMAP系统芯片的PandaBoard板,基于Nova A9500 ARM 双核Cortex A9的snowball开发板等。

如果从上述网站上下载源码,要根据上述网站的说明进行相关操作。


2.4 下载模拟器Goldfish内核源码

Google在开发Android系统的同时,使用qemu开发了针对每个版本的一个模拟器,这大大降低了开发人员的开发成本,便于Android技术的推广。qemu是一个开源的模拟处理器软件,而Google使用qemu模拟的是ARM926ej-S的Goldfish处理器,如果开发人员在没有目标开发板的情况下,要对硬件进行操作的话,必然要去操作Android底层的驱动,我们可以使用模拟器的内核源码。

Ø  下载Goldfish内核源码

首先进入到Android的源码目录,创建源码目录kernel:

$ cd WORKING_DIRECTORY
$ mkdir kernel

从Android的远程源码仓库下载源码:

$git clone http://android.googlesource.com/kernel/goldfish.git   

当然,如果你要编译指定目标平台的kernel的话,也可以从指定的仓库里下载,官方给出了下列处理器的kernel:

$ git clone https://android.googlesource.com/kernel/common.git
$ git clone https://android.googlesource.com/kernel/exynos.git
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git clone https://android.googlesource.com/kernel/msm.git
$ git clone https://android.googlesource.com/kernel/omap.git
$ git clone https://android.googlesource.com/kernel/samsung.git
$ git clone https://android.googlesource.com/kernel/tegra.git

大概几十分钟后,下载完了,如下图所示:


在kernel目录下产生一个goldfish目录,进入到该目录下:

$ cd goldfish
$ ls -al

通过ls–al命令查看当前目录,可以看到隐藏的.git。


通过git branch –a来查看所以分支:

$ git branch -a


通过git checkout来得到源码:

$ git checkout remotes/origin/android-goldfish-2.6.29

如下图所示,当前目录下出现了Linux内核源码的目录结构:

 





  • 20
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: 《Android驱动开发移植实战详解》是一本系统讲解在Android平台上驱动开发移植的书籍。本书主要内容包括Android系统架构、驱动框架、Linux驱动开发方法、Android下驱动开发移植等方面。本书由易到难、由浅入深,从讲解Android系统架构和驱动框架开始,通过对Linux内核驱动开发方法的讲解来引入读者进入Android下驱动开发移植的实践。 本书从Android平台的体系结构开始,系统介绍了Android平台的各个组成部分,包括Java层、Native层和Linux内核层。在介绍完整个Android系统架构的同时,本书也详细讲解了Android内核的驱动框架,包括Linux内核驱动框架和Android内核驱动框架,并详细介绍了驱动的编写方法、调试方法和性能优化技巧。 本书还介绍了Android系统下常用硬件的驱动开发方法,包括USB驱动、SPI驱动、I2C驱动、MMC/SD卡驱动、LCD驱动、触摸屏驱动、按键驱动等。而且本书还详细介绍了Android系统的设备树,以及如何进行驱动的移植和调试。 总体来说,本书内容丰富,对Android驱动开发移植有一定的基础和经验的读者可以通过本书进一步提高自己的技术水平。该书能帮助读者深入理解Android系统的内在机制,掌握Android驱动开发移植的实际应用技能,是一本实用性强的专业书籍。 ### 回答2: 《Android驱动开发移植实战详解pdf》是一本关于Android系统驱动开发移植的专业性教材,主要介绍了如何进行Android系统驱动的开发、调试和移植,帮助读者掌握Android系统底层驱动的知识和技术。 本书首先介绍了Android系统的架构和驱动模型,深入分析了Android设备驱动的实现方式和工作流程。然后详细讲解了如何编写和调试Android驱动程序,包括内核模块、字符设备驱动、块设备驱动等多种类型的驱动开发。 此外,本书还解释了Android驱动程序的移植方法和技巧,包括从其他Linux系统移植Android驱动程序、自定义Android驱动程序以及如何把一个驱动程序移植到不同的设备上等重要内容。这样的话,读者可以在实际项目开发中更加容易地完成Android驱动程序的实现和移植。 总之,《Android驱动开发移植实战详解pdf》是一本涵盖了Android系统驱动开发移植等方面内容,对于想进一步了解Android系统底层工作原理的读者有着重要的指导意义。无论是初学者还是有经验的开发人员,在阅读本书后都可以获得很多关于Android驱动开发移植的实用技巧和工具。 ### 回答3: 《android驱动开发移植实战详解》是一本介绍Android驱动程序开发移植的实用指南。本书包含了许多基础概念、应用场景和实例,可以帮助读者快速学习Android驱动程序开发移植的实际应用。 本书的内容涉及很多主题,例如Android系统的架构和驱动模型、设备驱动程序的编写、驱动程序的调试和测试、不同类型设备的驱动程序移植等。其中,编写设备驱动程序需要掌握C语言的基础知识,而调试和测试则需要熟悉一些工具和技术。 本书的每一章节都配有大量的实例代码和案例分析,可以帮助读者深入理解Android驱动程序的开发移植流程。同时,作者也提供了一些实用的技巧和建议,例如如何选择最合适的驱动程序类型、如何调试设备驱动程序、如何在移植设备驱动程序时避免常见问题等。 总之,《android驱动开发移植实战详解》是一本非常实用的书籍,可以帮助Android开发者更加深入地了解驱动程序开发移植的实际应用。对于那些刚开始从事Android开发的读者来说,这本书也是一个非常不错的入门指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值