理解make update-api命令

2023-10-30

一、使用场景

  • 增加系统API
  • 修改@hide的API
  • 修改公共API

         存在以上修改后,都需要先执行make update-api,然后再make

二、缘起

1. 在以上使用场景下,编译系统源码都会出现如下提示

see build/core/apicheck_msg_current.txt
******************************
You have tried to change the API from what has been previously approved.

To make these errors go away, you have two choices:
   1) You can add "@hide" javadoc comments to the methods, etc. listed in the
      errors above.

   2) You can update current.txt by executing the following command:
         make update-api

      To submit the revised current.txt to the main Android repository,
      you will need approval.
******************************

2. 提示信息表明API存在错误

谷歌对于所有的类和API,分为开方和非开放两种,而开放的类和API,可以通过“Javadoc标签”与源码同步生成“程序的开发文档”;当我们修改或者添加一个新的API时,我们有两种方案可以避免出现上述错误.

方案1:将该接口加上非公开的标签:/** @hide */ ;
方案2:修改后执行:make update-api(公开),将修改内容与API的doc文件更新到一致。

-------------------------------------------------------------------------------------------------------------------

关于“方案1”需要注意的是,并不是简单写个@hide 或者 /*@hide*/ 就可以了,这些都是错误的javadoc注释格式,标准的javadoc都是这样的 /**  */ 而且对于 format 变量 应该加上 {  }。以我们应该这样写  /** {@hide} */

错误javadoc注释格式
  示例1: /* @hide */
  示例2: /*
                    *@hide
                    */

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解make update-api命令 的相关文章

  • 如何在 Android 中保存相机的临时照片?

    在尝试从相机拍照并将其保存到应用程序的缓存文件夹中时 我没有得到任何可见的结果 应用程序不会崩溃 但在 LogCat 上 当我尝试将 ImageView src 字段设置为刚刚获取的文件的 URI 时 我收到此消息 09 17 14 03
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 使用 VB/ASP classic 可以向 API 发出 HTTP 请求吗?

    是否可以使用 ASP classic 向 Web API 发出请求 例如 像 Flickr API 这样简单的东西 或者这种东西很久以前就不支持了 这是很有可能的 Dim req Set req Server CreateObject MS
  • neo4j - python 驱动程序,服务不可用

    我对 neo4j 非常陌生 我正在尝试建立从 python3 6 到 neo4j 的连接 我已经安装了驱动程序 并且刚刚开始执行第一步 导入请求 导入操作系统 导入时间 导入urllib 从 neo4j v1 导入 GraphDatabas

随机推荐

  • conda create --name python34 python=3.4

    当在命令行输入conda create name python34 python 3 4时出现以下报错 这是因为python3 4已被弃用 我们输入如下指令可查看当前可以安装的版本 conda search python 然后输入对应的版本
  • 内容策划:如何起草一份技术服务条款及相关声明?

    你以为 只要产品过硬就可以了吗 不 还需要好的服务保驾护航 对于面向企业用户的定制产品 通常由专职的售前工程师 进行对接 并以合同约定为准 实施售后服务 对于通用型产品而言 则很难进行有针对性的1对1服务 但服务同样很重要 所以就需要通过服
  • 软件测试十年老鸟——分享学习实战经验,看完直呼窝靠

    前言 作为软件开发过程中一个非常重要的环节 软件测试越来越成为软件开发商和用户关注的焦点 完善的测试是软件质量的保证 因此软件测试就成了一项重要而艰巨的工作 要做好这项工作当然也绝非易事 下面我着重谈谈自己在做软件测试工作中总结出来的一些经
  • Vue.js中事件总线EventBus的使用

    Vuex的使用方法 1 介绍和安装 2 配置 3 注册 4 在组件内使用 1 介绍和安装 EventBus 又称为事件总线 在Vue中可以使用 EventBus 来作为沟通桥梁的概念 就像是所有组件共用相同的事件中心 可以向该中心注册发送事
  • 嵌入式软件开发常用的编辑代码工具、比较工具和测试工具的使用说明和操作步骤

    嵌入式软件开发常用的编辑代码工具有 Eclipse Eclipse是一款开源的集成开发环境 支持多种编程语言和插件 适用于多种嵌入式开发平台 以下是Eclipse的使用说明和操作步骤 步骤1 创建新工程 单击 File 菜单 选择 New
  • python读取nc 作图_Python完成对nc文件的读取可视化

    借同学的nc文件试着做了一下 nc格式大气海洋里还挺常用的 我用了两个一个是basemap一个是matplotlib的3D图 代码不算难 可以简单看一下 第一部分是matplotlib 没有加备注 应该不需要 basemap包安装可能会有问
  • 【算法系列】孤独森林(Isolation Forest)异常点监测方法,附源码

    背景 iForest Isolation Forest 孤立森林是一个基于Ensemble的快速异常检测方法 具有线性时间复杂度和高精准度 是符合大数据处理要求的state of the art算法 其可以用于网络安全中的攻击检测 金融交易
  • oracle分组排序取前几

    项目需求 分组排序 1 要求取出按field1分组后 并在每组中按照field2排序 2 根据要求取出1中已经分组排序好的前多少行的数据 1 row number over row number over partition by col1
  • Hadoop - 作业提交过程(源码)未完待续

    提交作业 hadoop jar word count jar user 1 txt user 2 txt user 3 txt user output hadoop shell 关键代码 core commands the core com
  • 关于移动端触屏输入控制的API的使用汇总(三)_Unity Android手机触屏事件

    关于移动端触屏输入控制的API的使用汇总 三 Unity Android手机触屏事件 lt 26 11 2017 gt 原文地址 http blog csdn net qq 15267341 article details 52275589
  • 一站式JDK安装与配置(Windows、MacOS(arm64与inter)、Linux)

    JDK下载与安装 文章目录 JDK下载与安装 1 Windows 2 MacOS 2 1 一键安装方式 推荐 2 2 手动配置方式 3 Linux 4 在IDEA中配置JDK JDK是Java Development Kit的缩写 它是Ja
  • Qt一个工程调用另一个工程的类成员变量

    一句两句话已经不能表达现在的激动情绪了 唯有感叹知识的博大精深 并把感叹转变为文字 同一个工程调用其他类成员变量非常简单 如 定义 Test1 h中申明成员变量 class A public double m fTest Test1 cpp
  • php中grep,使用 $.grep() 方法

    以前自己也没有使用过 grep 方法 grep 方法是按照某种条件来过滤数组 所以使用 grep 方法可以从数组中过滤出我们想要的结果 我们以一个例子来看看 比如有一个名为 nums 的数组 var nums 1 2 3 4 5 jQuer
  • IntelliJ IDEA 快速入门指南

    本节内容 运行你的第一个Java应用程序 熟悉主界面 智能编码 简单的项目配置 构建您的项目 运行和调试应用程序 运行测试 部署你的应用到服务器上 定制一切 找到适合你的方式 从Eclipse或NetBeans的迁移 下一步做什么 如果您已
  • [矩阵的三角分解系列六] Eigen中的三角分解

    Eigen中的三角分解 简介 安装命令 三角分解函数 使用范例 矩阵的三角分解是求解线性方程组常用的方法 包括LU分解 LDU分解 杜利特 Doolittle 分解 克劳特 Crout 分解 LLT 乔累斯基Cholesky 分解 LDLT
  • 阿里云 Serverless 应用引擎 2.0,正式公测!

    阿里云 Serverless 应用引擎 SAE2 0 正式公测上线 全面升级后的 SAE2 0 具备极简体验 标准开放 极致弹性三大优势 应用冷启动全面提效 秒级完成创建发布应用 应用成本下降 40 以上 此外 阿里云还带来容器服务 Ser
  • 虚拟数字人定制公司 国内做虚拟数字人定制开发的公司有吗?

    得益于图形渲染技术 AI技术 传感器硬件等技术的发展 使得虚拟数字人逐步进入大众视野 虚拟数字人分为真人驱动 AI驱动 AI合成 不同形式的虚拟数字人制作难度与成本相差较大 许多大众认为 制作虚拟数字人就是做一个美术就可以了 如果这样的话
  • 相机标定系列---opencv相关标定算子

    目录 1 标定的相关介绍 2 算法流程及相关算子简介 1 算法流程主要有五部分 2 相关算子介绍 1 棋盘标定板查找角点 2 亚像素角点准确化 3 可视化角点 4 相机标定 5 误差计算 3 完整代码 1 标定的相关介绍 1 标定的目的 在
  • MSBuild version 与 ToolsVersion 的区别

    MSBuild version 是指MSBuild所在的Framework的版本 ToolsVersion 是指编译当前工程使用的版本 相当于MSBuild的 ToolsVersion 参数 如果一个MSBuild 脚本中 既含有Tools
  • 理解make update-api命令

    一 使用场景 增加系统API 修改 hide的API 修改公共API 存在以上修改后 都需要先执行make update api 然后再make 二 缘起 1 在以上使用场景下 编译系统源码都会出现如下提示 see build core a