android系统firefox,Android平台Firefox——Fennec编译手记
Android平臺(tái)Firefox——Fennec編譯手記
Firefox for mobile,開發(fā)代號(hào)為Fennec。詳情參見維基百科:Click here!
官方手冊
1)準(zhǔn)備環(huán)境
1.1)安裝Java
第一步安裝Sun Java jdk6(Android SDK依賴)
#?Ubuntu?11.10andafter
Download?Java?fromOracle
sudo?mkdir?/opt/java
sudo?mv?~/Downloads/jdk-6u29-linux-x64.bin
sudo?chmod?+x?./jdk-6u29-linux-x64.bin
sudo?./jdk-6u29-linux-x64.bin
ln?-f?-s?/opt/java/jdk1.6.0_29/bin/*?/usr/local/bin/
#?something?likesudoupdate-alternatives--install?/usr/local/bin/java?java?/opt/java/jdk1.6.0_29/bin/?1?is?close?to?the?distro?way?of?registering?java
已安裝,跳過~
1.2)安裝Gecko
之后安裝火狐編譯的慣例需要的東西
sudo?apt-get?install?mercurial?ccache
sudo?apt-get?build-dep?firefox
問題1:
E: 無法獲得鎖 /var/lib/dpkg/lock - open (11: 資源暫時(shí)不可用)
E: 無法鎖定管理目錄(/var/lib/dpkg/),是否有其他進(jìn)程正占用它?
原因:系統(tǒng)正在更新==,等待完成或取消吧...
第二個(gè)東西,會(huì)有個(gè)確認(rèn)。網(wǎng)速較慢,還是要下一會(huì)的。
1.3)安裝Android NDK
下載并提取Android NDK。NDK版本4-7已測試可用。編譯人員當(dāng)前用的是NDKr5c。
wget?http://dl.google.com/android/ndk/android-ndk-r5c-linux-x86.tar.bz2
tar?-xjf?android-ndk-r5c-linux-x86.tar.bz2
wget下載和tar解壓在了當(dāng)前目錄。pwd:~/env。
1.4)安裝Android SDK
安裝最新版本的Android SDK。會(huì)比較久,可以去喝杯咖啡,什么什么的==。
wget?http://dl.google.com/android/android-sdk_r13-linux_x86.tgz
tar?-xzf?android-sdk_r13-linux_x86.tgz
./android-sdk-linux_x86/tools/android?updatesdk--no-ui
./android-sdk-linux_x86/tools/android?updateadb
已安裝,跳過~
最好配置下sdk tools的path,恩,是要加一下。
gedit?~/.bashrc
例如我的SDK在“~/env/android-sdk-linux”,則添加如下:
exportPATH=$PATH:$HOME/env/android-sdk-linux/platform-tools:$HOME/env/android-sdk-linux/tools
保存退出。
source?~/.bashrc
draw9patch
恩,打開OK!
1.5)增加鏈接速度(AKA using gold)
AKA,嘛玩意兒?
在一些系統(tǒng)上,鏈接libxul會(huì)花費(fèi)幾分鐘。使用gold而不是Id能夠減少這些時(shí)間(在我機(jī)器上從大u邪惡7分鐘減少到1分鐘多;另一個(gè)機(jī)器,YMMV,從25秒減到10,刪除全部系統(tǒng)緩存后,從2分鐘到1分鐘)。
使用gold,你必須自己用binutils源碼編譯它。你可以運(yùn)行如下的命令來編譯它。
sudo?apt-get?install?bison?flex?(orequivalentforyour?distribution)
mkdir?~/gold;?pushd?~/gold
wget?http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2
tar?xfj?binutils-2.22.tar.bz2
mkdir?binutils-build;?pushd?binutils-build
../binutils-2.22/configure?--target=arm-linux-androideabi?--prefix=$HOME/gold/arm-linux-androideabi?--enable-gold?--disable-werror
make
make?install
popd
好吧,又可以一杯咖啡了~
將會(huì)創(chuàng)建一個(gè)$HOME/gold/arm-linux-androideabi/bin/arm-linux-androideabi-ld.gold二進(jìn)制文件。通過運(yùn)行--version來確認(rèn)其正確并能運(yùn)行:
cd?arm-linux-androideabi/bin/
./arm-linux-androideabi-ld.gold?--version
恩,很好,ok!
1.6)使用mozillas重打包的NDKs
注意:這部分在NDKr7上可能運(yùn)行不正確,正在處理中,什么的。
都走到這一步,默默地繼續(xù)用官方的ndk吧~
1.7)設(shè)定Fennec的mozconfig
和通常一樣編譯(make -f client.mk),只是要用設(shè)定不同的mozconfig。
這里就會(huì)下載源碼了,之后需要修改mozconfig配置。
cd?~/env(先切換下目錄)
hg?clone?http://hg.mozilla.org/mozilla-central/?src
正在增加XXX,等了好久。不知道持續(xù)了多長時(shí)間,第二天過來,下好了==。
cd?src
gedit?mozconfig-droid(vi不熟的,路過~)
設(shè)定mozconfig配置:
#Addthe?correct?paths?here:
ac_add_options?--with-android-ndk="$HOME/env/android-ndk-r5c"
ac_add_options?--with-android-sdk="$HOME/env/android-sdk-linux/platforms/android-13"
ac_add_options?--with-android-version=5
#?android?options
ac_add_options?--enable-application=mobile/android
ac_add_options?--target=arm-linux-androideabi
ac_add_options?--with-ccache
ac_add_options?--enable-tests
mk_add_options?MOZ_OBJDIR=./objdir-droid
mk_add_options?MOZ_MAKE_FLAGS="-j9?-s"
設(shè)定環(huán)境變量:
export?MOZCONFIG=~/env/src/mozconfig-droid
這步的路徑都注意點(diǎn),和官方相比,我路徑也都動(dòng)過了。
2)編譯
cd?~/env/src
make?-f?client.mk?build_and_deploy
溜達(dá)去吧~
最后報(bào)了兩install錯(cuò)誤。沒事,應(yīng)該是沒連接手機(jī),不能直接安裝的原因。
cd?objdir-droid/dist/
ls?fen*
恩,看到了“fennec-15.0a1.en-US.android-arm.apk”文件了(或者類似)。連接手機(jī),安裝咯~
adb?install?-r?fennec*.apk
3)后記
命令我是一條條執(zhí)行的,省得哪步出錯(cuò)都不知道。不過貌似沒啥問題==
ps:Fennec支持Adobe Flash Player,不過需要注意以下特別說明:
Adobe Flash針對Android采用了分版本策略,Android 4.0和較低的系統(tǒng)版本分別使用不同的Adobe Flash,這次更新僅針對Android 4.0系統(tǒng)升至11.1.112.61,其他設(shè)備的Flash仍然保留在11.1.111.5(摘自:http://www.cr173.com/soft/16050.html)
apk下載地址:Cilck here!(51下載權(quán)限過低,一次放不了這么大個(gè)==)
總結(jié)
以上是生活随笔為你收集整理的android系统firefox,Android平台Firefox——Fennec编译手记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 节后轻生折射老人“空巢”之痛
- 下一篇: 华为面试Android岗;群面+技术面+