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.  
      }

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

  • 相关阅读:
    某个牛人做WINDOWS系统文件详解
    常用ASP脚本程序集锦
    LINUX基础:文件安全与权限
    proftpd+mysql+quota
    apache2.0.49tomcat5.0.19jk2建立virtualHost
    URL Redirection(转) Anny
    顶级域名后缀列表(转) Anny
    \u4E00\u9FA5意义 Anny
    How to POST Form Data Using Ruby(转) Anny
    How to get rid of 'Enter password to unlock your login keyring' in Ubuntu(转) Anny
  • 原文地址:https://www.cnblogs.com/bluestorm/p/10895005.html
Copyright © 2011-2022 走看看