使用 Kotlin for Android 编写库有开销吗?

2024-05-02

我正在考虑将 Java (Android) 库移植到 Kotlin。我真的很喜欢 Kotlin,相对于 Java 的好处应该可以减少库中的错误数量。

由于该库面向资源受限的环境,我担心将库移植到 Kotlin 会产生额外的开销。

与 Java 库相比,Kotlin 库(以 .class 文件形式分发)是否会引入任何运行时或额外开销?

由于 Kotlin,最终的 Android 应用程序会变得更大或更慢吗?


Kotlin 有许多专门针对 Android 的优化。如果您阅读博客文章,您可以看到它如何不断减少 stdlib 的大小以及每个版本中的类数量。

由于 Kotlin,最终的 Android 应用程序会变得更大或更慢吗?

No

与 Java 库相比,Kotlin 库(以 .class 文件形式分发)是否会引入任何运行时或额外开销?

标准库非常小,它的许多函数都是内联的,这意味着它们在编译后不存在,只是成为内联代码。 Proguard 也可以处理很多事情。

由于该库面向资源受限的环境,我担心将库移植到 Kotlin 会产生额外的开销。

您没有定义哪些资源受到限制。 Kotlin 不会使用更多内存,也不会使用更多磁盘,而且 stdlib 很小。

我真的很喜欢 Kotlin,相对于 Java 的好处应该可以减少库中的错误数量。

Kotlin 在 Android 上流行是有原因的,您应该将此视为好处多于坏处的标志。实际上,您可以通过 Java 中的小示例和 Kotlin 中的小示例来亲自看到这一点,并比较差异。 Proguard 两者都具有相同类型的构建管道。

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

使用 Kotlin for Android 编写库有开销吗? 的相关文章

随机推荐

  • 在 numba.jit 装饰器中使用并行选项会使函数给出错误的结果

    给定一个矩形的两个对角 x1 y1 and x2 y2 和两个半径r1 and r2 找到位于由半径定义的圆之间的点的比率r1 and r2到矩形中的点数 简单的 NumPy 方法 def func 1 x1 y1 x2 y2 r1 r2
  • 使用私有 git 存储库时的 go 工作区结构

    当你不使用 github 时 我一直在尝试找出 go 代码 工作区的标准文件夹布局 结构 我可以看到如何go get在获取 github 项目时有效 但假设我自己的 git 项目不会有 github com username project
  • 我可以计算 SQL Server 中两个日期之间有多少个周末吗?

    我正在计算为一份报告租用设备的收入 其中 周末的招聘成本会比平日增加10 那么我如何计算两个日期之间有多少个周末呢 在报告查询中 我也不能使用DECLARE 有人可以帮我做到这一点吗 太感谢了 这应该有效 DECLARE StartDate
  • 物化视图与表:有什么优点?

    我很清楚为什么物化视图比仅查询基表更可取 不太清楚的是与仅创建另一个具有与 MV 相同数据的表相比的优势 MV 的唯一优势真的只是易于创建 维护吗 MV 不是相当于具有匹配架构的表和使用 MV SELECT 语句的 INSERT INTO
  • 为什么 Yeoman 构建时没有字形图标?

    我正在研究一个webapp发电机及运行后grunt我有一个可以正确显示字体的功能应用程序 然而 当我检查dist 目录我没有得到任何字体文件 文档指出grunt命令build the application for deployment 但
  • 无法在 Mac OS X 10.7 上的 virtualenv 中使用 pip 安装 psycopg2

    我正在按照 Heroku 的教程部署 Django 应用程序 http devcenter heroku com articles django preventions http devcenter heroku com articles
  • Android 日历示例(如 Google 日历)[已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的 Android 应用程序中添加一个日历 用户可以在其中查看他们的每日日程安排 就像谷歌日历
  • 在哪里以及如何为我的 asp.net MVC 3 Web 应用程序定义

    我想将自定义错误设置为 true 以防止用户查看有关我的应用程序的详细信息 但我找不到应该在哪里写这个
  • 使用放心获取重定向的 URL?

    我正在发出一个 GET 请求 然后进行 307 重定向到另一个 URL 并从那里进行另一个 302 重定向 依此类推 直到到达所请求的页面 我在从第一个重定向 307 中提取 URL 时遇到问题 我想查看重定向到的位置 我使用放心作为框架
  • 2 个 Python 字典如何变成 1 个? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 扩展 字典 https stackoverflow com questions 577234 python extend for a dictionary 我知道 Python 列表可以
  • socket.io:未触发断开连接事件

    我做了一个简单的实时访客计数器 您可以从以下位置下载 这个存储库 https bitbucket org bitliner nodejs mycounter 发生的情况是服务器上的断开连接事件 即使在浏览器关闭后 永远不会被触发 serve
  • 如何判断 F# 函数是否是纯函数?

    假设我有这两个 F 函数 let sq x x x let tm DateTime Now 显然 sq 是纯的 因为它对于给定的输入总是返回相同的值 而 tm 是不纯的 因为每次调用它时都会返回不同的值 一般来说 有没有一种方法可以确定 F
  • 三次样条内存错误

    在具有 4GB 内存的计算机上 这种简单的插值会导致内存错误 基于 http docs scipy org doc scipy reference tutorial interpolate html http docs scipy org
  • 如何在 React Native 中从自定义导航器导航到 createBottomTabNavigator?

    我有一个自定义导航器 因为我想使用向后滑动手势返回到上一个屏幕 下面是调用导航器的主文件的代码 const MainSwipeStack gt return
  • 在 C# 中进行进程间通信 (IPC) 最简单的方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有两个 C 应用程序 我希望其中一个向另一个发送两个整数 这不必很快 因为它每隔几秒调用一次 做到这一点最简单的方法是什么 它不一定是最优雅的
  • Python 记录到标准输出和日志文件

    我对 python 相当陌生 并开始进入日志记录模块 我希望将消息记录到日志文件中并输出到控制台 下面的代码将消息打印到控制台 但是如何将所有消息记录到文件中 Logger 对象没有用于记录到文件的函数调用 basicConfig file
  • apache solr:group by 产生的数据总和

    我们有一个要求 需要按特定字段对记录进行分组 并获取相应数字字段的总和 前任 select userid sum click count from user action group by userid 我们尝试使用 apache solr
  • 使用 Windows 身份验证的 User.Identity.Name

    我的标题中有一个非常简单的部分视图 称为 AccountInfoPanel 它只有一行 Welcome HttpContext Current User Identity Name 在我的 Web Config 中我有
  • Azure WebJobs - 我可以使用异步方法吗?

    我想知道Azure WebJobs SDK是否可以触发异步方法 目前我有一个如下所示的方法 class Program static void Main string args var host new JobHost host RunAn
  • 使用 Kotlin for Android 编写库有开销吗?

    我正在考虑将 Java Android 库移植到 Kotlin 我真的很喜欢 Kotlin 相对于 Java 的好处应该可以减少库中的错误数量 由于该库面向资源受限的环境 我担心将库移植到 Kotlin 会产生额外的开销 与 Java 库相