android 编译源码 持续更新


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

sudo apt-get install openjdk-7-jdk

sudo apt-get install git
mkdir git
cd git
git init
git clone http://git.huayusoft.com/tomsu/AP7350_MDK-kernel.git
进入下载的源码包 AP7350_MDK-kernel
 source ./build/envsetup.sh
 lunch  12
 make preloader
 make lk
 make kernel
 make bootimage
 make recoveryimage
 tar cjf ap7350_65u_l1.tar.bz2 ap7350_65u_l1

ubuntu环境搭建


首先,加载编译环境设置
source ./build/envsetup.sh


其次,选择编译项目
运行lunch,输入12,选择full_ap7350_65u_l1-eng

make clean
make -j8 2>&1 | tee build.log

操作完那些之后,先make clean一下,之后再编译,可能要

编译成功后,执行mkimage.sh来生成可以刷系统的文件,生成的文件在rockdev目录下。

make ./mkimage.sh

==========================自己心得========================================================

这里注意 内核系统直接使用make编译的话 提示错误 编译不通过 ;

编译出了错误还是百度能解决的

make 命令默认使用机器的cpu数目

make的过程需要比较大的swap 建议2*4G 内存要求最好4G以上 cpu建议4核

=======================================================================================


源码编译流程
https://www.jianshu.com/p/80a40e2bf0b2

源码编译添加ccache
安装
sudo apt-get install ccache
$vi ~/.bashrc
export USE_CCACHE=1 //系统默认存放在~/.ccache
使用
ccache -s   # 显示状态参数 (s是英语status的缩写,表示《状态》)

ccache -C   # 清除缓存(C是大写的,是英语Clear的缩写,表示《清除》)
ps:编译过程比较就,我电脑双核的,使用单线程编译的,时间位12小时左右,如果使用多线程,时间应该会成倍减少
1)设置cache
cd aosp
prebuilts/misc/linux-x86/ccache/ccache -M 50G

2)初始化编译环境
. build/envsetup.sh

3)选择编译目标包
ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的
lunch aosp_arm-eng

4)编译
通过make指令进行代码编译,该指令通过-j参数来设置参与编译的线程数量,以提高编译速度.
make
例如  make -j8
ps: 1.make后面可以更参数:如你的机器时双核,每核双线程的话,使用make -j4,这样速度更快,但编译时使用的内存也更多
2.make失败或停止后,可以使用make -k 继续编译  编译时间 大约在2H-10H之间
需要注意的是,参与编译的线程并不是越多越好,通常是根据你机器cup的核心来确定:core*2,即当前cpu的核心的2倍.比如,我现在的笔记本是双核四线程的,因此根据公式,最快速的编译可以make -j8.
(通过cat /proc/cpuinfo查看相关cpu信息)
5)运行虚拟机
在编译完成之后,就可以通过以下命令运行Android虚拟机了,命令如下:

source build/envsetup.sh
lunch(选择刚才你设置的目标版本,比如这里了我选择的是2)
emulator

如果你是在编译完后立刻运行虚拟机,由于我们之前已经执行过source及lunch命令了,因此现在你只需要执行命令就可以运行虚拟机:

emulator

不出意外,在等待一会之后,你会看到运行界面:
=======================================================================================


输入命令:df –lh 查看磁盘信息

输入命令:du -h --max-depth=1 寻找当前目录,哪个文件夹占用空间最大

1.# mkdir /swap

2. 然后进入目录
# cd /swap

3. 创建自己希望的交换分区文件的大小
# sudo dd if=/dev/zero of=swapfile bs=1M count=2k
(创建2G的swap, 这步比较慢 创建分区的大小就= bs * count)
成功后会有提示,这时候查看swap文件夹下会多一个交换文件(swapfile),文件名字你可以自己定义在上面创建命令里。

4. 然后输入命令       mkswap swapfile   

5. 挂载交换分区:swapon swapfile
    如果想卸载的话输入:swapoff swapfile   卸载后可以删除这个文件,然后重新根据你新的需要创建和调整交换文件大小


6. 最后可以查看空间大小:free -m  

7. 自动挂在交换文件(交换分区)
sudo gedit /etc/fstab 在最后添加
/swap/swapfile     swap    swap      defaults     0  0

=======================================================================================

Android探索之旅 | 配置ccache,大大加快编译速度
https://blog.csdn.net/menghuanbeike/article/details/78403759

=======================================================================

当你删掉out/target目录或者使用make clean清空输出重新编译源码的时候,编译时间通常

都很漫长。


=======================================================================

硬件环境要求
1. 编译环境

按照官方的说法,编译 Android 2.3.x 及以上版本的系统源码需要 64 位的系统运行环境来

支持,而编译 2.3.x 以下的版本则需要 32 位的系统运行环境。
2. 硬盘空间

官方建议最好预留 100G 的磁盘空间来下载源码,150G 的磁盘空间用来编译源码,如果使用

了 ccache(一个高速编译缓存工具,可以大幅加快 gcc 的编译速度),那么则需要更大的

空间来支持。

所以尽可能地保证自己的磁盘空间够大吧,之前就因为磁盘空间预留不够导致源码编译过程

中空间不足,狠狠地把自己坑了一把。
3. 内存空间

如果你是在虚拟机上跑 linux,官方建议至少需要 16G 的内存空间,我的机器只有 8G 的内

存空间跑虚拟机,目前跑起来也没太大问题,就是编译源码的过程非常漫长,不知道是否跟

内存大小有关。


========================================================================

下载Android5.1.1源码、编译源码、SDK和内核
https://www.jianshu.com/p/5b4f91b342c4?

utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommend

ation

========================================================================

// =================================20201215

du -h --max-depth=1 查看目录用量
$ git init    
$ git add .    
$ git commit     // git 版本管理

// ===========================

注意有个问题 在虚拟机里安装 vm-tools的时候会比较慢  多重启几次系统

//=============================20210419 添加内置app

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
SUB_ANDROID_MK := $(shell find $(LOCAL_PATH)/apps/ -name Android.mk)
$(foreach sub_mk,$(SUB_ANDROID_MK), $(eval include $(sub_mk)))
$(info "cmy SUB_ANDROID_MK= $(SUB_ANDROID_MK)")

// ============================20210728  mtk去掉 

bootable/bootloader/lk/platform/mt6735/factory.c 文件里

函数:factory_check_key_trigger 返回 FALSE

常见错误

ubunt16.04编译mtk6737 安卓7.0

error while loading shared libraries: libz.so.1:

解决方案:

解决方法:很明显就是安装这个库所在包咯,可是我们怎么这知道 libz.so.1在哪个包呢? 
我们使用命令: apt-file search 来查找,首先安装,按如下命令:

1sudo apt-get install apt-file

安装完以后系统会提示你update,如果没有提示,在终端输入如下命令:

1sudo apt-file update

apt-file 是用来查找某个命令或者某一个库所在的包的,具体用法如下:

使用apt-file search 查找你的库所在包就行了,右边的是匹配你的库,左边的是你查的库所在的包,所以最后安装对应的包就行了。

1sudo apt-get install lib32z1

如果只为解决问题,只需上面这一条命令就ok了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值