2017-07-20 126 views
2

編輯:這是不同於Android NDK的字節碼,因爲該問題詢問如何找到字節序,而不是有多少設備是大/小端。國防部,請不要將其標記爲僞裝。有多少百分比的Android手機是小端?


只是好奇,是否值得支持大/小端Android手機?我在我的應用程序中有一些代碼敏感的代碼,對於那些很好奇的代碼,它包括將long序列化爲字節流。我認爲我的手機是big-endian,因爲ByteBuffer.getLong()正在以我已寫入的字節流的大端格式閱讀。

是否值得支持大/小端Android手機?我不確定大前端與小端相比有多普遍。是否有可用的數據告訴我們每個人的相對百分比?

謝謝。

+0

雖然Java不是,但Android設備在本地級別(幾乎)完全是小端。如果你小心的話,這不是一個問題。我之所以說,幾乎是因爲我手邊沒有具體的資源,但我從未在6年的Android開發中見過Big Endian製作設備 –

+0

我認爲根據這篇文章(https:// news)。 ycombinator.com/item?id=9451284)Big-Endian已經死了,你可以在鏈接頁面看到(機器是雙端的,但是所有的新操作系統只是littl endian),這意味着你不應該好奇關於大端。 –

+0

@worker_bee這個問題問如何測試字節序,而不是有多少設備是大/小字節序。 –

回答

6

幾乎所有支持的體系結構都是小端,有一個可能的例外。

Android列出了其支持的ABI(應用程序二進制接口)here。基本上有三類:

  • 基於ARM;對於那些頁面說每個「遵循小端ARM的GNU/Linux ABI」。
  • 基於x86;和那些are all little-endian
  • 基於mips的;該頁面指定標準mips是小端。它沒有說任何關於mips64除了鏈接到its official page

所以mips64是唯一的問號。它支持雙端架構。它似乎是2016年推出的首款mips64智能手機芯片。我無法找到哪款(如果有的話)手機實際使用此功能,但似乎並不常見。

至於是否值得支持兩者:這是您必須做出的判斷。誰知道未來會帶來什麼?

相關問題