源代码的下载和编译

4.1 下载、编译和测试Android源代码

4.2下载和编译linux内核源代码

4.1.1 配置Android源代码下载环境

(1) 创建一个用于存放下载脚本文件的目录

# mkdir -/bin

# PATH=-/bin:$PATH

(2) 下载repo脚本文件

# curl https://dl-ssl.google.com/dl/goolesource/git-repo> -/bin/repo

# chmod a+x ~/bin/repo

(3) 创建用于存放Android源代码的目录

# mkdir android _source

# cd android_source

(4) 初始化

# repo init -u http://android.googlesource.com/platform/manifest

(5) 开始下载android源代码

# repo sync

4.1.2 Android源代码目录结构解析

                 Android源码目录结构

4.1.3 下载android源代码中的一部分

法一:使用repo sync命令

#  repo sync platform/bootable/recovery

法二:使用git clone 命令

# git clone https://android.googlesource.com/<project name>

4.1.4编译android源代码

(1)初始化编译环境

# source build/envsetup.sh或#. Build/envsetup.sh

(2)选择目标

# lunch full-eng

(3)编译Android源代码

# make -jn

4.1.5 out目录结构分析

  out目录结构

Out目录是存放Android源代码生成的目标文件的默认目录,out目录里只有两个直接的子目录:host和target

4.2 下载和编译linux内核源代码

要想使用linux内核,必须单独下载linux内核源代码

4.2.1下载linux内核源代码

# git clone https://android.googlesource.com/kernel/common.git

4.2.2 linux 内核源代码的目录结构

Linux内核源代码目录的含义

4.2.3安装Android内核的编译环境

(1)准备工作

将arm-linux-gcc-4.3.2tgz文件和arm-none-linux-guneabi-arm-2008q3-72-for-linux.tar.bz2文件复制到工作目录

(2)解压编译器

# tar xzvf arm-linux-gcc-4.3..tgz -C /

# tarjxvf arm-none-linux-guneabi-arm-2008q3--for-linux.tar.bz2 -C /

(3)验证交叉编译器是否安装成功

# ls /usr/local/arm -l

(4)安装libncurses5

# apt-get install libncurses5-dev

4.2.4  配置和编译linux内核

可以使用以下命令进行编译

# export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH

# cd ~/linux_kernel

# make clean

# make

小结:

Android移植主要就是linux内核的移植,而linux内核的移植主要是linux驱动的移植,所以为了开发和测试linux驱动需要在Ubuntu linux下搭建两套开发环境:Android应用程序开发环境和linux内核开发环境。

Android驱动开发前的准备(四)的更多相关文章

  1. Android驱动开发前的准备

    最近看了一些Android驱动开发前需要知道的资料,收获很多,接下来就谈谈我自己的一些心得体会. Android在近几年时间发展迅速,已经成为智能手机操作系统的老大.不过,因为Android原生的代码 ...

  2. 初入android驱动开发之字符设备(四-中断)

    上一篇讲到android驱动开发中,应用是怎样去操作底层硬件的整个流程,实现了按键控制led的亮灭.当然,这是一个非常easy的实例,只是略微演变一下,就能够得到广泛的应用. 如开发扫描头,应用透过监 ...

  3. android驱动开发前的准备(五)

    搭建S3C6410开发板的测试环境 首先安装串口调试工具 第一步:检测当前系统是否支持USB转串口 # lsmod | grep usbserial 第二步:安装minicom # apt-get i ...

  4. Android驱动开发前的准备(三)

    Git使用入门 3.1安装Git 3.2查看Git文档 3.3源代码的提交与获取 3.1安装Git # apt-get install git # apt-get install git-doc gi ...

  5. Android驱动开发前的准备(一)

    Android系统移植与驱动开发概述 1.1 Android 系统架构 1.2 Android系统移植的主要工作 1.3 查看linux内核版本 1.4 linux内核版本号的定义规则 1.5 lin ...

  6. Android驱动开发前的准备(二)

    搭建android开发环境 2.1 Android底层开发需要哪些工具 2.2 安装 JDK 2.3 搭建Android 应用程序开发环境 2.4安装Android NDK开发环境 2.5安装交叉编译 ...

  7. Android驱动开发5-8章读书笔记

    Android驱动开发读书笔记                                                              第五章 S5PV210是一款32位处理器,具有 ...

  8. 初入android驱动开发之字符设备(一)

    大学毕业,初入公司,招进去的是android驱动开发工程师的岗位,那时候刚进去,首先学到的就是如何搭建kernel.android的编译环境,然后就是了解如何刷设备以及一些最基本的工具.如adb.fa ...

  9. Android安卓书籍推荐《Android驱动开发与移植实战详解》下载

    百度云下载地址:点我 Android凭借其开源性.优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统. <Android驱动开发与 ...

随机推荐

  1. Swift 2.0 异常处理

    转自:http://www.jianshu.com/p/96a7db3fde00 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主 ...

  2. php 数据库insert函数

    <?php function into($constr) { $con = mysql_connect("localhost","root"," ...

  3. oracle 解决backspace和上下键使用出现乱码

    在bash提示符下,使用Del键或者Backspace键都能删除光标左右的字符,但是一旦进入sqlplus之后,只能使用Del键来删除光标左侧的字符,使用Backspace键则显示^H,使用ctrl+ ...

  4. 事件问题 Event

    Event事件可以理解为在异步过程中实现同步的操作.但是要注意不要过分的使用Event,否则异步就失去了意义. 直接通过代码来说明: #include

  5. leetcode日记 Combination sum IV

    题目: Given an integer array with all positive numbers and no duplicates, find the number of possible ...

  6. Comparison method violates its general contract 关于jdk自带算法问题

    昨晚上线,线上报了一个问题,用的jdk8,用的collections.sort方法, public static void main(String[] args) { List<Integer& ...

  7. 如何使用.NET开发全版本支持的Outlook插件产品(三)——全面控制

    插件项目所有代码都已经上传至 https://github.com/VanPan/TestOutlookAdding 进阶基础--COM查看 首先,对于Outlook对象模型,MSDN早就有非常详细的 ...

  8. CSS3的透明度使用

    大家在敲代码的时候总会遇见一个问题.就是透明度opacity 会导致整个元素内全部都会改变,通常的方法是在同级元素后面再加上一个元素标签,但是现在有CSS3 ,我们完全不用这么做了.看代码 <! ...

  9. 关于linq to sql类线程同步问题

    例如,下面一段代码,当两个线程同时访问时会出现各种由于线程不同步而导致的问题,比如什么DataReader已打开未关闭啊,已经添加了重复的键啊等等. /// <summary> /// 当 ...

  10. Android数据持久化技术 — — —SharedPreferences

    SharedPreferences是使用键值对的方式来存储数据. 要想使用SharedPreferences来存储数据,必须获取SharedPreferences对象,获取SharedPreferen ...