我想为 android 编写一个科学/数字环境,我正在收集信息,因为我从未为 android 或移动开发过任何东西。
我最近听说了原生开发工具包,它应该允许我为我的 android 应用程序编写 C++ 代码,但我有一些问题:
- 它会带来可移植性问题吗?由于编译和编码机器 hell
- 基本的 java 数学函数和对象是否良好(至少在 android 中),或者我应该尝试自定义实现常用函数?
- 用 java 编写所有内容?如果与 ndk 相比,它会给我带来很多性能损失吗?
最佳答案
来自 the website :
If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device. The fundamental Android application model does not change.
Using native code does not result in an automatic performance increase, but always increases application complexity.
好消息是,没有可移植性问题!坏消息是,它与为处理器编译 C++ 代码不同,因此它可能无法为您提供所需的性能提升。此外,它肯定会使您作为开发人员的任务更加艰巨。
重申您在评论中收到的建议:首先使用纯 Java 获取功能,然后再考虑优化。
关于数学对象“有多好”,java.lang.Math 中的函数和 double
一样好。
似乎任意精度的小数和整数类不在 android 库中,因此如果需要,您必须自己编写这些类。这同样适用于任何更高级别的对象( vector (实际上可以使用 ArrayList
)、矩阵、图形)如果您需要,Java 确实有一个 Set
。
关于java - 科学和数值模拟在android中有哪些方式? NDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312282/