当前位置:文档之家› Android源码编译

Android源码编译

Android源码编译开发工具:Ubuntu10.04在Ubuntu下使用root用户登录,注意root一开始是锁定的,使用如下命令解锁:sudopasswd root 按回车铵,提示输入当前密码,在提示输入二次密码。

输入完成切换用户使用root用户登录。

Android源码结构Makefile (全局的Makefile)bionic (Bionic含义为仿生,这里面是一些基础的库的源代码)bootloader(引导加载器)build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)dalvik (JAVA虚拟机)development(程序开发所需要的模板和工具)external (目标机器使用的一些库)frameworks (应用程序的框架层)hardware (与硬件相关的库)kernel (Linux2.6的源代码)packages (Android的各种应用程序)prebuil (Android在各种平台下编译的预置脚本)recovery (与目标的恢复功能相关)system (Android的底层的一些库)Out (编译好的文件)编译Android源码必需的安装的软件包g++库文件有可能Ubuntu自带,使用g++ -v命令查找是否安装,如果没有自带请手动安装,使用如下命令,sudo apt-get-install g++-4.4.注意:g++分很多版本,如果使用了最新版本4.6将没办法编译,建议安装4.4版本Gcc库文件有可能Ubuntu自带,使用gcc–v命令查找是否安装,如果没有自带使用如下命令手动安装,sudo apt-get-install gcc-4.4.注意:gcc分很多版本,如果使用了最新版本4.6将没办法编译,建议安装4.4版本不过还有一些应该是linux系统自带的,如果缺少就按照提示install一下sudo apt-get install build-essentialsudo apt-get install makesudo apt-get install libc6-devsudo apt-get install patchsudo apt-get install texinfosudo apt-get install libncurses-devsudo apt-get install git-core gnupgsudo apt-get install flex bison gperflibsdl-dev libesd0-devlibwxgtk2.6-dev build-essential zip curlsudo apt-get install ncurses-devsudo apt-get install zlib1g-devsudo apt-get install valgrindsudo apt-get install python2.5安装java环境首先从sun官方网站下载jdk-6u16-linux-i586.bin文件并安装它。

使用./jdk-6u16-linux-i586.bin命令进行安装Java jdk环境变量配置,打开系统文件找到etc/profile文件打开将如下代码复制到,倒数第二行,注销用户才能生效export JAVA_HOME=/usr/java/jdk1.6.0_14export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar注意:如果编译Android2.3源码就要安装程1.6版本的JDK,编译Android2.2源码就要安装1.5JDK。

配置jdk环境变量方法有好几种,那也是对应你ubuntu版本定,如果你使用ubuntu10.04请照以上方法配置.还有一点要注意的是在etc/environment文件配置坏境变量,下次启动ubuntu将无法登录.源码编译步骤注意arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu 和arm-2010q1 拷贝到/opt/目录下编译rootfs进入源码跟目录输入如下命令. build/envsetup.sh(注意:”.”与build有个空格)Lunch输入12(注意:编译Android2.3源码才能输入12)Make update-api更新apimake编译rootfs需要2到5个小时,可能出现的错误如:1.找不到命令,说明所需要的库文件没安装解决方法,输入如下命令安装库文件sudo apt-get install git-core flex bison gperflibsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-devsudo apt-get install git-core gnupg flex bison gperf build-essentialsudo apt-get install zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libssudo apt-get install x11proto-core-dev libx11-dev lib32readline5-dev lib32z-devsudo apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodospython-markdownsudo apt-get install libxml2-utils2.如果出现如下错误是JDK没安装好或配置环境变量配错解决方法使用命令Java –version查看是否JDK安装成功首先从sun官方网站下载jdk-6u16-linux-i586.bin文件并安装它。

使用./jdk-6u16-linux-i586.bin命令进行安装Java jdk环境变量配置,打开系统文件找到etc/profile文件打开将如下代码复制到倒数第二行,注销用户才能生效export JAVA_HOME=/usr/java/jdk1.6.0_14export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar3.提示只能在64位系统下编译Checking build tools versions...build/core/main.mk:76: ********************************************** **************build/core/main.mk:77: You are attempting to build on a 64-bit system. build/core/main.mk:78: Only 64-bit build environments are supported b eyond froyo/2.2.build/core/main.mk:79: ********************************************** **************build/core/main.mk:80: *** stop。

停止。

解决方法因为Android2.3默认是64位的系统上编译,需要手动修改build/core/main.mk,把这个判断部分注释掉:#ifneq (64,$(findstring 64,$(build_arch)))#$(warning ********************************************************** **)#$(warning You are attempting to build on a 32-bit system.)#$(warning Only 64-bit build environments are supported beyond froyo/ 2.2.)#$(warning ********************************************************** **)#$(error stop)#endif4.提示如下错误,gcc库文件版本不对解决方法使用命令gcc–v查看gcc库文件信息,删除当前gcc库文件,重新安装4.4.3版本5.提示g++找不到命令,出现如下错误解决方法使用命令g++ -v查看g++库文件信息.打开ubuntu自带的新立得, 输入g++找到g++4.4.3版本,打勾点应用进行安装编辑kernel进入andorid源码的kernel目录Make meson_refc03_defconfigMake uImagecp arch/arm/boot/uImage ../out/target/product/c03ref/注意:编译出来的uimage文件大小3.6M左右编辑recovery进入android源码kernel目录.env.shMake meson_refc03_defconfigMake uImagecp arch/arm/boot/uImage ../out/target/product/c03ref/uImage_recovery 注意:编译recovery的文件为3.8M,如果小于2M将无法安装,解决方法,输入如下命令. env.shMake meson_refc03_defconfigMake menuconfig选择第一项找到如下项输入如下路径,完成记得保存重新编译kernel和recoveryAndroid源码打包,回到源码跟目录,输入如下命令. build/envsetup.shLunch12Make otapackage打包完成将放在../out/target/product/c03ref下1把自己项目copy到源码的packages/amlogic下2项目里的bin和get文件删除3添加Android.mk文件3修改Android.mk,添加如下代码#ifeq ($(BOARD_USE_DEFAULT_AML2DLAUNCHER_MBX),true)LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME :=com.hotel.jago.activity注意:这里是自己项目的包名LOCAL_CERTIFICATE := platformLOCAL_OVERRIDES_PACKAGES := Homeinclude $(BUILD_PACKAGE)#endif4打包自己的项目,在源代码跟目录输入如下命令. build/envsetup.shLunch12cd 进入自己项目的位置mmapk放在out/target/product/c03ref/system/appapk有关文件放在out/target/product/c03ref/obj/apps删除launchdevice/amlogic/c03ref/c03ref.mk打开删除有关launch代码out/target/product/c03ref/system/app找到有关的apk删除out/target/product/c03ref/obj/apps找到有关文件删除添加启动项在项目的资源文件(androidManifext.xml)添加如下代码<category android:name="android.intent.category.HOME" /><category android:name="android.intent.category.DEFAULT" />。

相关主题