#contents

* Product Info [#g7dc53a6]

- [[Armadillo-500 FX | アットマークテクノ:http://www.atmark-techno.com/products/armadillo/a500fx]]

** Hardware Summary [#iebe3754]

|Processor|Freescale i.MX31|
|RAM|DDR SDRAM 128MB|
|NOR Flash|32MB|
|SSD|Intel ZU-130 1GB|
|SD/MMC|2 slots|
|USB|High Speed x 2, Full Speed x 1|
|Key Pad|24 keys|
|LCD|5.7 inch VGA with touch panel|
|[[W-SIM:http://www.wcmf.jp/wsim/index.html]]|supported|

** Software Summary [#q27bd4e9]

|Linux Kernel|2.6.26|
|[[development environment:http://armadillo.atmark-techno.com/dev-env]]|ATDE, Atmark Dist|

** Price [#ad759bd1]

128,100 JPY

** Availability [#e1616f81]

Oct 31, 2008 on sale.

* Google Android [#t93c01ae]

** Emulator Skins [#q114c42d]

Start Android emulator with "-skin A500FX" option after extracting the following ZIP file into (SDK Location:)/tools/lib/images/skins directory.

#ref(A500FX.zip)

** Screenshots [#c3849ccc]

#ref(screenshot.png)

** initlogo.rle [#wbc414e3]

[[起動時にロゴを表示(Jingによる画面キャプチャ):http://screencast.com/t/0j75T1CVqX]]

/initlogo.rleを置いておけば表示されます。
RGB888のRAW形式の画像を用意すれば、Androidのソースの build/tools/rgb2565 にあるツールを以下のように使えば作ることができます。RGB888のRAW形式の画像は、GIMPなどで生成できます。

 $ rgb2565 -rle < RGB888のRAWデータ > initlogo.rle

なお、rgb2565は、以下の手順でmakeできます。

 $ cd (repoで構築したTOPディレクトリ)
 $ . build/envsetup.sh
 $ cd build/tools/rgb2565
 $ mm

** boot animation [#wf0ecb1b]

Androidは、意外とHVGA Portraitの画面サイズを前提とした処理があるのですが、そのうちの1つにboot animationがあります。たとえばVGAサイズの画面サイズを持つ機器で動かすと、Android君の場所がずれます。このボードでもずれてしまうので、取り急ぎ直してみました。以下、パッチです。直したファイルは、frameworks/base/libs/surfaceflinger/BootAnimation.cpp になります。バリバリにVGA Landscapeに依存しています:-)

 diff --git a/libs/surfaceflinger/BootAnimation.cpp b/libs/surfaceflinger/BootAnimation.cpp
 index e9e34c3..ab60c1a 100644
 --- a/libs/surfaceflinger/BootAnimation.cpp
 +++ b/libs/surfaceflinger/BootAnimation.cpp
 @@ -223,19 +223,19 @@ bool BootAnimation::android()
          float fade = i / float(steps);
          glColor4f(1, 1, 1, fade*fade);
          glClear(GL_COLOR_BUFFER_BIT);
 -        glDrawTexiOES(0, 0, 0, mAndroid[0].w, mAndroid[0].h);
 +        glDrawTexiOES(160, 0, 0, mAndroid[0].w, mAndroid[0].h);
          eglSwapBuffers(mDisplay, mSurface);
      }
  
      // draw last frame
      glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
      glDisable(GL_BLEND);
 -    glDrawTexiOES(0, 0, 0, mAndroid[0].w, mAndroid[0].h);
 +    glDrawTexiOES(160, 0, 0, mAndroid[0].w, mAndroid[0].h);
      eglSwapBuffers(mDisplay, mSurface);
      
      
      // update rect for the robot
 -    const int x = mWidth - mAndroid[1].w - 33;
 +    const int x = mWidth - mAndroid[1].w - 33 - 160;
      const int y = (mHeight - mAndroid[1].h)/2 - 1;
      const Rect updateRect(x, y, x+mAndroid[1].w, y+mAndroid[1].h);
 

** Related Information [#gf5968fd]

- Some geeks have already succeeded running Google Android on this platform.

-- [[ケータイ Watch - 【CEATEC JAPAN 2008】イヤホンマイク通信ジャケットなどW-SIM活用製品展示:http://k-tai.impress.co.jp/cda/article/event/42045.html]]
-- [[なんとなく実験 with SIProp開発記 - 謎のボードであのバージョン:http://www.noritsuna.com/archives/2008/10/post_120.html]]
-- [[throw Life - JJUGのCross Community Conference 2008 Fallで話してきました:http://www.adamrocker.com/blog/227/jjug-ccc-2008-fall-android.html]]