目前幾乎市場上所有的 mobile device 用的 processor 都是基於 ARM Architecture 的,而做為一位 Android 或是 iOS 平台的應用程序開發人員對於 ARM 有一定的認識雖非必要,但多了解一點對優化程序及偵錯問題是有很大幫助的。關於 ARM 的基本介紹,可以參考 Pierre Lebeaupin 的 A few things iOS developers ought to know about the ARM architecture。
最基本要知道的是 ARM Architecture 是有分版本的:
目前主流的 Smartphone 都是採用 ARMv7a 的架構。
而另一個需要了解的觀念是 ABI (Application Binary Interface),要了解 ARM 的 ABI 最快的就是參考 Application Binary Interface for the ARM Architecture 裡的這張圖:
從圖上可以看到在 ABI for the ARM Architecure 實際涵蓋了許多範圍,各個平台的 ABI 通常就是參考標準的 ARM ABI 然後把不明確的地方或是有差異的部份定義清楚。
Android 開發人員可以參考 docs/CPU-ARCH-ABIS.html,使用 Android NDK 開發的話,目前就有分 armeabi 及 armeabi-v7a。iOS 的話除了第一代 iPhone 外目前都是 ARMv7 架構,但目前似乎只找的到這份 iOS ABI Function Call Guide 可以一窺 iOS上的一些實作細節。