【Android 构建新工具】Bazel 构建Android项目

【Android 构建新工具】Bazel 构建Android项目

本文我们使用Bazel构建一个最简单的Android项目。Bazel提供了编译Android程序内置的方法,具体参考:Android Rules

1. 环境准备

Bazel只是编译工具,不是真正的编译器,所以还是需要Andorid开发的SD、NDK以及Android Studio,并配置开发环境。

接下来就是安装Bazel。由于平时在macos开发为主,所以主要介绍macos系统的安装。macos下bazel有四种安装方式:

  1. 使用二进制安装器(官方推荐);
  2. 使用hombrew;
  3. 使用bazelisk;
  4. 从源码编译安装bazel。

下面介绍前两种常用方法。

1.1 二进制安装器安装

从GitHub releases page 下载对应版本安装器。

第一步安装Xcode 命令行工具

如果不打算使用ios_*相关的规则编译,则只需要使用xcode-select安装Xcode命令行工具:

xcode-select --install

如果需要构建ios相关程序,则必须安装Xcode6.1或者最新版本,并且iOS SDK 版本8.1以上。我们可以在App Store中下载到Xcode。

Xcode安装成功后需要我们通过一下命令接收用户使用说明协议:

sudo xcodebuild -license accept
第二步:下载Bazel安装器

我们先在Github basel release页面下载bazel安装器baze-<version>-installer-darwin-x86_64.sh,mac中沃恩可以使用curl工具下载:

# Example installing version `3.2.0`. Replace the version below as appropriate.
export BAZEL_VERSION=3.2.0
curl -fLO "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-darwin-x86_64.sh"
第三步:执行安装器脚本

使用下面命令安装bazel:

chmod +x "bazel-${BAZEL_VERSION}-installer-darwin-x86_64.sh"
./bazel-${BAZEL_VERSION}-installer-darwin-x86_64.sh --user

--user参数将B

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于改进天鹰优化算法(IAO)优化支持向量机(SVM)数据分类预测(IAO-SVM)

改进天鹰优化算法(IAO)见&#xff1a;【智能优化算法】改进的AO算法(IAO)-CSDN博客 支持向量机(SVM)数据分类预测&#xff1a;基于支持向量机(SVM)的数据分类预测-CSDN博客 代码原理 基于改进天鹰优化算法&#xff08;IAO&#xff09;优化支持向量机&#xff08;SVM&#xf…

uniapp获取证书秘钥、Android App备案获取公钥、签名MD5值

一、 uniapp获取证书秘钥 打开uniapp开发者中心下载证书打开cmd输入以下这段代码&#xff0c;下载提供查看到的密钥证书密码就可以了&#xff01;下载证书在 java 环境下运行才可以 // your_alias 换成 证书详情中的别名&#xff0c;your_keystore.keystore 改成自己的证书文件…

Splashtop 的屏幕录制功能如何提高 IT 合规性

在当今的数字时代&#xff0c;随着远程办公的普及以及监管要求和网络安全威胁的加剧&#xff0c;IT 副总裁、首席信息官&#xff08;CIO&#xff09;等 IT 管理人员面临着一系列独特挑战。 各组织在远程支持运营中要全力维护合规性、提高安全性并坚持问责制&#xff0c;技术解…

汉江师范学院2024年成人高等继续教育招生简章

汉江师范学院&#xff0c;这所承载着深厚文化底蕴和学术积淀的高等学府&#xff0c;即将在2024年迎来新一季的成人高等继续教育招生。这不仅是一次知识的盛宴&#xff0c;更是对每一位怀揣梦想、追求进步的成年人的诚挚邀请。 汉江师范学院&#xff0c;以其严谨的教学态度、卓…

关于数据库的ACID几点

首先的话就是关于ACID&#xff0c;最重要的就是原子性了&#xff0c;这是基础。 原子性是指事务包含的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成。如果不能保证原子性&#xff0c;可能会出现以下问题&#xff1a; 数据不一致&#xff1a;事务中的部分操作…

AI基础:从线性回归到梯度下降

一个简单的问题&#xff1a; 如果此时你正站在迷路缭绕的山坡上&#xff0c;能见度不高&#xff0c;但是你又想去往最低的山谷的位置&#xff0c;怎么走&#xff1f; 很简单&#xff0c;哪里陡那就往那里走呗——而这就是梯度下降算法的思想。 古话说&#xff1a;“先发制于人…

java基于ssm+jsp 电子商城系统

1管理员功能模块 管理员登录&#xff0c;通过填写用户名、密码进行登录&#xff0c;如图1所示。 图1管理员登录界面图 管理员登录进入电子商城系统可以查看个人中心、用户管理、医生管理、药品信息管理、线上诊疗管理、医生信息管理、管理员管理、论坛管理、系统管理、订单管…

行业推荐!IG5216量产工具下载,IG5216开卡软件分享

国内固态硬盘常用&#xff0c;且有量产工具流传出来的主控厂商包括慧荣、群联、点序、英韧、得一微、瑞昱、联芸、迈威、国科、华澜微等等。 每个主控需要用各自对应的量产工具&#xff0c;不同的量产工具支持的闪存颗粒也有差异&#xff0c;因此要根据固态硬盘实际的主控型号…

气膜建筑审批流程及现状分析—轻空间

气膜建筑作为一种新兴的建筑形式&#xff0c;以其快速建造、成本低廉和灵活多变的优势在各个领域得到了广泛应用。然而&#xff0c;气膜建筑在我国尚未被纳入正式的建筑规范&#xff0c;这使得其审批流程与传统建筑有显著差异。轻空间将详细探讨气膜建筑的审批流程及其在实际操…

深入探究 npm cache 命令:用途与实践指南

npm&#xff08;Node Package Manager&#xff09;是 JavaScript 编程语言的包管理器&#xff0c;广泛用于 Node.js 应用程序。它不仅用于管理项目中的依赖&#xff0c;还提供了一个强大的缓存机制来加速包的安装过程。npm cache 命令是与 npm 缓存交互的命令行工具&#xff0c…

MongoDB:JSON and BSON

目录 什么是 JSON MongoDB-JSON连接 什么是 BSON MongoDB 使用 BSON 还是 JSON JSON 与 BSON 架构灵活性和数据治理 JSON 和 BSON 是近亲&#xff0c;正如它们几乎相同的名称所暗示的那样JSON&#xff08;即 JavaScript 对象表示法&#xff09;是网络上广泛流行的数据交换…

grep使用

在 Windows 中&#xff0c;你可以使用以下步骤来使用 grep 命令&#xff1a; 安装 Git for Windows&#xff1a;grep 命令通常在类 Unix 操作系统&#xff08;如 Linux、Mac OS X 等&#xff09;中使用&#xff0c;但你可以通过安装 Git for Windows 来在 Windows 上获得类似的…

Transformer 结构

目录 一、Transformer 的整体结构二、Input Encoding三、Transformer Block3.1 Encoder3.1.1 Attention3.1.2 Self-attention3.1.3 Multi-head Attention 3.2 Decoder3.2.1 Masked Multi-head Attention 四、Transformer 的优缺点 遇到看不明白的地方&#xff0c;欢迎在评论中留…

Incremental Player Build

*未解决&#xff0c;仅作记录 Unity 版本 2021.3.15f1 问题 Unity 发布webgl 平台卡在Incremental Player Build 界面。 解决 未找到明确原因&#xff0c;简化工程路径后发布成功。

Leetcode 矩阵问题

36题.有效的数独 此类问题特点是给出行列的多种限定条件&#xff0c;数独限制每行每列每个小九宫格元素范围为1-9且不可重复 。解决此类问题最简单的想法就是使用哈希set&#xff0c;记录每行&#xff0c;每列&#xff0c;每个小九宫格已经出现的元素。在遍历矩阵时提前做出是否…

S32K3 --- Wdg(内狗) Mcal配置

前言 看门狗的作用是用来检测程序是否跑飞,进入死循环。我们需要不停地喂狗,来确保程序是正常运行的,一旦停止喂狗,意味着程序跑飞,超时后就会reset复位程序。 一、Wdg 1.1 WdgGeneral Wdg Disable Allowed : 启用此参数后,允许在运行的时候禁用看门狗 Wdg Enable User…

技术干货丨如何加速工业数字孪生应用落地?

什么是数字孪生&#xff1f; “孪生”概念最早可追溯至NASA的阿波罗项目&#xff0c;随着数字化技术的进步&#xff0c;“孪生”概念应用从物理孪生向数字孪生发展。即“数字孪生”是对资产、进程或系统的一种数字化表示&#xff0c;并通过信息交互、数据同步等方式实现物理实体…

Java校园跑腿小程序校园代买帮忙外卖源码社区外卖源码

&#x1f525;校园跑腿与外卖源码揭秘&#x1f525; &#x1f680; 引言&#xff1a;为何需要校园跑腿与外卖源码&#xff1f; 在快节奏的校园生活里&#xff0c;学生们对于便捷、高效的服务需求日益增长。校园跑腿和外卖服务成为了解决这一需求的热门选择。然而&#xff0c;…

C++ STL Iterator Adapter

1. std::back_insert_iterator 使用 // back_insert_iterator example #include <iostream> // std::cout #include <iterator> // std::back_insert_iterator #include <vector> // std::vector #include <algorithm> // std::copy…

获取HTML元素的scrollHeight属性

获取HTML元素的scrollHeight属性 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何使用JavaScript获取HTML元素的scrollHeight属性。scrol…