1. 前期准备
首先,这里讲的是Ubuntu上如何配置。 ubuntu的版本为12.04或10.04均可, 需要64位。已经下载下来了Android代码,如还没下载,请参考如何下载Android源码来下载代码。我这里用的代码版本是Android4.1 JellyBean.好了,开始配置了...
2. 步骤
首先切换到root权限,以方便后续的操作
$ sudo su 安装需要的软件包(include git and subversion) aptitude -y install ant binutils binutils-dev binutils-static \
libncurses5-dev libncursesw5-dev ncurses-term ncurses-hexedit openssh-server \
gcc-4.2 g++-4.2 libstdc++5 libstdc++6-4.2 automake1.8 automake1.9 dialog libltdl3 \
build-essential libz-dev flex gperf libwxgtk2.6-dev libcurses-widgets-perl bison \
libcurses-perl libcurses-ui-perl libcurses-ruby libcurses-ruby1.8 python2.5 \
libsdl-dev valgrind ncurses-dev libtool libx11-dev vim vim-full exuberant-ctags \
meld pbzip2 wget wmii2 dwm bison htop iotop zip unzip fakeroot sun-java6-jdk \
cramfsprogs screen sysv-rc-conf subversion subversion-tools python-svn \
python-soappy git git-core git-svn sun-java6-jdk p7zip p7zip-full xlockmore \
mingw32 tofrodos tig tmux libsvn-perl sshfs gnuplot tree libc6-dev-i386 \
lib32z1-dev lib32ncurses5-dev libzzip-dev libc6-dev-amd64 g++-multilib \
lib64stdc++6 lib64z1-dev ia32-libs-sdl mutt txt2html splint squashfs-tools \
kpartx lsb-release tmux linux-server gnupg curl zlib1g-dev gcc-multilib \
x11proto-core-dev lib32readline5-dev lib32z-dev gawk cscope libqtcore4 \
xml2 wmctrl ant1.8
ln -s /usr/bin/fromdos /usr/local/bin/dos2unix
aptitude -y purge nbSMTP exim4 exim4-base exim4-daemon-light
安装JDK1.6,并配置PATH变量
首先,从网上下载最新版本的JDK1.6, 我下载的版本是:jdk-6u33-linux-x64.bin安装
$ chmod 777 jdk-6u33-linux-x64.bin$ ./jdk-6u33-linux-x64.bin 把上步解开的文件夹移动到系统路径中,并建立链接
$ mv jdk1.6.0_33 /usr/local$ ln -s /usr/local/jdk1.6.0_33 /usr/local/jdk1.6 配置PATH echo " PATH=/usr/local/jdk1.6/bin:/usr/local/arm-linux/bin:\$PATH:
CLASSPATH=/usr/local/jdk1.6/lib:.
JAVA_HOME=/usr/local/jdk1.6
export PATH CLASSPATH JAVA_HOME
alias vi=vim
alias h=htop
alias screen='screen -R -DD'
export VISUAL=vim" >>/etc/bash.bashrc
3. 编译
3.1. 配置编译环境
$ . build/envsetup.sh (注意 . 后的空格)$ lunch (全部采用默认,直接回车)
3.2. Building
编译全部代码(可不用配置上步的编译环境): 源码路径下执行以下命令
$ make -j4
按模块编译(可不用配置上步的编译环境)
$ make mediaserver$ make frameworks模块编译会自动处理相关的一些依赖库。
按路径编译部分代码(在源码根路径下, 必须配置上步编译环境)
$ mmm frameworks/av/media/libstagefright/$ mmm framworks/base/此种方法只编译此路径下的代码,必须要有Android.mk,如果是java代码可不需要。
编译完之后,如果需要把刚编译好的一个so或apk之类的烧到模拟器中,则运行下述命令
$ make snod
4. 运行模拟器
只运行模拟器, 在源码路径下执行以下命令:
$ . build/envsetup.sh$ lunch$ emulator & 带SD卡启动
$ . build/envsetup.sh$ lunch$ emulator -sdcard ~/work/andord_lx/sdcard/sdcard.img & 带SD卡启动大屏幕
$ . build/envsetup.sh$ lunch$ emulator -sdcard ~/work/andord_lx/sdcard/sdcard.img -skin NGB720P &
5. 安装软件并播放SD卡上的视频
5.1. 创建SD卡
例如创建一个名为sdcard.img的128M(M需大写)SD卡镜像到~/work/android_lx/sdcard/下
$ cd ~/work$ mkdir android_lx/sdcard -p$ cd android_lx/sdcard$ mksdcard 128M sdcard.img
如果提示找不到mksdcard命令,则需要在源码路径下执行以下命令:
$ . build/envsetup.sh$ lunch
5.2. 向emulator的SD卡镜像写入数据
方法一(速度快,推荐)
$ sudo mkdir /mnt/sdcard$ sudo mount -o loop ~/work/android_lx/sdcard/sdcard.img /mnt/sdcard/$ sudo cp ~/Video/shrek.mkv /mnt/sdcard/$ ls -al /mnt/sdcard/$ sudo umount /mnt/sdcard 方法二(速度慢,直观)
$ emulator -sdcard ~/work/android_lx/sdcard.img &$ adb push ~/Video/hahan.mp4 /sdcard$ adb shell$ ls /sdcard/ -l
5.3. 模拟器挂载SD卡镜像
$ emulator -sdcard ~/work/andord_lx/sdcard/sdcard.img &
这样启动模拟器后,模拟器就不会抱怨没有SD卡了。
5.4. 安装apk包
在确保模拟器已经启动的情况下
$ adb install ~/work/android_lx/SeeJoPlayer.apk
如果提示找不到adb命令,则需要在源码路径下执行以下命令:
$ . build/envsetup.sh$ lunch
6. 模拟器的相关操作
进入Android shell
$ adb shell 在模拟器中打印LOG
$ logcat 退出模拟器shell
$ exit 调整横坚屏
Ctrl+F12