一、Android源码下载与编译

基于VMware 7.0 ubuntu10.0464位

1、Git工具。

若无则安装 ~$ sudo apt-get installgit-core gnupg

2、Java sdk 。

~$sudo add-apt-repository ppa:ferramroberto/java

~$sudo apt-get update ~$sudo apt-get install sun-java6-jre sun-java6-plugin ~$sudo apt-get install sun-java6-jdk 另:接受安装条件时,tab键切换焦点。 3、安装其他需要的命令 ~$sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
4、调试工具 ~ $sudo apt-get install valgrind
5、安装repo工具
修改/etc/hosts文件,在文件末尾加上(地址有可能会变,先ping一下再加)
74.125.237.1 dl-ssl.google.com
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com

安装repo:
~$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
~$ chmod a+x ~/bin/repo
另外一个地址 :
$ curl " http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo 修改文件.bashrc ~$ vi .bashrc
在最后一行加入export PATH=$PATH:~/bin
保存,执行~$./.bashrc 6、创建下载目录android并初始化repo ~$ mkdir android ~$ cd android/ 初始化
 ~/android$ repo init -u https://android.googlesource.com/platform/manifest
~/android$ repo init -u https://android.googlesource.com/platform/manifest -bandroid-2.3.1_r1 下载(慢慢等吧) ~/android$ repo sync
注意:最好是把自己创建的下载目录下面的.repo 里面manifest.xml属性fetch改为:fetch= "https://android.googlesource.com/"
7、编译(这里也慢慢等) ~/android$ make 注意: 出现错误,首先,全部赋予可执行权限
错误:find: `frameworks/base/frameworks/base/docs/html': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
此错误忽略,不影响编译
错误:/bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: No such file or directory 解决方法:apt-get install lib32z1-dev

错误:/usr/include/gnu/stubs.h:7: fatal error: gnu/stubs-32.h: No such file or directory
解决方法:~/android$ sudo apt-get install libc6-dev-i386

错误:external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory

解决方法:~/android$sudo apt-get install zlib1g-dev


  错误:/usr/bin/ld: cannot find -lncurses

解决方法:sudo apt-get install lib32ncurses5-dev


错误:/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Error 1

解决方法:~/android$sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so

ubuntu 10.04,默认的gcc版本为4.4,gcc-4.4太严格,有可能要从gcc-4.4降到gcc- 4.3
1、安装gcc-4.3
$ sudo apt-get install gcc-4.3 g++-4.3
2、修gcc相关链接
$ cd /usr/bin
$sudo ln -snf gcc-4.3 gcc
$sudo ln -snf g++-4.3 g++
$sudo ln -snf cpp-4.3 cpp
3、64bit系统需装如下包
$ sudo apt-get install g++-multilib g++-4.3-multilib

中间或许还有其他各种错误,遇到了自己百度去。
编译成功会有如下输出 Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img Install system fs image: out/target/product/generic/system.img Target ram disk: out/target/product/generic/ramdisk.img Target userdata fs image: out/target/product/generic/userdata.img Installed file list: out/target/product/generic/installed-files.txt
8、运行 启动模拟器,运行$ emulator 错误:No command 'emulator' found, did you mean:骂人
Command 'qemulator' from package 'qemulator' (universe)
emulator: command not found
解决方法:编辑/etc/environment 加入环境变量 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:usr/lib/jvm/java-6-sun-1.6.0.26/bin:/home/nanlus2/android/out/host/linux-x86/bin"
CLASSPATH="/usr/lib/jvm/java-6-sun-1.6.0.26/lib"
JAVA_HOME="usr/lib/jvm/java-6-sun-1.6.0.26"
ANDROID_PRODUCT_OUT="/home/nanlus2/android/out/target/product/generic"
注:/home/nanlus2/android为源码目录 保存,重启。运行$ emulator 错误:SDL init failure, reason is: No available video device尴尬
解决方法:$apt-get install ia32-libs lib32stdc++6
再次运行$ emulator 成功羡慕

二、编译自己的apk 1、编写完成工程。 2、编写Android.mk文件,放入工程目录下 LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := helloworld
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

3、编译 拷贝工程至packages/apps/下
~$ cp -ri helloworld ~/android/packages/apps/helloworld
进入目录 ~/...../helloworld$ mm 编译成功:out/target/product/product_name/system/app/helloworld.apk 4、运行 安装在机子上运行之。adb install xxx/helloworld.apk
在这里也可以一起打包, $make snod 然后,再运行,启动模拟器即可。大笑

更多相关文章

  1. Android Studio Gradle多渠道打包(动态设定App名称,应用图标,背景
  2. Android 安装路径问题 -- 导致无法启动模拟器
  3. 运行模拟器时 No such file or directory
  4. Android中的文件上传下载
  5. android客户端从服务器端下载文件,服务端返回文件流(文件不在项目
  6. android 随手记之文件+参数上传请求
  7. 清单文件Manifest中的android:name

随机推荐

  1. 喵喵的华为DevCloud使用指南(3)-项目构建
  2. 网络编程基础2
  3. BlueStore源码分析之事物状态机
  4. 分组密码与模式
  5. 微信小程序生成分享图片踩坑大计划
  6. BlueStore源码分析之对象IO
  7. dom的增删改查
  8. BlueStore源码分析之Cache
  9. js 轮播图功能:上下翻页,自动播放----0409
  10. Ceph Octopus版本Dashboard新增硬盘闪灯