3

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

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

4

2 回答 2

1

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

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

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

于 2014-04-23T00:04:56.713 回答
1

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

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

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

  2. 您正在使用的 Pebble OS 版本

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

于 2014-04-23T16:41:17.173 回答