Android深度探索读后感 第四章

第四章 源代码的下载和编译

Android源代码包含的东西:内嵌在android系统中的应用程序:拍照,计算器,日历,相册,拨号器等的源代码;android SDK带的各种工具:如:adb,  emulator  mksdcard  apt等的源代码,android ndk的源代码。Hal源代码。

一、下载、编译和测试源代码:

1.配置android源代码下载环境:

(1)创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件放到任何目录中,使用~/bin);

#madir  ~/bin

#path  ~/bin :$path

(2)下载repo脚本(用于下载源代码);

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

#chmod a+x ~/bin/repo

(3)创建用于存放android源代码的目录(可放在其他目录中);

# mkdir android_reource

# cd android_source

(4)初始化;# repo init -u https://android.googlesource.com/platform/manifest

(5)开始下载android源代码;# repo sync

2.android源代码目录结构解析;

android部分源代码的含义:

abi:应用程序二进制接口;

Device:与设备相关的代码;

Hardware:硬件层和库。

Sdk:在开发环境中使用的工具。

3.下载android源代码中的一部分,

下载android源代码的子项目的方法:

使用reop sync命令# repo sync platform/bootable/recovery

或是使用git clone命令:# git clone http://android.googlesourse.com/<project name>

4.编译android源代码的步骤:第一步:初始化编译环境:

# source build/envsetup.sh或# . build/envsetup.sh 第二步;选择目标:# lunch full-eng 第三步:编译android源代码:# make

5.out目录结构分析;out目录是存放编译andriod源代码生成的目标文件的默认目录。镜像文件可以使用android模拟器或真机中测试。

6.将自己的APK作为内置程序发布;为了测试文件,可以将一个自己生成的apk程序嵌入到文件中。

7.用模拟器测试system.img文件。

二、下载和编译linux内核源代码:

下载linux内核源代码;git clone http://android.googlesource.com.kernel/common.git,执行这个命令可以下载到最新的内核源代码,查看当前的远程版本用git branch -a ,使用git checkout -b android-3.0 remotes/origin/android-3.0导出android3.0的内核;# git clone http://android,googlesourse.com/kernel/goldfish.git

# git checkout -b android-goldfish-2.6.29 remotes/origin/android-goldfish-2.6.29   //导出goldfish

安装android内核的编译环境有4个步骤:1.准备工作

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

2.解压

3.验证交叉编译器是否安装成功# ls /user/local/arm -1

4.安装libncurses5# apt-get install libncurses5-dev

5.配置和编译linux内核。

时间: 2024-11-05 12:18:21

Android深度探索读后感 第四章的相关文章

Android深度探索笔记-第四章

下载适应Android的linux内核,应该通过谷歌提供的url去下载,不是随便下载的都可以兼容的.之后严格执行书上的步骤就可以下载的Android的源代码.而依靠版本库(.git)就可以通过repo sync方便的下载更新版本变化的内容,切不可删除.git. 我们也可以只下载部分的源代码,通过reop sync platform/想下载的部分的目录,可以发现,若要精确下载,必须熟悉软件的目录结构.而使用git clone 具体部分的url,也可以完成部分下载. Envsetup.sh用来初始化

Android深度探索读后感 第三章

第三章 Git使用入门 开源:开源也称开放源码,它的作用是:用于描述那些源码可以被公众使用的软件,并且此软件的使用.修改和发行也不受许可证的限制. 源代码:也称源程序是指未编译的按照一定的程序设计语言规范书写的文本文件,是可读的计算机语言指令. 源代码主要作用:生成目标代码和对软件进行说明. 编译并安装源代码:一般使用 Make  ,Make install 等命令 一般源代码还需要一点的制度进行管理, 一.安装Git 关键步骤:Ubuntu linux10.10或更新的版本:可以使用apt-g

《Android深度探索》第五章心得体会

<Android深度探索>第五章讲的是搭建S3C6410开发板的测试环境.S3C6410开发板是由三星公司生产的一款开发板产品,具有许多优点.本书的研究就是基于这块开发板的. 搭建环境需要先安装串口调试工具,然后烧入Android系统. 1. 安装串口调试工具:minicom, 第1步:输入命令 insmod | grep usbserial命令检测当前系统是否支持USB转串口: 第2步:输入命令apt-get install minicom命令安装minicom: 第3步:输入minicom

《Android深度探索》第七章心得体会

<Android深度探索>第七章讲的是LED将为我闪烁:控制发光二极管.1.创建LED驱动的设备文件:第1步:使用cdev_init函数初始化cdev:第2步:指定设备号,Linux设备文件的设备号分为主设备号和次设备号.设备号有直接在代码中指定和动态分配两种指定方法:第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中:第4步:使用class_create宏创建struct class:第5步:使用device_create函数创建设备文件.2.卸载LED驱动的设备文件,需

《Android深度探索卷一》第一章Android系统移植与驱动开发概述。

<Android深度探索>第一章讲的是Android系统移植与驱动开发概述.这一章节将对Android以及Linux驱动做一个总体的介绍. Android是一个非常优秀的的嵌入式操作系统.经过几年的发展和演进,Android已经形成了非常完善的系统架构.Android的系统架构分为四层,如下图 Android移植可分为两部分:应用移植和系统移植. Android系统移植是指让Android操作系统在某一个特定硬件平台上运行.使一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件

Android深度探索读后感第二章

第二章 搭建Android开发环境 Android底层开发的环境,主要包括:Android应用程序开发环境,Android  NDK开发环境和交叉编译环境的搭建. Android应用程序开发环境:第一步:安装JDK.第二步:配置Windows上JDK的变量环境 .第三步: 下载安装Eclipse第四步:下载安装Android SDK .第五步:为Eclipse安装ADT插件. 一.Android底层开发需要一定的工具:如JDK6,交叉编译环境Eclipse3.4linux内核源代码CDT.And

Android深度探索读后感 第一章

第一章 介绍Android驱动开发和移植技术 一.Android的四层系统架构: Android的系统架构分为4层,分别为:Linux内核,C/C++代码库,Android SDK API,应用程序. Linux内核:Linux内核包括Linux的驱动以及内存管理,进程管理,电源管理等程序. Linux的驱动:驱动就是驱使硬件设备行动.驱动是直接与底层硬件直接打交道,按照一定的工作方式,读写设备的寄存器,具有完成设备的轮询.中断处理.DMA通信,进行物理内存向虚拟内存的映射等功能,最终让通信设备

Android深度探索心得(四)

本章主要学的是下载.编译.和测试Android源代码.其次就是学到了下载和编译Linux内核源代码. 首先是编译Android源代码,由于Android源代码中的每一个工程目录都有Android.mk文件,所以在编译整个Android源代码时会递归调用每一个工程目录中的Android.mk文件来编译当前工程. 编译步骤如下: 1. 在Linux终端执行两条命令中的任何一个 #source build/envsetup.sh #.build/envsetup.sh 2. 实用lunch命令设置编译

《Android深度探索》第六章心得体会

第六章讲述了一个简单的驱动程序:统计单词个数 本章的重点在于了解到linux将每一个驱动都映射到一个文件当中,保存在/dev中.目的在与使与linux驱动的交互变得简单.另外很重要的一点就是需要指定回调函数,回调函数可以处理设备文件交换的数据. 第一步.建立linux驱动骨架 目的是给linux程序创建一个基本结构.Linux驱动中一般使用moudle_inie和moudle_exit来宏指定.因为这是linux驱动中比较重要的两个函数.所以包含这两个函数的文件也可以看作是linux驱动的骨架