您的位置:首页 > 移动开发 > Android开发

fedora 18 安装android

2013-09-24 12:21 218 查看
目录(?)[+]

操作系统和android的版本

使用环境:fedora 18 x86_64

android版本:android-4.2

安装依赖环境

<1>安装系统相关软件包

[plain] view
plaincopy

yum install -y zip curl gcc gcc-c++ flex bison gperfglibc.i686 glibc-devel.x86_64glibc-devel.i686, zlib-devel.x86_64zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libstdc++.i686 libsx-devel readline-devel.i686 libXrender.i686 libXrandr.i686 schedtool pngcrush perl-Tk perl-Digest-MD5  perl-Switch SDL.i686 mesa-libG   

<2>安装JDK:

卸载openjdk

[plain] view
plaincopy

rpm -qa|grep open|grep jdk|xargs rpm -e --nodeps  

下载并安装sun-jdk,在此使用的是jdk-6u45-linux-x64.bin

[plain] view
plaincopy

cp jdk-6u45-linux-x64.bin /usr/local;  

cd /usr/local;  

sh jdk-6u45-linux-x64.bin;  

将java设置到环境变量中去,在文件/etc/bashrc中添加以下行

[plain] view
plaincopy

export JAVA_HOME=/usr/local/jdk1.6.0_45  

export PATH=$PATH:$JAVA_HOME/bin  

下载及编译

下载源代码

参照http://source.android.com/source/downloading.html

编译源码

<1>设置缓存

[plain] view
plaincopy

export USE_CCACHE=1  

prebuilts/misc/linux-x86/ccache/ccache -M 50G  

<2>编译

[plain] view
plaincopy

source build/envsetup.sh;  

lunch full-eng;  

make -j2  

编译sdk

[plain] view
plaincopy

make -j2 PRODUCT-sdk-sdk  

编译golden_fish内核

<1>参照http://source.android.com/source/building-kernels.html下载内核源码。
<2>参照http://source.android.com/source/building-kernels.html配置编译环境,将以下加入到环境变量中,其中android源代码位置为:/home/android/android

[plain] view
plaincopy

export ARCH=arm  

export SUBARCH=arm  

export CROSS_COMPILE=arm-eabi-  

export PATH=$PATH:/home/android/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin  

<3>执行以下命令进行编译

[plain] view
plaincopy

make goldfish_armv7_defconfig  

[plain] view
plaincopy

make -j2  

运行模拟器

<1>将sdk加入到环境变量,其中android源代码位置为:/home/android/android

[plain] view
plaincopy

export SDK_DIR=/home/android/android/out/host/linux-x86/sdk/android-sdk_eng.android_linux-x86  

export PATH=$PATH:$SDK_DIR/tools  

<2>创建sdcard

[plain] view
plaincopy

mksdcard 512M sdcard.img;  

android create avd --target 1 --name test --sdcard sdcard.img;  

android list avd;  

<3>检验emulator是否可用

[plain] view
plaincopy

emulator @test  

将进入到android模拟器的界面,并能够启动系统。
<4>检验核心是否可用

[plain] view
plaincopy

emulator @test -kernel kernel/goldfish/arch/arm/boot/zImage  

<5>通过模拟器运行整个系统

[plain] view
plaincopy

emulator @test  -kernel /home/android/android/kernel/goldfish/arch/arm/boot/zImage -system /home/android/android/out/target/product/generic/system.img -data /home/android/android/out/target/product/generic/userdata.img -ramdisk /home/android/android/out/target/product/generic/ramdisk.img  

将进入到android运行界面。

tips

<1>运行emulator时如果出现故障,可使用

[plain] view
plaincopy

LIBGL_DEBUG=verbose emulator  

命令来显示更多的调试信息。

<2>编译源码时,会覆盖sdk,为了避免重新编译sdk,最好将文件

[plain] view
plaincopy

/home/android/android/out/host/linux-x86/sdk/android-sdk_eng.android_linux-x86.zip  

备份。

遇到的问题

<1>编译时出现

[plain] view
plaincopy

Can't locate Digest/MD5.pm in @INC  

解决方法:

[plain] view
plaincopy

yum install perl-Tk perl-Digest-MD5  

<2>编译时出现

[plain] view
plaincopy

Can't locate Switch.pm in @INC  

解决方法:

[plain] view
plaincopy

yum install perl-Switch  

<3>运行emulator时出现

[plain] view
plaincopy

SDL init failure, reason is: No available video device  

解决方法:

[plain] view
plaincopy

yum install SDL.i686; reboot  

<4>运行模拟器时出现

[plain] view
plaincopy

error libGL.so: cannot open shared object file: No such file or directory  

Failed to load libGL.so  

解决方法:

[plain] view
plaincopy

yum install mesa-libG  

cd /usr/lib64; ln -s libGL.so.1.2.0 libGL.so  

转载请保留原始博客地址:http://blog.csdn.net/u010759010/article
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: