大家好,上一讲我们介绍了以后的课程的大体安排,这一讲我们将进Android.Framework源码下载及编译
课程目标:
Android Framework 源码下载及编译
重点难点:
Android不同版本源代码环境配置的不同
考核目标:
下载Android Framework源码的过程
介绍Android源码版本控制用什么?
什么是Repo?
课后练习:
在UBUNTU下面下载和编译Android Framework Source Code
思考如何在Windows下下载 以及 编译 android源码
一、课程前说的话:
关于下载及使用源码的平台---Linux、Mac、Windows
如何选择UBUNTU,对版本的选择
2.6G的源码存储空间以及10G的下载空间
真的只能在Linux和MacOS上下载和Building吗?
二、准备Linux下的环境:
建议考虑Ubuntu 10.04 之后版本 ,建议用64bit系统 ,我采用的是11.04
Python 2.4 -- 2.7, 下载地址:python.org - 11.04自带的是2.7.1
JDK 6 Gingerbread及更新版本; JDK 5 Froyo及更早. 下载地址: java.sun.com
Git 1.5.4 之后版本. 下载地址: git-scm.com.- 通过apt-get 自动安装1.7.4.1 sudo apt-get install git
需要安装一些类库
(可选) Valgrind, 下载地址: valgrind.org.
1、检查并安装Python&Git
2、安装JDK
关于纠结的JDK,Froyo及以前版本请用JDKS,之后的用JDK6嫌时间长可以下载好共享到Ubuntu安装
如何在Ubuntu和Windows共享文件
3、安装需要的包
4、配置USB访问
三、下载源码
安装Repo
初始化Repo Client
开始同步文件
验证Git Tag
四、Building&Flash
1、初始化环境
2、选择一个Build Tag
Build Name
Build name Device Notes
generic emulator lowest-common denominator
full emulator fully configured with all languages, apps, input methods
full_crespo crespo full build running on Nexus S ("crespo")
Build Type
Build Type Use
user limited access; suited for production
userdebug like "user" but with root access and debuggability; preferred for debugging
eng development configuration with additional debugging tools
3、Make
1)、系统的应用程序在哪儿?
2)、Make编译的是所有内容么?是否包含内核的SDK
出现问题,Can not build System 32bit...
解决办法:
需要进行如下修改即可,
将
./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk
四个文件中的
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
注释掉,或者将“64”换成“32”
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
然后,将
./build/core/main.mk 中的
ifneq (64,$(findstring 64,$(build_arch)))
改为:
ifneq (i686,$(findstring i686,$(build_arch)))
又出现问题了,Make不成功
In file included from external/qemu/target-i386/kvm.c:19:
/usr/include/linux/kvm.h:215: error: field 'arch' has incomplete type
/usr/include/linux/kvm.h:383: error: field 'arch' has incomplete type
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/emulator-target-i386_intermediates/target- i386/kvm.o] 错误 1
解决办法
只要在下载源码的目录下执行下面这句,然后再make就不会再出现这个错误了
repo download platform/external/qemu 22776/1
4、编译内核
5、编译SDK
6、调用Emulator启动编译好的ROM
export ANDROID_PRODUCT_OUT=~/[SourceCodeFolder]/out/target/product/generic/
cd ~/[SourceCodeFolder]/out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates./emulator
五、源码下载编译过程常见问题
Python版本过低
JDK不匹配
安装了Java之后Java环境不生效
操作系统位数不匹配
无USB访问权限
缺少类库错误
Ubuntu11.04编译失败错误
特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址:http://www.tudou.com/programs/view/ul8Yridzt0U/
http://www.tudou.com/programs/view/-ofVwQT57ng(土豆网)
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
作者博客:http://www.mobidever.com/forum.php (Sundy-Android开发联盟)