3. 下载并编译android源码

作者: 瑟闻风倾 | 来源:发表于2019-10-29 16:20 被阅读0次

    注意:硬盘剩余空间至少要100G。编译过程分析参考:Android编译过程及脚本分析

    1. 源码下载

    参考1:Android 镜像使用帮助
    参考2:AOSP(Android) 镜像使用帮助
    参考3:建立Android系统开发环境
    参考4:编译Android源码
    参考5:Android 系统源码—下载到编译
    参考6:下载源代码

    android源码目录.png
    参考7:Android4.4源码编译总结
    参考8:Ubuntu 16.04(18.04) 编译安卓4.4.4_r1系统源码
    参考9:Ubantu18.04环境下编译android源码
    参考10:编译最新Android源码及SDK
    android源码主要目录介绍.png

    2. 编译整个项目

    编译整个项目.png

    可以使用 make 编译任何代码。GNU make 可以借助 -jN 参数处理并行任务,通常使用的任务数 N 介于编译时所用计算机上硬件线程数的 1-2 倍之间。例如,在一台双核 E5520 计算机(2 个 CPU,每个 CPU 4 个内核,每个内核 2 个线程)上,要实现最快的编译速度,可以使用介于 make -j16make -j32 之间的命令。make -j8 表示开八个线程编译(开启的线程数一般为内核的两倍,如果不知道电脑内核直接 make 就好了)。

    说明:编译Android源码非常耗时(耗时不算停下来的时间大约6小时),并且编译时会有各种错误导致编译终止,但百度一下都能找到解决方法,修改后重新编译即可。这里我把我编译过程中出现的问题总结了一下:
    可忽略的提示:不会导致编译终止

    可忽略的提示1.png

    报错1:/bin/bash: xmllint: 未找到命令

    编译报错1.png
    解决:根据提示,需动手安装对应的工具xmllint(libxml2-utils),安装命令为 sudo apt-get install libxml2-utils
    安装xmllint.png

    使用ubuntu的apt-get的时候,经常会遇到install时失败的情况。既然提示域名解析失败,那么就想办法加一个万能的域名:
    a. 编辑文件 sudo vim /etc/resolv.conf
    b. 在最后加上 nameserver 8.8.8.8
    c. 保存退出

    添加万能域名后重新安装xmllint.png
    编辑resolv.conf文件.png

    报错2:段错误,核心已转储

    编译仍报错.png
    解决:重新编译,竟然编译成功了
    编译成功.png

    3. 编译指定模块

    (1) 创建并编译指定模块

    创建并编译指定模块.png
    (2) 编译指定模块失败
    分析:可能是工程没有make(编译)过,单独编译某个模块导致的。先把工程整个make一下。整个项目编译成功后,才可重新编译指定的test模块:
    编译指定模块.png
    (3) 总结:需掌握Android.mk 的基本语法

    知识点1:修改编译生成的目标文件的安装目录
    备注:修改Android.mk,使用连接符“\”将每个源文件添加到Android.mk中,保存后重新编译即可。test.c为


    修改Android.mk文件.png
    修改后重新编译该模块.png

    知识点2:编译多个源码文件
    备注:修改Android.mk,配置环境变量LOCAL_MODULE_PATH,保存后重新编译即可。


    修改Android.mk文件.png
    修改后重新编译该模块.png

    拓展:使用tree命令查看目录结构
    备注:需先使用ubuntu的apt命令安装tree工具。


    拓展.png

    相关文章

      网友评论

        本文标题:3. 下载并编译android源码

        本文链接:https://www.haomeiwen.com/subject/lbawvctx.html