环境 ubuntu 18.04

一 安装所需依赖

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig参照官方文档

二 JDK环境

sudo apt-get install openjdk-8-jdk

sudo vim /etc/profile

追加

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

三  编译过程中的错误处理

1  flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? ‘cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))’ ???
Aborted (core dumped)

解决办法:
在~/.bashrc最后添加export LC_ALL=C     (  去除本地C化,使得Android的编译工具与本地工具不冲突。)
然后 source ~/.bashrc

// 注意恢复 export LC_ALL=C

2 Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log
SSL error when connecting to the Jack server. Try 'jack-diagnose'
SSL error when connecting to the Jack server. Try 'jack-diagnose'
[ 29% 9406/31906] target thumb C++: libandroid_runtime <= frameworks/base/core/jni/android/graphics/pdf/PdfEditor.cpp
In file included from external/pdfium/core/include/fpdfapi/fpdf_module.h:10:0,

解决办法:

Remove TLSv1, TLSv1.1 from jdk.tls.disabledAlgorithms in /etc/java-8-openjdk/security/java.security file
Restart the jack server: cd /prebuilts/sdk/tools/ ./jack-admin kill-server ./jack-admin start-server

curl - Rebuild android code with error “SSL error when connecting to the Jack server. Try 'jack-diagnose” - Stack Overflow

3 Out of memory

Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx'.

fix

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server

四 编译 Android  Soong 编译系统

使用 envsetup.sh 脚本初始化环境:

source build/envsetup.sh

选择目标

lunch

使用 lunch 选择要构建的目标。lunch product_name-build_variant 会选择 product_name 作为需要构建的产品,并选择 build_variant 作为需要构建的变体,然后将这些选择存储在环境中,以便供后续对 m 和其他类似命令的调用读取。

lunch aosp_arm-eng

make -j8

//    m (make systemimage)  mm mma

make:根据lunch选项,编译Android系统,最后产出为:system.img,ramdisk.img,userdate.img
m:和make命令一样
mm:从当前目录下开始向下编译目标
mmm:指定一个目录,仅编译指定目录下的目标
make snod:只将out/target/product/XXX/system/目录下的内容打包生成system.img,不会检查依赖关系
make bootimage:只将out/target/product/XXX/root/目录下的内容打包生成ramdisk.img

//编译生成 system.img  userdata.img ramdisk.img

系统开发 (二)Aosp编译相关推荐

  1. 【Android 系统开发】下载 编译 Android源代码 和 Android kernel源代码

    下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...

  2. 蓝牙mesh系统开发二 mesh节点开发

    前言 在开发蓝牙mesh系统中,使用泰凌微8258的蓝牙作为节点方案,本章讲解通过8258搭建普通mesh节点,ble mesh基础可以点这里 SDK获取 下载SIG MESH SDK mesh项目工 ...

  3. Android系统篇(二)——Android编译核心Build系统

    <深入解析Android5.0系统> 一书笔记 Android的Build系统非常的庞大,他是基于GUN Make以及shell来构建的,我们主要的面对方向是Android.mk文件,这也 ...

  4. windows下进行嵌入式系统开发工程管理编译方案

    在windows下进行 arm工程管理及编译方案中,很多小项目均采用现有成熟大型的开发平台,如keil或者IAR,其优点是简单易上手,创建工程相对比较简单,并还提供相应的在线单步调试功能,但灵活性不好 ...

  5. 超级微商系统开发,社交电商3.0时代的概念

    超级微商系统概况 社交电商3.0时代 社交电商"新"在哪,微商未来的出路在何方? 微商兴起到至今已经有6个年头,经历6年的起起伏伏,模式一直在更新迭代,适应时代的发展需求. 格力. ...

  6. 嵌入式系统开发 (复习笔记)

    此书作者:李宥谋 主要是通过设计的ARM指令集和cpu内部的寄存器在内部的定时器的控制下工作.来完成数据运算处理和中断异常处理,外部数据通信通过连接外设接口处理. 目录 一.系统概述 (1)系统的概述 ...

  7. 竞拍秒购电商系统开发需求和功能架构分析

    以下是竞拍秒购电商系统开发相关的功能模块和解析.市面上类似竞拍电商平台有这些品牌.例如:盒格速M,太爱速M,众城优选,贝源拍,美里生活,恩家拾惠都属于这些类型. 竞拍秒购电商系统的功能有这些: 会员系 ...

  8. 独立完成系统开发一:项目简介

    独立完成系统开发一:项目简介 从工作到现在也有很长一段时间了,在这段时间里经历了很多同时也学到了很多.当然我也意识到了一个问题,哪就是如果仅仅是在工作中重复的去做一些类似于curd之类的事,没有将所学 ...

  9. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  10. 开源系统_二次开发(转)

    转自http://www.phpchina.com/portal.php?mod=view&aid=40204, 更多详细资料请参看原文 最好最实用的二次开发教程 ◆二次开发 什么是二次开发? ...

最新文章

  1. C++ 笔记 2 (C++ primer)
  2. matplotlib xticks 基于 旋转_数据可视化之 matplotlib 绘图篇
  3. Ubuntu Linux 18.10下面安装魔法门之英雄无敌3
  4. 解决git clone报错SSL certificate problem
  5. Linux查看主板的相关信息
  6. 给定数组A []和数字X,请检查A []中是否有对X | 使用两个指针算法,O(1)空间复杂度| 套装2...
  7. shell foreach 拼接字符串_FIND_IN_SET 及IN 处理逗号间隔的字符串参数
  8. vb一个使用URLDownloadToFile实现文件下载的类
  9. 让你的代码量减少3倍!使用kotlin开发Android(四) kotlin bean背后的秘密
  10. sql 查出表转换为html,如何执行表中的sql语句并将其转换为html
  11. mysql计算同比和环比的区别_Mysql同比环比统计
  12. NOIP模拟19/07/22
  13. AMA回顾|走进“元宇宙工厂”BreederDAO
  14. 九年级计算机课程教案,九年级信息技术 5.2.3《计算机网络》教案
  15. 有哪些适合大学生投稿的普刊(社科类)?
  16. 13-反向传播法求梯度
  17. office修复找不到msi_Microsoft Office安装程序找不到ProPlus.WW\ProPlusWW.msi 弄不了
  18. freeSurfer颅骨剥离
  19. 【VPD】使用Oracle VPD(Virtual Private Database)限制用户获取数据的范围
  20. 输入整数n,其中0<n<7,输出用n、n+1、n+2、n+3这4个数字组成的无重复数字的3位数

热门文章

  1. 【转】 什么是Transact-SQL?
  2. 不看不见de视觉,不知不觉de设计
  3. 多事之秋:不怕贼偷,就怕惦记
  4. iOS 开发中农历与公历的转换,星座计算。
  5. CPU「主频」是什么,有哪些限制条件,对于 CPU 性能的影响有哪些?
  6. ZY---C语言指针
  7. MDK编译出现*.axf: Error: L6218E: Undefined symbol 问题解决方法
  8. 如何看懂IIS服务器网站日志
  9. RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral.cpp:50
  10. 使用Atmel Studio开发Arduino的ATmega328P单片机