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

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

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

Android 6.0源码编译环境搭建

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

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

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

Android开发服务器的搭建

android开发服务器的构建 一,硬件配置 1,CPU:I7-4770; 2,RAM:16G-DDR3 1600; 3,HD:500G; 二,服务器搭建过程 1,在DVD内插入ubu...
  • chwenj
  • chwenj
  • 2013-09-22 18:47
  • 23666

Android服务器编译

///////////////////////////////////////////////////系统编译/////////////////////////////////////////////...

使用阿里云服务器搭建Android自动构建平台Jenkins

使用阿里云服务器搭建Android自动构建平台Jenkins  欢迎转载,但是不要忘记写明出处哟~      阿里云服务器推出了一个15天试用计划,以前从来没玩过云服务器这么先进的东西,于是申请了...
  • wjc133
  • wjc133
  • 2015-10-18 19:41
  • 2836

Android 源码编译详解【一】:服务器硬件配置及机型推荐-2016/06

做 Android系统开发2年多,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一切环境都要重新搭建,有幸当此重任,因为自己之前也只是用过,并...

远程连接Linux服务器编译Android源码

首次开始编译Android源码。
  • zyp009
  • zyp009
  • 2014-09-05 13:30
  • 1174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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