ubuntu 11.04 32位编译android 4.0.3

标签: ubuntu 编译 android | 发表时间:2012-05-10 22:43 | 作者:piaozhiye
出处:http://blog.csdn.net

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://blog.csdn.net/piaozhiye

这里只是记录一些日志,难免有些错误,欢迎批评指正。

环境的建立:
http://source.android.com/source/initializing.html
源码下载参考:
http://source.android.com/source/downloading.html
这里我下载4.0.3 的源码:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
下载的速度看个人的网络,这里我下了一天一夜。下载好之后就可以直接make -j4编译了,编译的时候用个大概3个小时,如果按照以上两个连接编译的话,除了内存不够之外的应该没有什么问题,这里我遇到的是就是内存不够。
我机子是VMware + ubuntu 11.04  2G内存 2G swap,后面编译的话会遇到类似如下错误:
Install: out/host/linux-x86/framework/dx.jar
Copy: dx (out/host/linux-x86/obj/EXECUTABLES/dx_intermediates/dx)
Install: out/host/linux-x86/bin/dx
target Dex: core
make: *** [out/target/common/obj/JAVA_LIBRARIES/core_intermediates/noproguard.classes-with-local.dex] 已杀死
主要原因是内存不够,解决办法可以是增加虚拟机的内存,或者是增加swap的大小。
以下是增加swap文件方法
1.创建一个 Swap 文件。
mkdir swap
cd swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=100000


出现下列提示,上面命令中的 count 即代表swap文件大小。


记录了 100000+0 的读入
记录了 100000+0 的写出
102400000 字节 (102 MB) 已复制,0.74704 秒,137 MB/秒


把生成的文件转换成 Swap 文件
sudo mkswap swapfile


Setting up swapspace version 1, size = 102395 kB
no label, UUID=09fde987-5567-498a-a60b-477e302a988b


2.激活 Swap 文件。
sudo swapon swapfile


编译好之后设置环境变量 最后用emulator 运行


luo@luo-station:~/android-4.0.3$ export PATH=$PATH:~/android-4.0.3/out/host/linux-x86/bin
luo@luo-station:~/android-4.0.3$ export ANDROID_PRODUCT_OUT=~/android-4.0.3/out/target/product/generic
luo@luo-station:~/android-4.0.3$ emulator


可以使用emulator -help 查看 命令的用法,例如

emulator -verbose 可以查看运行过程。

luo@luo-station:~/android-4.0.3$ emulator -verbose
emulator: found Android build root: /home/luo/android-4.0.3
emulator: found Android build out:  /home/luo/android-4.0.3/out/target/product/generic
emulator: Found target ABI=armeabi-v7a, architecture=arm
emulator: Found target API level: 15
emulator: using core hw config path: /home/luo/android-4.0.3/out/target/product/generic/hardware-qemu.ini
emulator: found skin-specific hardware.ini: /home/luo/android-4.0.3/development/tools/emulator/skins/HVGA/hardware.ini
emulator: autoconfig: -skin HVGA
emulator: autoconfig: -skindir /home/luo/android-4.0.3/development/tools/emulator/skins
emulator: writing default keyset file to /home/luo/.android/default.keyset
emulator: trying to load skin file '/home/luo/android-4.0.3/development/tools/emulator/skins/HVGA/layout'
emulator: skin network speed: 'full'
emulator: skin network delay: 'none'
emulator: Found target ABI=armeabi-v7a
emulator: autoconfig: -kernel /home/luo/android-4.0.3/prebuilt/android-arm/kernel/kernel-qemu-armv7
emulator: autoconfig: -ramdisk /home/luo/android-4.0.3/out/target/product/generic/ramdisk.img
emulator: autoconfig: -sysdir /home/luo/android-4.0.3/out/target/product/generic
emulator: Using initial system image: /home/luo/android-4.0.3/out/target/product/generic/system.img
emulator: WARNING: system partition size adjusted to match image file (166 MB > 66 MB)


emulator: autoconfig: -data /home/luo/android-4.0.3/out/target/product/generic/userdata-qemu.img
emulator: autoconfig: -initdata /home/luo/android-4.0.3/out/target/product/generic/userdata.img
emulator: Physical RAM size: 512MB


emulator: Auto-config: -qemu -cpu cortex-a8
Content of hardware configuration file:
  hw.cpu.arch = arm
  hw.cpu.model = cortex-a8
  hw.ramSize = 512
  hw.touchScreen = yes
  hw.mainKeys = yes
  hw.trackBall = yes
  hw.keyboard = yes
  hw.keyboard.lid = no
  hw.keyboard.charmap = qwerty2
  hw.dPad = yes
  hw.gsmModem = yes
  hw.camera = no
  hw.camera.maxHorizontalPixels = 640
  hw.camera.maxVerticalPixels = 480
  hw.gps = yes
  hw.battery = yes
  hw.accelerometer = yes
  hw.audioInput = yes
  hw.audioOutput = yes
  hw.sdCard = yes
  hw.sdCard.path = 
  disk.cachePartition = yes
  disk.cachePartition.path = 
  disk.cachePartition.size = 66m
  hw.lcd.width = 320
  hw.lcd.height = 480
  hw.lcd.depth = 16
  hw.lcd.density = 160
  hw.lcd.backlight = yes
  hw.gpu.enabled = no
  hw.fakeCamera = back
  hw.webcam.count = 6
  hw.webcam.0.name = webcam0
  hw.webcam.1.name = webcam1
  hw.webcam.2.name = webcam2
  hw.webcam.3.name = webcam3
  hw.webcam.4.name = webcam4
  hw.webcam.5.name = webcam5
  hw.webcam.0.direction = front
  hw.webcam.1.direction = back
  hw.webcam.2.direction = front
  hw.webcam.3.direction = front
  hw.webcam.4.direction = front
  hw.webcam.5.direction = front
  vm.heapSize = 48
  hw.sensors.proximity = yes
  kernel.path = /home/luo/android-4.0.3/prebuilt/android-arm/kernel/kernel-qemu-armv7
  kernel.parameters =  android.checkjni=1
  disk.ramdisk.path = /home/luo/android-4.0.3/out/target/product/generic/ramdisk.img
  disk.systemPartition.initPath = /home/luo/android-4.0.3/out/target/product/generic/system.img
  disk.systemPartition.size = 166m
  disk.dataPartition.path = /home/luo/android-4.0.3/out/target/product/generic/userdata-qemu.img
  disk.dataPartition.size = 66m
  disk.snapStorage.path = 
  avd.name = <build>
.
QEMU options list:
emulator: argv[00] = "/home/luo/android-4.0.3/out/host/linux-x86/bin/emulator-arm"
emulator: argv[01] = "-android-hw"
emulator: argv[02] = "/tmp/android-luo/emulator-afcKDX"
Concatenated QEMU options:
 /home/luo/android-4.0.3/out/host/linux-x86/bin/emulator-arm -android-hw /tmp/android-luo/emulator-afcKDX
emulator: registered 'boot-properties' qemud service
emulator: nand_add_dev: system,size=0xa600000,initfile=/home/luo/android-4.0.3/out/target/product/generic/system.img
emulator: mapping 'system' NAND image to /tmp/android-luo/emulator-eyG1eN
emulator: rounding devsize up to a full eraseunit, now a608000


WARNING: Data partition already in use. Changes will not persist!
emulator: nand_add_dev: userdata,size=0x4200000
emulator: mapping 'userdata' NAND image to /tmp/android-luo/emulator-RO2LHH
emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'dalvik.vm.heapsize' = '48m'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '160'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '1'
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'back'
emulator: nand_add_dev: cache,size=0x4200000
emulator: mapping 'cache' NAND image to /tmp/android-luo/emulator-wX6JvG
emulator: Kernel parameters: qemu.gles=0 qemu=1 console=ttyS0 android.qemud=ttyS1 android.checkjni=1 ndns=1
emulator: Trace file name is not set


emulator: autoconfig: -scale 1
emulator: control console listening on port 5556, ADB on port 5557
emulator: can't connect to ADB server: Connection refused
emulator: ping program: /home/luo/android-4.0.3/out/host/linux-x86/bin/ddms
emulator: ping command: /home/luo/android-4.0.3/out/host/linux-x86/bin/ddms ping emulator 14.0
goldfish_fb_get_pixel_format:167: display surface,pixel format:
  bits/pixel:  16
  bytes/pixel: 2
  depth:       16
  red:         bits=5 mask=0xf800 shift=11 max=0x1f
  green:       bits=6 mask=0x7e0 shift=5 max=0x3f
  blue:        bits=5 mask=0x1f shift=0 max=0x1f
  alpha:       bits=0 mask=0x0 shift=0 max=0x0





作者:piaozhiye 发表于2012-5-10 22:43:20 原文链接
阅读:3 评论:0 查看评论

相关 [ubuntu 编译 android] 推荐:

在Ubuntu上编译Android Gingerbread 2.3.1

- MorrisC - 易水博客
前几天下载了Android 2.3.1的源代码并在Ubuntu 10.04(32位)上编译通过. 这篇文章简要记录了下载、编译的过程. 关于搭建Android开发环境的文章已经有很多,本文只简要介绍一下,做为备忘. 这一步安装获取源代码以及编译所需要的软件,使用如下命令:. 另外,参考别人编译Android 2.3的经验,安装了下列软件包:.

ubuntu 11.04 32位编译android 4.0.3

- - CSDN博客推荐文章
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明. 这里只是记录一些日志,难免有些错误,欢迎批评指正. 这里我下载4.0.3 的源码:. 下载的速度看个人的网络,这里我下了一天一夜. 下载好之后就可以直接make -j4编译了,编译的时候用个大概3个小时,如果按照以上两个连接编译的话,除了内存不够之外的应该没有什么问题,这里我遇到的是就是内存不够.

如何在Ubuntu上下载、编译和安装Android最新源代码

- - CSDN博客推荐文章
看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源代码了呢. 一直习惯使用Windows系统,而Android源代码是不支持在Windows上编译上,于是决定使用虚拟机安装Ubuntu,然后下载、编译和安装Android源代码.

Ubuntu 编译 Linux 3.0-rc4

- zyhong17 - Wow! Ubuntu
Linux 内核经过漫长的 2.6 版本之后终于主版本+1了,现在已放出 3.0 RC4 版,最近又有消息称 3.0 会比 2.6.39 快,喜欢折腾的你又不介意当小白鼠的话不妨试试下载 Linux Kernel 3.0 的源代码自己编译. 下面简单讲一下在 Ubuntu 10.10 编译 Linux Kernel 3.0 RC4 的过程.

Canonical 宣布 Ubuntu for Android 项目

- - Wow! Ubuntu
Canonical 正式宣布推出 Ubuntu for Android 项目,从官方介绍来看,这个项目并不是要取代 Android 作为手机操作系统,而是把整个 Ubuntu 桌面系统无缝整合到 Android 中,Android 与 Ubuntu 会共用一个 Linux 内核. 在安装 Ubuntu for Android 后,用户就可以把这台 Android 手机当作一台便携式电脑,你可以通过支持 HDMI 接口的配件与显示器连接,这样就可以体验 Ubuntu Unity 界面了.

在Android手机上运行Ubuntu

- Alex Yu - Solidot
51开源社区 写道 "HTC Desire手机在经过简单的破解步骤后,已经可以相对稳定地运行以桌面应用为主的Linux操作系统Ubuntu. 破解方法是由一位论坛ID叫“Bergfex”的开发者发布的. 整个破解过程十分简便,仅需要在指定的文件夹——如SD卡的根目录和电脑的某个位置——中加载相应的zip文件,然后将手机设置成bootloader模式下加载,之后再将手机和电脑连接后重启即可.

Firefox、Ubuntu如何突破iOS/Android垄断?

- - ITeye资讯频道
当下的智能手机及平板电脑操作系统市场,已逐渐被iOS跟Android垄断. 诺基亚去年第4季财报也宣布停止发展塞班,三星虽接收英特尔的MeeGo并将与三星自有的Bada融合,但也好几个月连假性利多消息都没发布,BlackBerry OS还在困顿中,Windows Phone虽高度受关注,但实际市场表现仍远远待强化.

android apk反编译

- - CSDN博客推荐文章
3.查看Jar包的GUI工具. apk文件其实就是一个MIME为zip的压缩包,可以用winrar软件打开看到里面的文件结构. 解压缩后找到里面的classes.dex文件,classes.dex文件就是java文件编译再通过Dalvik须立即提供的dx打包工具打包而成的,接下来就用2个工具来逆向导出java源文件.

Android小心啦,Ubuntu也要进军移动市场

- kxxoling - 36氪
Google的Android操作系统将会添加一个新的竞争对手,这就是——Ubuntu. 乌班图是Linux的一个发行版本,因其精美的界面和易用性而出名,现在它也要计划进军移动领域. Canonical,Ubuntu的发行公司,宣布在他们发布完最新的桌面操作系统之后,将要开始专注于一个长远的计划,要将Ubuntu的适用范围扩大到所有的计算平台,包括移动手机、平板电脑和智能电视在内.

Android APK反编译详解(附图)

- jason - iGFW
一、反编译Apk得到Java源代码. 首先要下载两个工具:dex2jar和JD-GUI. 前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码. 首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;解压下载的 dex2jar,将classes.dex复制到dex2jar.bat所在目录.