Android 源码编译环境流程

简介: 1.准备可能需要的包 sudo apt-get install git-core gnupg  flex bison gperf libsdl-dev libesd0-dev libwxgtk2.
1.准备可能需要的包

sudo apt-get install git-core gnupg  flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev uboot-mkimage
sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6

2. 安装sun jdk1.5
安装jdk1.5到方法与安装jdk类似,需要注意的是环境变量的设置和  update-alternatives的选择
#
#tar xzvf jdk1.5.0.22_linux.tar.gz    #直接解压就可以了
#mv jdk  /usr/lib/jvm/
#mv jdk jdk1.5                          #修改目录名称

编辑环境变量
# gedit /etc/environment
JAVA_HOME=/usr/lib/jvm/jdk1.5

PATH=".:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME/bin:"

export JRE_HOME=$JAVA_HOME/jre
export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ANDROID_JAVA_HOME=$JAVA_HOME

根据自己机器情况改为以上内容。

由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。
执行
#update-alternatives --install /usr/bin/java java /usr/lib/jvm/键打开。5/bin/java 400

sudo update-alternatives --install /usr/bin/javac javac /home/yelin/jdk1.5.0_22/bin/javac 400

sudo update-alternatives --install /usr/bin/javah javah /home/yelin/jdk1.5.0_22/bin/javah 400

sudo update-alternatives --install /usr/bin/jar jar /home/yelin/jdk1.5.0_22/bin/jar 400



sudo update-alternatives --install /usr/bin/javadoc javadoc /home/yelin/jdk1.5.0_22/bin/javadoc 400

#update-alternatives --config java    #jdk1.5
#update-alternatives --config javac   #选择 jdk1.5
#update-alternatives --config javadoc   #选择 jdk1.5
#java -version    #应该是java version "1.5.0_22"


注意android2.2 make sdk时必须用jdk1.5的javadoc才能编译通过,因此建议用jdk1.5编译。也可以jdk用1.6,javadoc用jdk1.5的。




3 编译2.2源码
源码放在/home/yourname/froyo下

#sudo -i
#cd /home/yourname/froyo
#chmod 777 -R *
#make    #等待2个多小时编译完成
#ls -l out  #可以看到编译出来到文件




安装 sun jdk1.6(可选)
查看jdk版本,如果不是 sun jdk1.6需要安装

#java -version   

#sudo -i
#apt-get install sun-java6-jdk libwxgtk2.6-dev


编辑环境变量
# gedit /etc/environment
JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.20

PATH=".:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME/bin:"

export JRE_HOME=$JAVA_HOME/jre
export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ANDROID_JAVA_HOME=$JAVA_HOME

根据自己机器情况改为以上内容。

#sudo source /home/yourname/.bashrc  #此时,环境变量设置成功

由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。
执行
#update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-6-sun-1.6.0.20/bin/java 300

#update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-6-sun-1.6.0.20/bin/javac 300
#update-alternatives --config java    #选择 java-6-sun-1.6.0.20
#update-alternatives --config javac   #选择 java-6-sun-1.6.0.20
#java -version    #应该是Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)
目录
相关文章
|
4天前
|
Android开发 iOS开发
android自动化编译
android自动化编译
|
5天前
|
ARouter IDE 开发工具
Android面试题之App的启动流程和启动速度优化
App启动流程概括: 当用户点击App图标,Launcher通过Binder IPC请求system_server启动Activity。system_server指示Zygote fork新进程,接着App进程向system_server申请启动Activity。经过Binder通信,Activity创建并回调生命周期方法。启动状态分为冷启动、温启动和热启动,其中冷启动耗时最长。优化技巧包括异步初始化、避免主线程I/O、类加载优化和简化布局。
26 3
Android面试题之App的启动流程和启动速度优化
|
3天前
|
C# Android开发 开发者
Android gradle编译时字节码处理
Android gradle编译时字节码处理
7 1
|
10天前
|
Android开发
Android面试题之activity启动流程
该文探讨了Android应用启动和Activity管理服务(AMS)的工作原理。从Launcher启动应用开始,涉及Binder机制、AMS回调、进程创建、Application和Activity的生命周期。文中详细阐述了AMS处理流程,包括创建ClassLoader、加载APK、启动Activity的步骤,以及权限校验和启动模式判断。此外,还补充了activity启动流程中AMS的部分细节。欲了解更多内容,可关注公众号“AntDream”。
13 1
|
11天前
|
Java Linux Android开发
Android面试题之说说系统的启动流程(总结)
这篇文章概述了Android系统的启动流程,从Boot Rom到Zygote进程和SystemServer的启动。init进程作为用户级别的第一个进程,负责创建文件目录、初始化服务并启动Zygote。Zygote通过预加载资源和创建Socket服务,使用fork函数生成SystemServer进程。fork过程中,子进程继承父进程大部分信息但具有独立的进程ID。Zygote预加载资源以减少后续进程的启动时间,而SystemServer启动众多服务并最终开启Launcher应用。文中还讨论了为何从Zygote而非init或SystemServer fork新进程的原因。
20 2
|
14天前
|
前端开发 JavaScript 测试技术
|
3天前
|
Java 程序员 API
Android 编译插桩操纵字节码
Android 编译插桩操纵字节码
5 0
|
6天前
|
存储 XML 数据库
深入地了解Android应用开发的流程和技术
深入地了解Android应用开发的流程和技术
8 0
|
10天前
|
vr&ar 数据库 Android开发
Android面试题之ActivityManagerService的启动流程
本文探讨了Android系统的SystemServer启动过程,包括创建SystemContext、引导服务、启动各类核心服务以及AMS的启动和初始化。AMS负责管理activity、广播队列、provider等,并设置SystemProcess,安装系统Provider。当AMS调用SystemReady时,系统UI准备启动,启动Launcher。文中还对比了init、zygote和system_server进程的角色。最后推荐了两本关于Android内核剖析的书籍:柯元旦教授的《Android内核剖析》和罗升阳的《Android系统源代码情景分析》。关注公众号AntDream获取更多内容。
12 0
|
1月前
|
数据采集 Java 开发工具
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境