源代码的下载和编译

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. 计算机网络(10)-----TCP的拥塞控制

    TCP的拥塞控制 拥塞(congestion) 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏. 拥塞控制 拥塞控制就是防止过多的数据注入到网络中,这样可以使网 ...

  2. RoseRT配置高版本的编译器

    RoseRT配置高版本的VC++ ,我有VC++2008 Express ,实习时下载滴! 感谢Google,感谢大神地指导!困扰的问题终于解决,豁然开朗,so开始吧! 第一大步:重中之重, 确保nm ...

  3. JS技术大全

    事件源对象:event.srcElement.tagName  event.srcElement.type 捕获/释放:event.srcElement.setCapture();  event.sr ...

  4. leetcode日记 Product of Array Except Self

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...

  5. SIT_服务器系统整合测试总结

    从2012年到2015年我的3年服务器测试,感觉一下子时间就已经飞逝而过,一直希望做个前三年的工作总结,现在用我那笨拙的笔触记录下自己的三年服务器测试生活! ***2012-2013 SE 这一年基本 ...

  6. zepto.js学习

    除了$( Zepto)对象上的直接方法外(如$.extend),文档对象中的所有方法都是集合方法. $.grep v1.0+ $.grep(items, function(item){ ... }) ...

  7. 论文 查重 知网 万方 paperpass

    相信各个即将毕业的学生或在岗需要评职称.发论文的职场人士,论文检测都是必不可少的一道程序.面对市场上五花八门的检测软件,到底该如何选择?选择查重后到底该如何修改?现在就做一个知识的普及.其中对于中国的 ...

  8. Java 自定义注解

    在spring的应用中,经常使用注解进行开发,这样有利于加快开发的速度. 介绍一下自定义注解: 首先,自定义注解要新建一个@interface,这个是一个注解的接口,在此接口上有这样几个注解: @Do ...

  9. [SSH] SSH学习笔记 - 远程登录

    1.SSH登陆/登出命令 $ ssh <hostname> #登入 $ exit #登出 known_hosts 每个用户都有自己的known_hosts文件,路径:(username)/ ...

  10. 关于在工程中添加新文件时的LNK2019错误的一个解决办法

    我这几天一直在研究Qt的串口程序,在读懂了官方给出的实例程序后我决定把其多线程的串口监视程序加入到我自己的工程中,便直接把问价复制到自己的工程下面,在Qt中加入到自己的工程中,但是总是出现LNK201 ...