Android深入浅出系列课程--Lesson11 Android.Framework源码下载及编译


大家好,上一讲我们介绍了以后的课程的大体安排,这一讲我们将进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.Framework源码下载及编译做了详细介绍,下一讲将进入Android多线程系统概述,内容预告:AFF110525_Android多线程系统概述,敬请期待。



特别推荐新课程: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开发联盟)

你可能感兴趣的:(Android深入浅出系列课程--Lesson11 Android.Framework源码下载及编译)