android 编译ninja,Ninja编译过程分析

在Android N的系统上,初次使用了Ninja的编译系统。对于Ninja,最初的印象是用在了Chromium open source code的编译中,在chromium的编译环境中,使用ninja -C out/Default chrome命令,就能够利用源码编译出chrome的apk。对使用者而言,抛开对原理的探究,最直观的印象莫过于能够清楚的看到本身当前编译的进度。同时,对android而言,也能够感觉到编译速度的提高带来的便捷。本文将深刻分析Ninja的编译原理,以及android上面的编译改变。python

正由于这个改变,因此在编译android N的code的时候须要使用OpenJDK8android

Ninjachrome

Ninja是一个致力于速度的小型编译系统(相似于Make);shell

若是把其余编译系统比作高级语言的话,Ninja就是汇编语言ui

主要有两个特色:设计

一、能够经过其余高级的编译系统生成其输入文件;code

二、它的设计就是为了更快的编译;源码

使用Kati把makefile转换成Ninja files,而后用Ninja编译编译

在不久的未来,当再也不用Makefile(Android.mk)时,Kati将被去掉class

ninja核心是由C/C++编写的,同时有一部分辅助功能由python和shell实现。因为其开源性,因此能够利用ninja的开源代码进行各类个性化的编译定制。

dfd267f81604410fb3a17450.html

Blueprint和Soong是用于一块儿把Blueprint 文件转换为Ninja文件。 未来须要写Blueprint文件(Android.bp),转换为Android.soong.mk(也能够直接写),而后转换为Ninja文件(build.ninja)而后用Ninja编译。

若是Android.mk和Android.bp同时存在,Android.mk会被忽略。

若是Android.bp的同级目录下有Android.soong.mk也会被include

dfd267f81604410fb3a17450.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值