GDC 2012: x86版AndroidはARM版とここが違う。Intelがx86への対応方法を解説

http://www.4gamer.net/games/047/G004743/20120308091/

 x86ではメモリのリード/ライトがプログラムで指示された順番に従うと保証されているのに対し,ARMではそれがない。なので,2つのスレッドが同じフラグ(変数)を参照するときには,変数の変更順序がプログラムどおり行われない可能性を考慮して,組み込み関数で同期を取る必要があるというのが,ここでのポイントになる。

 以上は一般的なCやC++コードにおける注意点だが,「NEONだけは移植するしかない」とGranatir氏が述べていたことも押さえておきたい。NEONはARMのマルチメディア命令セットで,x86におけるSSEのような拡張機能。よって,x86で動作させるには,SSEへ移植する必要が生じるのである。

GoogleのIan Lewis氏いわく「APKファイルの容量に注意して。データは2GBまで許容されても,コードは50MBまでという制限があるから」。APKファイルは圧縮されているため,ゲーム本体が50MBを超えるというのはなかなか現実的でないが,複数のアーキテクチャに向けて入れ込むと,たしかに制限超えの可能性はあるかもしれない。

FAT Binaryは現実的じゃないと思うな。