zoukankan      html  css  js  c++  java
  • Android编译系统中的Android.bp

    https://www.cnblogs.com/bluestorm/p/10895005.html

    Android.bp,是用来替换Android.mk的配置文件。 它使用Blueprint框架来解析,最终转换成Ninja文件。

    与Android.mk不同的是,Android.bp是纯粹的配置文件,不包含分支、循环等流程控制,也不能做算数、逻辑运算。 与此同时,Ninja文件也是如此。 这就产生了一些新的问题与需求——在Android项目上进行选择编译、解析配置、转换成Ninja等——Soong应运而生。 Soong其实就相当于Makefile编译系统的核心,即build/make/core/下面的内容。 它负责提供Android.bp的含义定义与解析,并将之转换为Ninja文件。。

    BlueprintSoong都是由Golang写的项目。 从Android Nougat开始,prebuilts/go/目录下新增了Golang所需的运行环境,在编译时使用。

    Android.bp以及相关支持,从Android Nougat开始加入,从Android Oreo(8.0)开始默认开启。 如果需要在Android Nougat的版本使用,需要在执行编译时添加变量。

    Android.mk转换Android.bp实例

    下面,以一个AOSP上的简单模块,system/core/sdcard/Android.mk,来做为案例。

    1.  
      LOCAL_PATH := $(call my-dir)
    2.  
       
    3.  
      include $(CLEAR_VARS)
    4.  
       
    5.  
      LOCAL_SRC_FILES := sdcard.cpp fuse.cpp
    6.  
      LOCAL_MODULE := sdcard
    7.  
      LOCAL_CFLAGS := -Wall -Wno-unused-parameter -Werror
    8.  
      LOCAL_SHARED_LIBRARIES := libbase libcutils libminijail libpackagelistparser
    9.  
       
    10.  
      LOCAL_SANITIZE := integer
    11.  
       
    12.  
      include $(BUILD_EXECUTABLE)

    这是一个编译二进制可执行文件的小模块,内容非常简单。 通过执行androidmk Android.mk > Android.bp,可以转换成Android.bp。

    1.  
      cc_binary {
    2.  
      srcs: [
    3.  
      "sdcard.cpp",
    4.  
      "fuse.cpp",
    5.  
      ],
    6.  
      name: "sdcard",
    7.  
      cflags: [
    8.  
      "-Wall",
    9.  
      "-Wno-unused-parameter",
    10.  
      "-Werror",
    11.  
      ],
    12.  
      shared_libs: [
    13.  
      "libbase",
    14.  
      "libcutils",
    15.  
      "libminijail",
    16.  
      "libpackagelistparser",
    17.  
      ],
    18.  
      sanitize: {
    19.  
      misc_undefined: ["integer"],
    20.  
      },
    21.  
      }

    可以看出,虽然行数变多,但其实含义更明确了

  • 相关阅读:
    用graphviz,pygraphviz快速自动绘图
    python 实现的huffman 编码压缩,解码解压缩
    python 字符串的显示
    PKU acm 1651 multiplication puzzle
    SQL Server中的数据类型详解
    (转) treeview 的设计思路
    将英文的week 转换为中文的 简单的方法
    常用的文件对应的MIME类型:
    客户端传参问题
    绑定数据与截取的另外的一中写法
  • 原文地址:https://www.cnblogs.com/bluestorm/p/10895005.html
Copyright © 2011-2022 走看看