Android编译环境的搭建和编译

原创 2013年12月04日 18:14:03
Android编译环境的搭建和编译
    

第一部分,Android开发环境的硬件和软件平台介绍

一,开发服务器配置
作者的选用主机配置为i7-4770,16g ddr3-1600和500g HD。主机详情请查阅本博客下《Android开发服务器的搭建》附录一。

二,软件硬件平台选取
选取全志A20 K70的硬件方案,作为最基本的硬件平台。使用全志提供的Android 4.2 SDK开发包。


第二部分,构建Android编译环境

一,开始构建Linux编译环境

1,安装Android官方推荐的ubuntu12.04LTS AMD64版本。

2,编译Gingerbread (2.3.x)以上android版本(包含主流版本),应使用64位系统环境。

3,在虚拟机上是可以编译android的,但是至少要保证16G的RAM或SWAP和不少于30G的磁盘空间。

4,安装以下工具:Python 2.6-2.7,GNU Make 3.81-3.82,JDK 6(sun-java6-jdk),Git 1.7 or newer。


二,安装sun-java6-jdk包
由于ubuntu社区已经对sun-java6-jdk不提供支持了,所以,网上那些添加源的做法已经失效了。不用再尝试了。本方法通过wget命令从oracle下载bin文件,可以离线安装,这样更加具有普遍效应。

1,下载sun-java6-jdk的bin文件
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F" http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ chmod u+x jdk-6u45-linux-x64.bin  

2,安装过程
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ ./jdk-6u45-linux-x64.bin  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo mv jdk1.6.0_45 /opt  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.6.0_45/bin/java" 1  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/jdk1.6.0_45/bin/javac" 1  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "/opt/jdk1.6.0_45/jre/lib/amd64/libnpjp2.so" 1  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/jdk1.6.0_45/bin/javaws"   

3,选择默认的JDK版本(sun-java6-jdk)
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo update-alternatives --config java  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo update-alternatives --config javac  

4,设置JAVA_HOME环境变量
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ export _JAVA_HOME=/opt/jdk1.6.0_45/  

5,可能出现问题的解决方法
sun-java6-jdk最终安装到/opt目录下,在编译过程中可能出现找不到jar命令的情景;这时,就要为jar在/usr/bin/目录下创建一个链接文件。
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ cd /usr/bin  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo ln -s -f /opt/jdk1.6.0_45/bin/jar   
javadoc同样可能出现类似问题,解决方法类似
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ cd /usr/bin  
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $ sudo ln -s -f /opt/jdk1.6.0_45/bin/javadoc  

三,安装依赖包
    在安装过程中可能出现依赖关系的问题;一旦出现了,可以尝试一个个的安装相应的依赖包。
[plain] view plaincopy
  1. $ sudo apt-get install git gnupg flex bison gperf build-essential \  
  2.   zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \  
  3.   libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \  
  4.   libgl1-mesa-dev g++-multilib mingw32 tofrodos \  
  5.   python-markdown libxml2-utils xsltproc zlib1g-dev:i386  
[plain] view plaincopy
  1. $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so  
四,sun-java6-jdk安装终了


第三部分,全志A20 SDK的编译


一,SDK代码说明
全志A20 SDK包含2部分内容,lichee部分和android部分。需要分别进行编译。

二,编译lichee部分
1,确认mkimage是否存在
在编译lichee前,确认/usr/bin/下,是否存在mkimage。如果不存在,请将mkimage拷贝到/usr/bin/下,并将文件权限改为0777。

2,编译lichee部分
[plain] view plaincopy
  1. $ cd lichee  
[plain] view plaincopy
  1. $ ./build.sh -p sun7i_android  

三,编译android部分代码树
输入lunch命令后,选择17,K70平台。
$ cd ../android4.2.1
$ lunch    
$ extract-bsp
$ make -j16
$ pack

四,简要说明
1,在编译时,使用time这个参数,就可在编译结束后得到编译的所花费的时间。
2,pack命令将包括内核,u-boot,rootfs,android之类的通通打包成一个image固件。固件存放路径为:lichee\tools\pack\sun7i_android_wing-k70.img

第四部分,升级固件

一,固件存放位置
打包(pack)完后,在lichee/tools/pack目录下面有一个文件sun7i_android_wing-k70.img,该文件就是我们要烧录到板子的固件。

二,固件烧写
1,使用PhoenixSuit烧写固件。
在预览中打开sun7i_android_wing-k70.img。

2,长按非电源键,插入USB,不断按压电源键,这样PhoenixSuit提示烧写固件。在过程中,如果USB接触不良,可多重复几次。固件容量大,下载过程长。

3,烧写成功后,重新开启平板电脑。烧写的固件可能会与硬件不匹配,但是通过命令是可以查看,系统是否已经运行。

第五部分,附录
一,http://source.android.com/source/initializing.html#installing-required-packages-ubuntu-1204

二,https://help.ubuntu.com/community/Java#Oracle_.28Sun.29_Java_6



深入理解:Android 编译系统

简介: Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架。众所周知,Android 是一个开源的操作系统。Android 的源码中包含了...

嘿!让我们来手动编译安卓项目吧

本文有点像是在呼应我的文章放弃现代的ide, 拥抱命令行 。不过这次我是认真的。 对那些所谓魔法般的功能,我已经怕了。神秘的后台进程执行着我不知道也不晓得原理的任务。IDE就像知道我头脑里的想法似...

[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

1 前言经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历。先上图,Ubuntu上编译完后成功运行模拟器...
  • fuchaosz
  • fuchaosz
  • 2016年05月24日 09:33
  • 35154

Android编译系统详解(一)

++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_rapt...

Android源码编译之Nexus5真机编译

1.   前言 在Android安全的研究工作中,我们时常要对Android进行改进并对其进行源码编译,由于目前几乎所有的手机厂商均对其底层驱动实行封闭政策,导致我们在完成Android编译后无法将我...

完整的android开发环境搭建和源代码编译过程

参考网站: http://developer.android.com/sdk/index.html http://source.android.com/source/ 本人在Ubuntu 10....

Android 6.0源码编译环境搭建

Android 6.0源码编译环境搭建 环境搭建 1.安装安装Git,curl等依赖组件 对于AOSP 需要安装 sudo apt-get install git-core gnupg f...

Android编译系统环境初始化过程分析

Android源代码在编译之前,要先对编译环境进行初始化,其中最主要就是指定编译的类型和目标设备的型号。Android的编译类型主要有eng、userdebug和user三种,而支持的目标设备型号则是...

Android4.4编译环境的搭建和编译

Android4.4编译环境的搭建和编译第一部分:编译环境的硬件和软件平台介绍1、编译环境:Ubuntu 14.04 X86_64(64位) PS:官方建议12.04。小编使用的是8G真机,...

Ubuntu14.04搭建android源码编译环境

之前编译环境是刚进公司的时候老同志帮我搞定的,现在离职以后第一次要遍android源码,提供源码的人还只给了我一个地址https://source.android.com/source/initial...
  • a5nan
  • a5nan
  • 2016年05月11日 10:21
  • 2380
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android编译环境的搭建和编译
举报原因:
原因补充:

(最多只允许输入30个字)