我们为一个简单的项目开发了 NDK 原型。该代码已编译并在设备和模拟器上运行。但是,在手机上查看设置菜单时:(Samsung Galaxy Nexus(Android 4.2.2)、Samsung Gio(Android 2.3.6)),在 Gio 上运行应用程序比在运行应用程序时占用更多空间银河系。此外,以下命令报告 GIO 的堆分配更高:
System.out.println(Debug.getNativeHeapAllocatedSize() / 1049L);
我们为很多功能使用了一个静态库。确切的结果是:
关系:
- 占用空间 (MB)(Java 实现)1.24
- 占用空间 (MB)(C++ 库实现)0.96
- 内存分配(MB)(Java实现)1.6
- 内存分配 (MB)(C++ lib 实现) 1.5
吉奥:
- 占用空间 (MB)(Java 实现)1.19
- 占用空间 (MB)(C++ 库实现)1.71
- 内存分配(MB)(Java实现)4.6
- 内存分配 (MB)(C++ lib 实现) 5.5
占用空间和内存使用量差异的原因是什么?
(在 iOS 设备(C++ 库)上测量分配在 3GS 上与在 Galaxy Nexus 上产生的结果大致相同)。