新旧Android 4機種のNEON対応

  • このエントリーをはてなブックマークに追加
    2011/04/12
  • Android, 開発者ブログ

(2011-04-14 一部修正)

samurai-appsでは、今年に入ってAndroid開発機を一気に増強し、次の4台になりました。

  • NTTドコモ HT-03A (HTC Magic)
  • イーモバイル PocketWiFi S (Huawei IDEOS U8150)
  • NTTドコモ Xperia arc SO-01C (Sony Ericsson)
  • Motorola Xoom WiFi

今後これらを駆使してプラットフォーム対応の向上を目指して参ります。

各機の違いをみるため、次期Tegraでは搭載されるという噂もあるARM版SIMD命令”NEON”について調べてみました。
NEONを使うと演算主体のルーチンを劇的に高速化できることがあります。NEON命令を使うにはC/C++でネイティブライブラリを作成し、アプリからJNI (Java Native Interface) を使ってライブラリを呼び出します。ARMv7以上でかつNEON対応のCPUが必要で、機種ごとに対応・非対応を調べてルーチンを切り替える必要がありでしょう。

NEON対応状況を、Android NDK r5bに付属のHelloNeonアプリを使って対応を調べてみました。
さらに、各機の基本的情報およびtDpiInfoで調べたディスプレイスペックも併せて紹介します。

機種名 NTT docomo
HT-03A
EMOBILE
PocketWiFi S
NTT docomo
Xperia arc SO-01C
Xoom
メーカー HTC Huawei Sony Ericsson Motorola
OS Version 1.6 2.2 2.3.2 3.0.1
CPU Qualcomm
MSM7200A
→see
Qualcomm
MSM7201A
→see
Qualcomm
Snapdragon MSM8255
→see
NVIDIA
Tegra 2 250
→see
Clock 384MHz *1 528MHz 1000MHz 1000MHz
(Dual Core)
ARMv7 or later No No Yes Yes
NEON No No Yes No
Height [px] 480 320 854 800
Width [px] 320 240 480 1280
Density 1.0 0.75 1.5 1.0
Xdpi [px] 180.62193 160.42105 234.46153 149.82489
Ydpi [px] 181.96814 159.37254 233.24301 149.41176

*1: スペック上は528MHz動作可能なCPUですが、384MHzで駆動されています。

動作速度は、HT-03AとPocket WiFi Sのグループ、Xperia arcとXoomのグループの2つでは別次元です。Xoomは最も解像度が高いですが、最も高速に動作する印象です。Dual CoreとGPUが効いているのでしょう。Xperia arcも操作感は滑らかで、どちらも素晴らしいです。前者のグループは遅く、解像度も低いですが、開発時の速度チューニング用に使っています。

開発の観点からは、DPIの違いにも注目です。
DPIは160px/inchを標準としてDensity=1.0と定められており、ディスプレイの仕様・物理的サイズに応じて各機固有の値を持っています。ただ、Densityは0.25刻みでまるめられるようで、Densityが1.0でも物理サイズが小さいHT-03Aは180dpiと高くなっていますし、ディスプレイの大きなXoomは逆に149dpiと低くなっています。Xperia arcは、Densityが1.5と高くなっています。そのため、グラフィックスを表示する場合は1.5倍に拡大しないと視覚的には非常に小さく表示されてしまいます。
# なお、ChartExpertにはこの問題があり、現在鋭意対応作業中です:P

NEON対応については、samurai-appsの所有する中ではXperia arcだけという結果になりました。アプリ開発でNEONを前提とするにはまだまだ注意が必要と言えそうです。


(2011-04-14 追記)

ほかの機種についても、知人の協力を得て調べてみました。

機種名 NTT docomo
MEDIAS N-04C
NTT docomo
REGZA Phone T-01C
au
IS03
メーカー NECカシオ 富士通東芝 SHARP
OS Version 2.2.1 2.1-update1 2.1-update1
CPU Qualcomm
Snapdragon MSM7230
→see
Qualcomm
Snapdragon QSD8250
→see
Qualcomm
Snapdragon QSD8650
→see
Clock 800MHz 1000MHz 1000MHz
ARMv7 or later Yes Yes Yes
NEON Yes Yes Yes
Height [px] 854 854 960
Width [px] 480 480 640
Density 1.5 1.5 2.0
Xdpi [px] 160.42105 160.42105 331.7551
Ydpi [px] 159.49706 159.49706 334.0274

IS03の解像度の高さが際立ちます。
MEDIASとREGZA Phoneのディスプレイスペックはよく似ています。ただし、Densityが1.5で240dpiのはずなのに、XdpiとYdpiが160前後の値になっているのが気になります。

NEONについては、Snapdragon搭載機はすべて対応でした。ここ1年の携帯電話ならば問題ないでしょう。一方、タブレットはTegra2搭載機が増えていますので、注意が必要になりそうです。

調査にご協力いただいた皆様、本当にありがとうございました!

“新旧Android 4機種のNEON対応” への2件のコメント

  1. ml48603 より:

    I ran tDpiInfo v1.1.5 on a rooted LG-L45C phone running Android Gingerbread v2.3.4 and did not get the reports shown above. I was particularly interested in the CPU details, NEON status, ARM line items. Is there another version of tDpiInfo that was used or an altogether different APP that was actually used?

  2. munepi より:

    Hello. Thank you for reading our article.
    We have thanked tDpiInfo for bringing information related to display, such as DPI, resolution, and scaling parameter.
    To get NEON status, we used the HelloNeon, a sample App included in Android NDK. For details, see http://developer.android.com/sdk/ndk/overview.html#samples.
    To get other CPU details, such as its model number and clock frequency, we checked manually vendor’s sites or other sites like here if a vendor does not provide details.

コメントをどうぞ

© 2017 samurai-apps. All rights reserved. Powered by WordPress Entries RSS Comments RSS