编译环境搭建 源码修改 部分模块编译 源码编译 及整个过程中的各类问题

编译环境搭建

由于编译的是4.0.3的源码 必须使用1.6版本的JDK

jdk环境变量配置:
export JAVA_HOME=/home/vivien/Downloads/jdk1.6.0_45 
export JRE_HOME=/home/vivien/Downloads/jdk1.6.0_45/jre 
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
把环境变量配置在/home/vivien/.bashrc文件中是最好的选择。
由于ubuntu中可能会有默认的jdk,如openjdk。假如有openjdk的话,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。在终端充输入:
sudo update-alternatives --install /usr/bin/java java /home/vivien/Downloads/jdk1.6.0_45/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /home/vivien/Downloads/jdk1.6.0_45/bin/javac 300
sudo update-alternatives --install /usr/bin/javap javap /home/vivien/Downloads/jdk1.6.0_45/bin/javap 300
sudo update-alternatives --install /usr/bin/jar jar /home/vivien/Downloads/jdk1.6.0_45/bin/jar 300
然后执行source .bashrc使配置生效即可。
然后执行以下命令设置默认的java jdk
sudo update-alternatives --config java
在终端下进入你的SourceCode目录执行:
sudo chmod a+x * -R
这样子都给文件都加上了可执行权限
最后进行编译就可以了
源码修改

.mk文件:
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= external/tinyalsa/include
LOCAL_SRC_FILES:= MyTiny.c
LOCAL_MODULE := MyTiny
LOCAL_SHARED_LIBRARIES:= libcutils libutils libtinyalsa
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
部分模块编译

 tinyalsa模块单独编译:
cd /home/vivien/Downloads/android-4.0.3_r1
.  ./build/envsetup.sh
cd /home/vivien/Downloads/android-4.0.3_r1/external/tinyalsa
lunch
mm 整体源码编译

cd /home/vivien/Downloads/android-4.0.3_r1
. build/envsetup.sh
lunch
make
各类问题及解决方法

那如何让make重新编译源文件呢?
有时候,因为系统的不同,导致运行库版本不同,则需要重新编译源文件。方法如下:
>make clean(清除上次make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。)
>ldconfig  (该命令通常在系统启动时运行,确保动态链接库为系统所共享。当用户安装了一个新的动态链接库时,则需手工运行该命令。)
>make(执行makefile文件)

1.编译lunch时出现的错误,分析原因是:jdk tools.jar没有在环境变量中定义位置,jdk没有配置成功
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: build/core/find-jdk-tools-jar.sh: Permission denied
build/core/config.mk:268: *** Error: could not find , please install JDK6, which you can download from java.sun.com.  Stop.

** Don't have a product spec for: 'full_maguro'
** Do you have the right repo manifest?

2.源码编译make的错误与解决方法
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
解决方法: sudo apt-get install zlib1g-dev    sudo apt-get install lib64z1-dev
刷机过程

命令行:
cd /home/vivien/Downloads/android-4.0.3_r1/out/host/linux-x86/bin
adb reboot revorvery
adb reboot bootloader
fastboot flashall -w
cd /home/vivien/Downloads/android-4.0.3_r1/out/target/product/maguro/obj/EXECUTABLES/MyTiny_intermediates/LINKED
adb push MyTiny /data/local

你可能感兴趣的:(编译环境搭建 源码修改 部分模块编译 源码编译 及整个过程中的各类问题)