一般:如何更改 Android 核心 API 类?

2024-04-26

这只是一个一般性问题,供我参考。我知道如何创建标准的 Android 应用程序,但我想知道:这怎么可能/人们如何增强 Android 核心功能并深入挖掘系统?

例如: 假设我想调整下载管理器 http://developer.android.com/reference/android/app/DownloadManager.html类,许多应用程序都使用该类。因此,例如,可以调整该类,以便以某种方式更改显示在下载进度下的通知栏中的下载文本。

请原谅我提出以下愚蠢的问题,但我不知道这些高级主题,这就是我在这里问的原因;-)

  • 可以更改(例如)DownloadManager 类,以便它具有扩展功能,然后由 3rd 方应用程序使用,对吗?
  • 然后可以将修补后的类放入 Play 商店以供其他人下载/扩展其 DownloadManager 功能吗?
  • 人们需要 root 才能安装这样的更改吗?
  • 最重要的是:如何更改 Android API 类?我真的是一个菜鸟:我不知道从哪里获取源代码,如何用增强类替换标准,需要什么,等等。是否有像这样的高级主题的教程?

请给我一点启发:-)


可以更改(例如)DownloadManager 类,以便 它具有扩展功能,可供第三方使用 应用。

是的,当然,Android源代码是在Apache许可下开放的,你可以修改这个源代码,并公开到全世界。有关的一些详细信息DownloadManager类和许多其他类,在Android操作系统结构中,这些类是在上层编程的,通常完全用Java编写。

修补后的类可以放到 Play 商店中供其他人使用吗 下载/扩展其 DownloadManager 功能?

我不太明白你的问题。在 Play 商店(以及另一个 Android 应用商店)中,人们上传他们的应用(用有趣的句子来说,上传已编译的源代码),那么如何上传源代码供用户扩展他们的应用程序呢?

你可以将你的源代码公开到github,或者其他程序员经常见面的地方,这样他们就可以查看你的源代码,并且经常给你宝贵的想法和评论:)

人们需要 root 才能安装这样的更改吗?

如果高级用户,他们可以为其设备安装新的 Android 操作系统。但我认为,这个答案超出了您真正需要的范围。

从哪里获取源代码,如何用标准替换 增强课程,需要什么等等。是否有教程 像这样的高级主题?

在Android SDK文件夹中,有一个名为“Source”的文件夹,你可以去那里看到很多Android源代码。您可以接受、阅读并修改您想要的内容。 Android 的某些部分不在这里,你应该谷歌一下,在互联网上很容易找到。

但你应该记住,当你修改这个类或那个类时,它不再属于Android操作系统,你必须将这个类文件作为普通类导入到你的项目中。

所以,如果你想修改基本的Android API:这些API通常都是用Java编写的,你仔细阅读并理解它们,如果需要的话修改一些部分,然后将这个类导入到你的项目中。

最后一句话,为什么你应该这样做:)因为你可以extends您想要的类,并为该类添加一些附加功能。它更容易、更好。

希望这有帮助:)

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

一般:如何更改 Android 核心 API 类? 的相关文章

随机推荐

  • 更改 DataGridViewComboBoxColumn 单元格的背景颜色

    我创建了一个 DataGridView 对象 其中包含 DataGridViewComboBoxColumn 类型的列 以允许用户从下拉列表中选择值 例如 如果用户选择 高 我想对组合框的背面进行着色 但是 它不会为组合框着色 而只会为组合
  • 如何使用程序集绑定重定向来忽略修订号和内部版本号

    我有几个 C NET 应用程序 以及供它们访问数据库的 API 我想将 API 的所有版本放入数据库中 并让它们选择最高版本和内部版本号 但坚持使用它们构建时使用的主要版本号和次要版本号 基本上当我参考API时1 2 3 4我想要参考阅读1
  • 基于github仓库的本地仓库创建本地git仓库并保持更新

    我有一些基本的 git 知识 但我不知道如何实现这一点 我正在尝试克隆 github WordPress 入门主题下划线 https github com automattic s 这个想法是创建一个基本框架based 经过一些修改 在该存
  • 无法将 PHP 表单放入表格中

    我创建了一个工作正常的表单 但是当我将其放入表格中时 它总是认为该表单不完整 有没有办法可以将其放入表格中 这样看起来不错 而不会出现此问题 我的 HTML h2 class green Interested in making life
  • .Net Core Web Api 异步不重要吗?

    我一直在编写我的 Web Api 控制器方法async关键字并一直在使用async一直往下 我最近尝试创建一个方法同步来看看它会如何影响性能 并惊讶地发现它对任何其他 http 请求都没有阻塞影响 举个例子 Route Foo class
  • aws key 和 Secret 在 aws cli 上工作但在 jenkins 上不起作用

    我正在尝试运行 python 脚本 其中包含使用 boto3 sdk 访问 s3 的代码 我已经在我的 Windows 机器中创建了默认配置文件 aws cli 命令在窗口 cmd 中可以正常工作以访问 s3 存储桶 python 脚本在窗
  • PHP 计算 JSON 请求中返回的项目数?

    我正在寻找一种方法来计算在搜索数据库时得到的这些 JSON 字符串中返回的项目数 以 PHP 表示 请原谅我 因为我对这一切一无所知 有人告诉我 因为 JSON 版本中没有返回计数 就像此数据库中的 XML 版本一样 我必须使用循环来计算结
  • 简单的http服务器

    好吧 这可能是一个愚蠢的问题 但关于节点 我已经尽我所能了 我设置了一个服务器 使用我们可以在任何节点演示或教程中找到的代码 var http require http var server http createServer functi
  • 如何在VueJS中将所有事件传递给父级

    传递道具 In VueJS如果你设置inheritAttrs to false并使用v bind attrs 您将组件中未声明的所有 props 传递给其子组件 是否有类似的方法将来自子级的所有事件传递给其父级VueJS 代码示例 Wrap
  • 无法加载 Spring ApplicationContext

    我正在为一个有点复杂的 spring 应用程序编写单元测试 我想加载 spring 上下文以便使用定义的 bean 我的 context xml 位于 src main resources context xml Maven 构建后 con
  • Keras模型拟合多项式

    我从四次多项式生成了一些数据 并希望在 Keras 中创建一个回归模型来拟合该多项式 问题是拟合后的预测似乎基本上是线性的 由于这是我第一次使用神经网络 我认为我犯了一个非常微不足道且愚蠢的错误 这是我的代码 model Sequentia
  • 基于程序描述的多线程推荐

    我想描述我的程序的一些细节 并获得有关最适用的最佳多线程模型的反馈 我现在花了很多时间阅读有关 ThreadPool Threads Producer Consumer 等的内容 但尚未得出可靠的结论 我有一个文件列表 格式相同 但内容不同
  • 将 best_in_place 与富文本编辑器(如 TinyMCE)一起使用

    我正在使用best in placegem 在 Rails 应用程序中进行就地编辑 但是 我需要对某些文本区域进行 X HTML 编辑 因此我需要一个富文本编辑器 TinyMCE 正在该网站的其他地方使用 然而 添加一个编辑器并不简单bes
  • 有没有办法扩展 PHP 中的特征?

    我想使用现有的功能trait并创建我自己的trait在此之上只是为了稍后将其应用到课堂上 我想延长Laravel SoftDeletes特质SaveWithHistory函数 因此它将创建一个记录的副本作为已删除的记录 我也想扩展它reco
  • 我无法通过引用捕获传递 lambda

    以下代码失败并出现此错误 E0413 不存在从 lambda float int i gt float 到 float int i 的合适转换函数 int test float f int i int i gt float return t
  • 使用 Asp.net/C# 使用 USB 令牌对文本文件进行数字签名?

    我有一个 USB 令牌 Epass Capricorn 我的要求是使用它来签署文本 平面文件 PS 我相信我必须从代 码中获取 START SIGNATURE START CERTIFICATE 和 SIGNER VERSION 数据并附加
  • 模拟器卡在从 10.0.2.2:8081 加载时,有什么问题吗?

    I am working on a react native project and I run it on emulator android AVD manager 我跑了adb 反向 tcp 8081 tcp 8081在 cmd 但我的
  • Visual Studio Code 中的“Markdown 片段链接导航”是什么?

    Visual Studio Code 2017 年 2 月 版本 1 10 发行说明描述了他们所谓的 Markdown 片段链接导航 这是描述 包含片段的 Markdown 文件的链接现在将尝试打开相应标题处的文件 Section head
  • Bootstrap 4 导航栏折叠菜单右对齐

    我正在使用 Bootstrap 4 我试图通过单击折叠按钮在右侧而不是左侧打开来弹出菜单 我尝试在 ul 元素上使用 ml auto 当导航栏未折叠时 导航栏项目正确位于右侧 当它折叠时 按钮正确地位于右侧 但菜单在左侧弹出 我也尝试过将
  • 一般:如何更改 Android 核心 API 类?

    这只是一个一般性问题 供我参考 我知道如何创建标准的 Android 应用程序 但我想知道 这怎么可能 人们如何增强 Android 核心功能并深入挖掘系统 例如 假设我想调整下载管理器 http developer android com