35635
查看Android AOSP toolchain explanation的源代码
Android AOSP toolchain explanation
0
←
Android AOSP toolchain explanation
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你被禁止执行你刚才请求的操作。
您可以查看并复制此页面的源代码:
Ninja ============= Similar to make, Ninja的默认文件名是build.ninja. Ninja只支持一些固定形式的配置。 为了控制编译流程而设计。与Makefile相比,由于Ninja仅仅专注于核心的功能,所以有轻巧、速度快的优点。 ninja命令则是Android平台代码, in prebuild/build-tools/<host-machine>/bin/ninja 编译时,会先把Makefile通过kati转换成.ninja文件,然后使用ninja命令进行编译。 ./out/soong/build.ninja ==> 从所有的Android.bp转换过来的 commands: ninja -t clean : clean all built files 单独编译模块,比如Settings,相当于make Settings: ninja -f out/build-aosp_arm64.ninja Settings Android.bp, ============================ Android Nougat(7.0)中引入的Android.bp,及其相关工具链。 是用来替换Android.mk的配置文件。 它使用Blueprint框架来解析,最终转换成Ninja文件。 Android.bp是纯粹的配置文件,不包含分支、循环等流程控制,也不能做算数、逻辑运算 Soong ============ 其实就相当于Makefile编译系统的核心,即build/make/core/下面的内容。 它负责提供Android.bp的含义定义与解析,并将之转换为Ninja文件。。 Soong还会编译产生一个androidmk命令,可以手动把Android.mk转换成Android.bp。 这只对无选择、循环等复杂流程控制的Android.mk生效。 Android.bp以及相关支持,从Android Nougat开始加入,从Android Oreo(8.0)开始默认开启。 如果需要在Android Nougat的版本使用,需要在执行编译时添加变量。 make 'USE_SOONG=true' Blueprint ================ 启用Soong以后,在Android编译最开始的准备阶段,会执行build/soong/soong.bash进行环境准备。 其中会先编译、安装Blueprint到out目录下。 也就是说,在编译Android项目时,Android.bp相关工具链会自动编译 Conclusion: ==================== 从Android.mk与其它Makefile,会生成out/build-<product_name>.ninja文件。 而从Android.bp,则会生成out/soong/build.ninja。 此外,还会生成一个较小的out/combined-<product_name>.ninja文件,负责把二者组合起来,作为执行入口。 Make flow: Android.bp -- Blueprint-Soong --> .nijia --Nija --> build image Android.mk,Makefile --kati --> .nijia --Nija --> build image Android.mk -- Soong/androidmk --> Android.bp(但仅限简单配置) Ref: https://note.qidong.name/2017/08/android-ninja/
返回
Android AOSP toolchain explanation
。
导航菜单
个人工具
   
个人维基
注册
登录
名字空间
页面
变换
查看
阅读
查看源代码
统计
查看历史
操作
搜索
导航
首页
最近更改
随机页面
工具箱
所有页面
文件列表
特殊页面