当前位置: 首页 > news >正文

快速建站套餐自适应网站开发

快速建站套餐,自适应网站开发,微网站建设合同,需要建设一个什么样的网站文章目录 Android.bp起源Android.bp文件结构如何编写Android.bp文件实例详解实例1实例2 常见问题解答1. 如何确定使用哪种模块类型#xff1f;2. 如何指定模块的依赖项#xff1f;其他疑问可参考官方文档 参考文章#xff1a;Android.bp 语法和使用 Android.bp起源 早期的A… 文章目录 Android.bp起源Android.bp文件结构如何编写Android.bp文件实例详解实例1实例2 常见问题解答1. 如何确定使用哪种模块类型2. 如何指定模块的依赖项其他疑问可参考官方文档 参考文章Android.bp 语法和使用 Android.bp起源 早期的Android系统采用的是MakefileAndroid.mk作为其构建系统。这是一种广泛应用于Unix和Linux环境中的构建工具它依赖于一系列以文本形式编写的指令称为Makefiles来自动构建程序。 然而随着Android项目的规模逐渐扩大Makefile开始显得不够灵活而且构建速度相对较慢。特别是在处理复杂的依赖关系和条件编译时Makefile的语法也显得过于复杂和笨重。 因此Google决定开发一个新的构建系统——Soong它使用Go语言编写专门针对Android项目进行了优化。Soong引入了一种新的配置文件格式Blueprint即我们现在所说的Android.bp。 Android.bp是Blueprint配置文件的一种特殊形式专门用于定义Android源代码树中的构建目标。Blueprint最初是由Google为其Soong构建系统开发的并在Android Nougat7.0版本中首次引入。 Blueprint的设计理念是简单、易读、易写它基于声明式语法只需要描述要做什么而不需要指定如何做。这使得配置文件更加简洁便于开发者理解和维护。 Android.bp文件采用类似JSON的语法但更为简洁。它主要包括模块类型、模块名称和模块属性等部分用于定义如何构建一个模块。 自从引入Android.bp文件以来Android的构建过程已经变得更加简单和高效。Android.bp提供了一种灵活的方式来配置构建参数支持各种不同类型的构建目标如二进制文件、库文件、测试用例等。 同时由于Android.bp文件的语法简单明了新手开发者也能快速上手。对于大型项目来说使用Android.bp可以显著提升构建性能减少构建时间提高开发效率。 Android.bp文件结构 Android.bp文件通常包含以下部分 模块类型如cc_binary, cc_library等定义了模块的类型。 模块名称通过name字段定义是模块的唯一标识。 模块属性这些属性可用于控制模块的构建行为。例如srcs属性指定了源代码文件deps属性则指定了模块的依赖项。 如何编写Android.bp文件 一个基本的Android.bp文件可能看起来像这样 cc_binary {name: my_module,srcs: [my_module.c],deps: [my_dependency], }在这个例子中cc_binary是模块类型表示要构建的是一个C/C可执行文件。name属性定义了模块名称srcs属性指定了源代码文件而deps属性则列出了依赖的模块。 实例详解 实例1 下面是一个更复杂的Android.bp文件示例它涵盖了更多模块属性 cc_library {name: libmylibrary,srcs: [my_file.cpp],cflags: [-Wall, -Werror],export_include_dirs: [include],static_libs: [libmystaticlib],shared_libs: [libmysharedlib], }在这个例子中cflags属性用于指定编译器标志export_include_dirs属性定义了其他模块可以访问的头文件目录而static_libs和shared_libs属性则分别列出了静态库和共享库的依赖项。 实例2 // // Copyright (C) 2008 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the License); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an AS IS BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. //// This makefile supplies the rules for building a library of JNI code for // use by our example of how to bundle a shared library with an APK.package {default_applicable_licenses: [Android-Apache-2.0], }cc_library_shared {name: libsimplejni,// All of the source files that we will compile.srcs: [native.cpp],// All of the shared libraries we link against.shared_libs: [liblog],// No static libraries.static_libs: [],cflags: [-Wall,-Werror,],header_libs: [jni_headers],stl: none,sdk_version: current, } 这是一个用于构建 Android 平台上 JNI (Java Native Interface) 代码库的 android.bp 文件。Android.bp 是 Android 的构建系统 Soong 使用的脚本语言用于描述如何构建源代码。 以下是各个部分的解读 Copyright 和 License 部分此部分指定了此文件的版权信息和许可证信息说明该文件遵循 Apache License 2.0 许可证。 package 部分此处指定了默认适用的许可证即 Android-Apache-2.0。 cc_library_shared 部分定义了一个名为 “libsimplejni” 的共享 C/C 库。 name: libsimplejni定义了库的名称为 libsimplejni。 srcs: [native.cpp]要编译的源文件列表这里只有一个文件 “native.cpp”。 shared_libs: [liblog]要链接的共享库列表这里只链接了一个名为 “liblog” 的库。 static_libs: []静态库列表为空表示没有需要链接的静态库。 cflags: [-Wall, -Werror]要传递给 C/C 编译器的选项“-Wall” 开启所有警告“-Werror” 将所有警告视为错误。 header_libs: [jni_headers]头文件库列表包含了 “jni_headers”。 stl: none指定不使用任何 STL (Standard Template Library) 库。 sdk_version: current指定了 SDK 版本为当前版本。 常见问题解答 1. 如何确定使用哪种模块类型 模块类型取决于你要构建的项目。例如如果你正在构建一个C/C的可执行文件应该使用cc_binary如果你正在构建一个Java库应该使用java_library。 2. 如何指定模块的依赖项 你可以在deps属性中列出所有直接依赖的模块名称。Soong构建系统将自动处理这些依赖项并确保在构建当前模块之前先构建它们。 其他疑问可参考官方文档 Android官方文档
http://www.hkea.cn/news/14314377/

相关文章:

  • 上海优化网站公司哪家好网站建设管理情况说明
  • 大兴企业官网网站建设咨询判断网站
  • 建设的比较好的网站毕业设计做网站哪种好
  • 商务网站模块设计时前台基础设施建设详情页设计收费
  • 中国建设网站上报名塔吊司索工鹤城建设集团网站
  • 网站建立电话wordpress 文章筛选
  • aspnet网站开发实例教程pdf国内最新新闻摘抄30字
  • 手机网站模板带后台镇江网页设计工作室
  • 网站换一个图片怎么做app开发公司找xiala5徵推广
  • 什么网站可以做PS 写论文兼职绍兴做网站公司哪家好
  • 网站建设对接视频做物流的都有哪些网站
  • 商城网站建设运营合同书网站建设和赚钱方法
  • 做卖车网站需要什么手续南通网站建设祥云
  • 北京住房建设官方网站泉州晋江网站建设费用
  • 连锁店管理网站开发找清包工程上什么网
  • 建设银行 成都 招聘网站百度网盘app官网
  • 国外网站加速神器做影视网站违法不
  • 重庆网站制作外包信诺盛世网站
  • 刚做的网站上线后收不到了服装服饰设计网站
  • 做易购网站兴山县铁路建设协调指挥部网站
  • 企业做网站的凭证怎么做重庆百度推广seo
  • 有哪些网站做二手房好的wordpress 一栏主题
  • 网站备案后要做什么python基础教程电子书
  • 如何经营自己的网站企业如何推广网站
  • 访问网站出来的是目录怎么做hello官方网站
  • 360免费建站不要钱全球做空现货黄金的网站
  • 常用网站设置站长工具的网址
  • 如何申请一个网站 做视频app介绍网站模板免费下载
  • 企业网站为什么要备案网络科技公司网站源码下载
  • 苏州企业网站建设设计做网站时版权怎么写