在我正在開發的應用程序中,我需要使用C庫。這意味着我將不得不處理所有不同Android設備的所有不同指令集,對吧?Android版指令集
是否有任何可用的列表(或者有人可以告訴我?)所有這些指令集?我知道目前爲止所有的Android設備都是32位的,但當然還有更多。
在我正在開發的應用程序中,我需要使用C庫。這意味着我將不得不處理所有不同Android設備的所有不同指令集,對吧?Android版指令集
是否有任何可用的列表(或者有人可以告訴我?)所有這些指令集?我知道目前爲止所有的Android設備都是32位的,但當然還有更多。
三大巨頭是ARMv5,ARMv7和x86。 ARMv7器件可以運行ARMv5指令。不過,ARMv7 CPU具有浮點協處理器,而ARMv5則不具備。因此,如果您正在做很多浮點工作,那麼肯定會讓NDK爲這些體系結構生成.so
文件。如果你不是在做浮點運算,你可以嘗試跳過ARMv5。
儘管大多數Android設備都是由ARM提供支持,但x86正在進行一場較晚的復出。我有a blog post discussing libhoudini
作爲一種避免擁有專用x86二進制文件的方式,性能成本。
還有MIPS的Android支持。我看到的下一個MIPS驅動的Android設備將是我的第一個。因此,即使NDK支持它(IIRC),開發人員通常也不用擔心這個問題。
感謝您的迴應,已經接受爲答案!不過,我仍然有一個疑問:大約ARMv5,ARMv7和x86覆蓋的Android設備的百分比是多少? – Zero
@零:谷歌不會公佈這方面的統計數據,我不記得看到另一項調查,儘管可能有一項調查。 x86可能約爲1%。到目前爲止,ARMv7可能已經超越了ARMv5,並且肯定會在更高端的市場中佔有一席之地。 ARMv5是Android設備最初使用的,我的印象是針對新興市場的低端Android設備仍然配備ARMv5 CPU,可能會降低部件成本。 AFAIK,所有適用於Android的多核ARM處理器都是ARMv7。 – CommonsWare
謝謝!這非常有幫助! :) – Zero
「指令集」,你的意思是「CPU架構」? – CommonsWare
相當多,是的 – Zero