![]() |
1
14
像G1和MyTouch这样的老Android设备有armv6cpu,不支持浮点运算。大多数较新的设备,如Droid、nexusone和Incredible,都使用ARMv7-cpu,这是一种具有FP硬件的cpu。如果你的游戏真的是3D密集型的,那么它可能需要比旧的设备提供更多的3D实现,所以你需要决定你想要支持什么级别的硬件。 如果您只使用Java编写代码,那么您的应用程序将在可用时利用FP硬件。如果您使用NDK编写本机代码,并选择armv5te体系结构,则根本不会得到硬件FP。如果您选择了armv7-a体系结构,那么您会选择,但是您的应用程序在armv7-a之前的设备上不可用。 来自Java的OpenGL现在应该位于“直接”字节缓冲区之上,目前从Java访问字节缓冲区的速度很慢,但从本机访问字节缓冲区的速度非常快(不过,我对GL的实现了解不多,所以我不能提供更多。) 一些设备还支持NEON“Advanced SIMD”扩展,它提供了一些超出基本VFP支持的奇特功能。但是,如果您想使用它,就必须在运行时对此进行测试(看起来现在有了示例代码——请参阅 NDK page 对于NDK r4b)。 早些时候的回答有一些问题 info about the gcc NDK用于“硬”fp的标志。
|
![]() |
2
5
我认为你应该尽可能地坚持定点。 不仅旧手机缺少浮点支持,HTC Wildfire等新手机也缺少浮点支持。 另外,如果您选择要求使用ARMv7,请注意,例如摩托罗拉Milestone(Droid for Europe)的确有ARMv7 CPU,但由于Android 2.1是为该设备构建的,因此该设备将不会使用您的armeabi-v7a libs(并且可能会在市场上隐藏您的应用程序)。 我个人通过使用新的 cpufeatures library 提供NDK r4b,使用dlopen()按需加载一些armeabi-v7a库。 |
![]() |
Abhilash Das · 输入文本时,编辑文本与工具栏重叠 1 年前 |
![]() |
Community wiki · 局部变量可能尚未初始化 1 年前 |
![]() |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 1 年前 |