Framework源码下载及编译(sundy深入浅出)之基础概念
?
一般作为面试题(有些有答案,有些没有。问题一般从sundy老师思维导图中摘录,答案并非唯一标准,仅供参考):
?
1、介绍Android源码版本控制用什么?
git
2、什么是Repo?
repo-一个基于git的管理工具
3、下载Android Framework源码的过程?
1)配置linux环境
a.python
b.git
c.java
d.libs
2)下载源码
a.安装repo-一个基于git的管理工具
b.初始化repo client
c.开始同步文件
d.验证git tag
4、make后系统的应用程序在哪儿?
/packages/apps
5、make编译的是所有的内容么?是否包含内核和SDK
不包含内核和SDK:编译SDK,需要执行命令make sdk
注:下面是下载源码,编译,过程中的一些注意的地方
---Froyo及以前版本请用JDK5,之后的用JDK6
---make过程中:
1、出现问题:can not build on 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)))?
OK!问题解决
2、出现问题:又出现问题了,make不成功(UBUTU11.04 版本问题,猜测为内核)
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]?
解决办法:
只要在下载源码的目录下执行下面这句,然后再make就不会再出现这个错误了
repo download platform/external/qemu 22776/1
3、源码下载编译过程常见问题
?