在汇编中编写 android 个应用程序部件

Writing android app parts in assembly

我正在使用 Marmalde 和 C/C++ 为 android 编写游戏。 现在我想在汇编器中编写一些重要的部分来提高性能。 但我想知道这个应用程序是否可以 运行 在大多数 android 设备上? (约 90%) 因为通常汇编代码取决于处理器,不同的 android 手机可能有不同的处理器,例如 Intel 或 ARM,所以我必须为每个不同的处理器用不同的汇编语言编写这些部分!?

是的,当然你必须为每个处理器 ABI.

编写汇编代码

Android NDK 有 specific support for different ABIs.

请记住,虽然目前仅支持三个处理器系列(Intel x86/64、ARM 和 MIPS),但您必须针对所有不同的 ABI,而不是处理器系列本身。

您可以安全地丢弃 MIPS 设备,它们非常罕见。
Intel 设备主要是平板电脑,但也有一些 phone。
绝大多数设备都是 ARM。

如果你看官方optimization guide from ARM v8 or at a very useful optimization guide for Intel你会发现写出好的汇编代码实际上需要一些时间,这不仅仅是让一些东西工作(你应该已经能够轻松做到)。

提示
先用 C++ 编写关键部分,然后查看反汇编,看看是否可以做得更好,或者是否可以识别一些次优模式。
只有这样才能重写汇编中的代码。

同样在进行此类微优化之前,尝试使用更好的数据结构、更好的算法和更好的资源处理。