Android 编译

Android 编译说明

硬件

  • 环境:ubuntu 16.04 64位
  • CPU:2个CPU,2核
  • 内存:8G
  • swap:8G
  • 硬盘:300G(源码占45G,编译后总共200G左右)

系统环境

1. 依赖库

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib tofrodos python-markdown libxml2-utils xsltproc libssl-dev cmake

2. JDK8

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

编译

1. 目标

  • ARM:msm8953
  • Android版本:Android 9.0.0
  • 内核版本:4.9
  • 交叉编译器:

2. 编译脚本

#!/bin/bash

###
 # @Description: 编译Android9.0 源码
 # @Version: 1.0
 # @Autor: lhgcs
 # @Date: 2020-07-13 14:04:12
 # @LastEditors: lhgcs
 # @LastEditTime: 2020-07-13 14:07:56
 # @FilePath: /kernel/home/xiaobao/Desktop/build.sh
### 

# 源码目录
SC60_SDK="SC60_SC600_Android9.0.0_kernel4.9_r029"
# 分支名称
SC60_branch="SC60_SC600"

###
 # @description: 查看分支
 # @param {type} 
 # @return: 
###
function check_branch() {
    local branch=$(git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //")
    if [ "${branch}" = "$1" ];then
        return 0
    fi
    return 1
}

echo "******* start work *******"
cd ${SC60_SDK}

# 切换到SC60_SC600分支
check_branch ${SC60_branch}
if [ $? -ne 0 ];then
    echo "checkout"
    git checkout ${SC60_branch}
fi

check_branch ${SC60_branch}
if [ $? -ne 0 ];then
    echo "can not checkout ${SC60_branch}"
    exit 1
fi

# 初始化编译环境
source build/envsetup.sh 

# 编译目标msm8953
lunch msm8953_64-userdebug

# 编译
make clean
make -j12

# 最快3个小时
echo "******* end work *******"
exit 0

备注

可能因为内存+swap分区过小导致编译失败


作者 [@lhgcs]
2020 年 07月 07日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值