灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2300回复:0

Android平台Firefox——Fennec编译手记

楼主#
更多 发布于:2012-09-06 13:57

1)准备环境
1.1)安装java
  第一步安装Sun java jdk6(Android SDK依赖)
1. # Ubuntu 11.10 and after
2. Download java from Oracle
3. sudo mkdir /opt/java
4. sudo mv ~/Downloads/jdk-6u29-linux-x64.bin
5. sudo chmod +x ./jdk-6u29-linux-x64.bin
6. sudo ./jdk-6u29-linux-x64.bin
7. ln -f -s /opt/java/jdk1.6.0_29/bin/* /usr/local/bin/
8. # something like sudo update-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
之后安装火狐编译的惯例需要的东西
1. sudo apt-get install mercurial ccache
2. sudo apt-get build-dep firefox
问题1:
E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
原因:系统正在更新==,等待完成或取消吧...

  第二个东西,会有个确认。网速较慢,还是要下一会的。

1.3)安装Android NDK
  下载并提取Android NDK。NDK版本4-7已测试可用。编译人员当前用的是NDKr5c。
1. wget http://dl.google.com/android/ndk/android-ndk-r5c-linux-x86.tar.bz2
2. tar -xjf Android-ndk-r5c-linux-x86.tar.bz2
  wget下载和tar解压在了当前目录。pwd:~/env。

1.4)安装Android SDK
  安装最新版本的Android SDK。会比较久,可以去喝杯咖啡,什么什么的==。
1. wget http://dl.google.com/android/android-sdk_r13-linux_x86.tgz
2. tar -xzf Android-sdk_r13-linux_x86.tgz
3. ./Android-sdk-linux_x86/tools/Android update sdk --no-ui
4. ./Android-sdk-linux_x86/tools/Android update adb
  已安装,跳过~

  最好配置下sdk tools的path,恩,是要加一下。
1. gedit ~/.bashrc
  例如我的SDK在“~/env/Android-sdk-linux”,则添加如下:
1. export PATH=$PATH:$HOME/env/Android-sdk-linux/platform-tools:$HOME/env/Android-sdk-linux/tools
  保存退出。

1. source ~/.bashrc
2. draw9patch
恩,打开OK!

1.5)增加链接速度(AKA using gold)
  AKA,嘛玩意儿?
  在一些系统上,链接libxul会花费几分钟。使用gold而不是Id能够减少这些时间(在我机器上从大u邪恶7分钟减少到1分钟多;另一个机器,YMMV,从25秒减到10,删除全部系统缓存后,从2分钟到1分钟)。
  使用gold,你必须自己用binutils源码编译它。你可以运行如下的命令来编译它。

1. sudo apt-get install bison flex (or equivalent for your distribution)
2. mkdir ~/gold; pushd ~/gold
3. wget http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2
4. tar xfj binutils-2.22.tar.bz2
5. mkdir binutils-build; pushd binutils-build
6. ../binutils-2.22/configure --target=arm-linux-Androideabi --prefix=$HOME/gold/arm-linux-Androideabi --enable-gold --disable-werror
7. make
8. make install
9. popd
  好吧,又可以一杯咖啡了~

  将会创建一个$HOME/gold/arm-linux-Androideabi/bin/arm-linux-Androideabi-ld.gold二进制文件。通过运行--version来确认其正确并能运行:

1. cd arm-linux-Androideabi/bin/
2. ./arm-linux-Androideabi-ld.gold --version
  恩,很好,ok!

1.6)使用mozillas重打包的NDKs
  注意:这部分在NDKr7上可能运行不正确,正在处理中,什么的。
  都走到这一步,默默地继续用官方的ndk吧~

1.7)设定Fennec的mozconfig
  和通常一样编译(make -f client.mk),只是要用设定不同的mozconfig。
  这里就会下载源码了,之后需要修改mozconfig配置。

1. cd ~/env(先切换下目录)
2. hg clone http://hg.mozilla.org/mozilla-central/ src
  正在增加XXX,等了好久。不知道持续了多长时间,第二天过来,下好了==。

1. cd src
2. gedit mozconfig-droid(vi不熟的,路过~)

  设定mozconfig配置:

1. # Add the correct paths here:
2. ac_add_options --with-Android-ndk="$HOME/env/Android-ndk-r5c"
3. ac_add_options --with-Android-sdk="$HOME/env/Android-sdk-linux/platforms/Android-13"
4. ac_add_options --with-Android-version=5
5.
6. # Android options
7. ac_add_options --enable-application=mobile/Android
8. ac_add_options --target=arm-linux-Androideabi
9. ac_add_options --with-ccache
10. ac_add_options --enable-tests
11.
12. mk_add_options MOZ_OBJDIR=./objdir-droid
13. mk_add_options MOZ_MAKE_FLAGS="-j9 -s"

  设定环境变量:

1. export MOZCONFIG=~/env/src/mozconfig-droid

  这步的路径都注意点,和官方相比,我路径也都动过了。

2)编译

1. cd ~/env/src
2. make -f client.mk build_and_deploy
  溜达去吧~

  最后报了两install错误。没事,应该是没连接手机,不能直接安装的原因。

1. cd objdir-droid/dist/
2. ls fen*

  恩,看到了“fennec-15.0a1.en-US.Android-arm.apk”文件了(或者类似)。连接手机,安装咯~

1. adb install -r fennec*.apk

3)后记
  命令我是一条条执行的,省得哪步出错都不知道。不过貌似没啥问题==

  ps:Fennec支持Adobe Flash Player,不过需要注意以下特别说明:
  Adobe Flash针对Android采用了分版本策略,Android 4.0和较低的系统版本分别使用不同的Adobe Flash,这次更新仅针对Android 4.0系统升至11.1.112.61,其他设备的Flash仍然保留在11.1.111.5(摘自:http://www.cr173.com/soft/16050.html


  apk下载地址:Cilck here! https://www.opendrive.com/files?57284190_VAg5l(51下载权限过低,一次放不了这么大个==)



喜欢0 评分0
游客

返回顶部