日期:2014-05-20  浏览次数:20746 次

Framework源码下载及编译(sundy深入浅出)之基础概念

?

写在前面的话:本系列主要是学习sundy的Android深入浅出视频中的一些记录,心得。方便自己以后查阅。也供大家查看。欢迎交流,补充。

一般作为面试题(有些有答案,有些没有。问题一般从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、源码下载编译过程常见问题

?