【问题标题】:AppMessage maximum size considerations?AppMessage 最大大小注意事项?
【发布时间】:2014-04-22 17:15:42
【问题描述】:

我希望更清楚地了解影响传入手表的应用消息的最大允许大小的因素。 SDK 保证工作的最大大小为 124 字节,the docs 表示“在某些情况下,Pebble 可能能够为您的应用程序提供更大的收件箱/发件箱。您可以在您的代码以获得您可以使用的最大可能值。”

我在我的鹅卵石上尝试了这个,app_message_inbox_size_maximum() 返回了 2044(这对于我的应用程序来说已经足够了),但我想这在鹅卵石上不可靠?文档提到的“某些上下文”是什么?

【问题讨论】:

  • 我分叉了一个应用程序 (github.com/arytbk/jewishclock2) 并在 cloudpebble 模拟器中运行它。我发现在模拟器 Aplite 上它有一个错误,但在我的 Pebble Time 中它没问题。事实证明,在模拟器中(但仅在 Aplite 中)它失败了,因为 app_message_open(app_message_inbox_size_maximum(), 32);将其更改为 app_message_open(app_message_inbox_size_maximum()/2, 32); “修复”模拟器中的问题。今天问有Pebble 1的朋友测试原版,对他有用(虽然他用的是elbbep.cpfx.ca固件)这是模拟器的bug吗?

标签: pebble-watch


【解决方案1】:

有两个因素会影响可用内存量:

  1. 您是在与 JavaScript 程序交谈,还是与使用 PebbleKit iOS/Android 库的 iOS/Android 程序交谈?

    对于 JavaScript,您将拥有更多可用内存,因为 Pebble 将使用与安装应用程序和升级固件相同的缓冲区。不幸的是,与使用 PebbleKit 原生库编写的第三方应用程序通信的通道要小得多(大约 500 字节)。

  2. 您使用的 Pebble 操作系统版本

    版本之间会有微小的差异,但没有大的差异。

【讨论】:

  • 谢谢!如果这被记录在某处(尤其是 JavaScript - 本机应用程序),那就太好了。
【解决方案2】:

在开发应用程序时,我想说的最重要的事情是,在处理消息时,消息必须存在于应用程序的内存空间中。 app_message_open 为您分配空间,该空间来自包含您的应用程序二进制文件和应用程序堆的 24kb(请参阅Pebble Dev FAQ)。因此,大约 2kB 的 AppMessages 可能是也可能不是问题。

但是app_message_xxx_size_maximum 函数无法知道您最终要为其他东西使用多少 RAM。由于您无法调整收件箱的大小,因此您必须在第一次使用自己的判断时就正确设置。

除此之外,谁知道呢。 PebbleOS 是封闭源代码,因此没有简单的方法可以弄清楚引擎盖下发生了什么。但是,我们可以试试!首先,由于无法检查收件箱/发件箱的大小,我们可能会假设操作系统在创建收件箱/发件箱后不会调整其大小。然后,由于操作系统不允许同时运行超过 1 个应用程序,因此可以推测在同一硬件上启动应用程序时大小限制是一致的。最后,最大尺寸只会随着时间的推移而变大,因为减小它会冒破坏依赖特定尺寸的应用程序的风险。

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 2016-11-05
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    相关资源
    最近更新 更多