2011-09-19 48 views
2

我正在開發一款Android遊戲,我將上傳到市場。我正在使用NDK;大部分的遊戲代碼都是C++。我應該爲x86構建我的Android應用嗎?

我應該擔心支持x86設備嗎?那裏真的有嗎?

目前我只爲ARMv6建設;爲ARMv6和v7構建的應用程序增加了APK的大小,但沒有使其更快(已經足夠快)。如果我只需要構建單個體繫結構就會很好。

回答

1

如果你可以做到這一點沒有太多的麻煩,我會做到這一點。

不是因爲有大量的Android/x86設備,而僅僅是因爲支持多種體系結構是一種很好的方式來擺脫可能以前從未遇到的錯誤(或者在系統發生兩年現在,突然你的應用程序不再工作了)。它會讓你成爲更好的程序員。

此外,我很驚訝,爲armv7建設沒有賦予任何優勢。你的意思是說你已經在armv7設備上運行armv6 build了嗎?如果是這樣,建設armv7仍然可以允許您的代碼運行得更快,即使不增加「性能」,這通常也可以節省能源。更少的能量=人們更長時間地使用你的應用

現在,所有的說法,我不知道Android的工具包,所以我不知道支持多個拱門實際上涉及多少麻煩。如果這是一個重大麻煩,那麼通過一切手段堅持armv6;這對於那些「大多數」設備來說是一個很好的基準。

+0

使用NDK可以很容易地爲額外的體系結構進行編譯 - 只需將它們的名稱添加到Makefile中的一行即可。我的C++代碼與平臺無關(我的大部分測試都發生在Win32前端應用程序中),但是由於我只爲ARM構建了Java/JNI代碼,因此我不確定我對此做出了什麼假設。我很確定遊戲的幀速率是上限。關於節能的好點 - 我會做一些電池壽命測試。我反對支持多種體系結構的主要原因是,每一個都意味着我的APK文件要大幾百KB。 Android Market中的多個APK支持解決了這個問題。 – Karu

+0

我嘗試了一個ARMv7版本,並獲得與在兩個不同ARMv7設備(Galaxy S II和Nexus S)上構建的ARMv6完全相同的電池壽命結果。我的應用主要使用浮點計算。我從結果中得出結論,我的遊戲真的是「足夠快」。 (儘管如此,仍然需要讓我的手放在慢速手機上)。 – Karu

相關問題