Software/Android

Android開発スタータキット

本キットは以下の環境を前提として開発しています。

  • 開発環境
    VMWare仮想マシン上にUbuntu10.04をインストールし、その上にAndroid x86 のビルド環境を構築しています。

PICO821 BIOS 設定

PICO821 での BIOS 設定で必要になる箇所について記載します。
BIOS 画面へは 電源ON後キーボードの「Del」キーを押すことで BIOS 画面に 遷移します。

  • Advanced BIOS Features
    • Hard Disk Boot Priority
      • Hard Disk (CF,USBディスク含む) の起動順番を選択します。
    • Fisrt Boot Device、Second Boot Device、Third Boot Device
      • デバイス(Hard Disk、CDROMなど)の起動順番を選択します。
  • Advanced chipset Features
    • Video BIOS Cacheable
      • Enabled になっていることを確認してください。

以下の2項目は 2D 描画1枚での速度向上のためのものになります。
overlay(半透明ウィンドウ)や GL では Hardware Accelerator が
ないため効果がありません。

  • Advanced Chipset Features
    • On-Chip Frame Buffer Size
      • 選択できる最大の 8MB になっていることを確認してください。
    • LCD Panel Type
      • 選択できる最大の画像解像度 1366x768 24bit を選択してください。
      • (注):色の深度を 24bit ではなく 18 bit を選択すると画面全体が白くぼやけてしまいます。

ビルド済みイメージの CF インストール

USB_boot からのインストール

USB boot ディスクの作成

VMware 内 /home/beat/ pico821usb_boot/usb_boot/android-system/ usb_boot 以下に
usb_boot 用の各 img があります。各ファイル名は以下のとおりです。

  • initrd.img
  • install.img
  • kernel
  • ramdisk.img
  • system.sfs img

1. USB ディスク(1GB 以上) を ext3 でフォーマットします。
ラベルはここでは ext3 とします。
フォーマットは gparted、fdisk などを使用してください。

2. USB ディスクに grub をインストールします。
(注): grub のバージョンが0.97 になっていることを確認してください。
また df コマンドなどで USB ディスクがどのデバイスファイルになっているかの確認もしてください。
ここでは /dev/sdb1 にマウントされているものとします。

$ sudo grub-install --root-directory=/media/ext3 --no-floppy /dev/sdb

3. usb_boot ディレクトリ以下の android-system/
android-x86.xpm.gz をUSB ディスクにコピーします。

$ sudo cp -fr usb_boot/android-* /media/ext3/

4. usb_boot ディレクトリにある menu.lst を boot/grub にコピーします。

$ sudo cp -fr usb_boot/menu.lst /media/ext3/boot/grub

以上で USB boot ディスクの作成は完了です。

CF へのインストール

1. CF のフォーマット
CF を ext3 でフォーマットします。
ここではラベルを x86 とします。

2. PICO821 の起動
CF と USB ディスクを pico821 に挿し電源ON後 キーボードの「Del」キーでBIOS 画面 に入ります。
BIOS 画面の Advanced BIOS Features を選択し、Hard Disk Boot Priority で Hard Disk の起動順序を選択できます。
USB ディスクを「1」に設定し CF を「2」に設定します。
android-x86 の menu 画面 Hard Disk へ Android をインストールする項目を選びます。
(注): vga の指定をしていないと ダイアログがスクロールしてしまい
選択がわからなくなります。キーボードの上下左右のキーを押すと現在どれを
選択しているかが表示されます。インストール項目の menu に vga=ask を追加
すると、インストールダイアログが表示されます。ただしインストール後のmenu.lst
の kernel のパラメータが kernel /android-2010-10-29/kernelask となるので
ホストマシンなどで kernelask の ask の部分を削除してください。

3. CF へのインストール
USB ディスクから CF へのインストールが開始されます。インストールする場所に CF を選択します。
フォーマットの種類を選択する画面が表示されますが 既にext3 でフォーマットしていますので『 Do not Format』を選択します。
続いて grub をインストールするかの画面が表示された際は『Yes』(grub をインストールする) を選択してください。

4. CFでの起動
インストールが終わると『Android Boot』とでます。『Android Boot』の選択を『OK』
を選択して、インストールされた Android が起動することを確認します。
CF で Android の起動を確認したら電源OFF もしくは 再起動をし USB Boot ディスクを はずします。
これで再度起動した際に CF から Android が起動するイメージの作成が 完了します。

CF 起動

起動の際は BIOS の変更した Hard Disk Boot Priority の CFが「1」になっていることを確認し、
grub のメニュー画面にてキーボードの「e」キーで vga=ask (もしくはCF ディスクをホストマシンに接続して
grub/menu.lst にvga=ask)を追加します。

kernel /android-2010-10-29/kernel root=/dev/ram0 androidboot_hardware=pico821 
acpi_sleep=s3_bios,s3_mode SRC=/android-2010-10-29 vga=ask 

ここではキーボードの「b」キーで boot を開始し 画像解像度を 640x480x16bit (311)で起動します。

(注): 稀に grub で Error 15 (ファイルが存在しない)というエラーがでることがあります。
正しくBoot の順番があっているか確認してください。
また起動時のCF認識に時間がかかることがあります。

起動オプション確認表

color depth 32bit はブレンドにて失敗しているので 16 bit の VESAで起動するようにしてください。

  • VESA (8bit 除く)
    a|	785 (0x311)     640x480 16		
    b|	786 (0x312)     640x480 32		
    c|	788 (0x314)     800x800 16		
    d|	789 (0x315)     800x600 32		
    e|	791 (0x317)    1024x768 16		
    f|	792 (0x318)    1024x768 32		
  • BIOS 設定画像解像度
    1|	 640x480 
    2|	 800x600 
    3|	 800x480 
    4|	1024x768 
    5|	1024x600 
    6|	1280x800 
    7|	1366x768 
  • dpi
    hdpi|	240
    mdpi|	160
  • 起動確認表
        VESA      	                  BIOS 画像解像度		
          	        1       2	3	4	5	6	7
    hdpi	a       OK	OK	OK	OK	OK	OK	OK
    	b	NG	NG	NG	NG	NG	NG	NG
    	c	-	OK	-	OK	OK	OK	OK
    	d	-	NG	-	NG	NG	NG	NG
    	e	-	-	-	OK	-	OK	OK
    	f	-	-	-	NG	-	NG	NG
    mdpi	a	OK	OK	OK	OK	OK	OK	OK
    	b	NG	NG	NG	NG	NG	NG	NG
    	c	-	OK	-	OK	OK	OK	OK
    	d	-	NG	-	NG	NG	NG	NG
    	e	-	-	-	OK	-	OK	OK
    	f	-	-	-	NG	-	NG	NG

以上で CF カードへの img インストールは完了です。

制限事項は『制限事項について』をご覧ください。

キーバインド

ボタンのそれぞれの割り当ては以下のようになっています。

  • キーボード
    Android     keyboard
     Back    <- ESCキー
     Menu    <- メニューキー
     Home    <- Homeキー
     ENDCALL <- Endキー(長押し)
     コンソール <- (Alt + F1)
     コンソールからHOMEへ <- (Alt +F7) 
  • マウス
    Android     keyboard
     BACK    <- 右クリック
     Menu    <- スクロールボタン
     決定    <- 左クリック

VMwareビルド環境構築手順

VMwareの構成

VMware仮想マシンの構成は以下のようになっています。

  • 仮想マシン名: ubuntu10.04-32bit-android-x86-dev-20101001
  • 仮想マシンversion: VMware WorkStation 6.5-7.x互換
  • OS: Ubuntu 10.04 Desktop 32bit版
  • 仮想マシン画面解像度: 1024x768(Ubuntu上で設定)
  • HDD: 40GB(最大40Gまでの設定で予め領域確保はしていません。イメージは2Gずつに~分割設定)
  • Memory: 1024MB
  • CPU: 2個
  • Network: ブリッジ接続

(注):仮想マシンの起動前に仮想マシン管理画面でメモリー割当量やCPU数を自分の環境
に合わせて変更して下さい。

Ubuntu 10.04 アカウント

VMware Player などでVMイメージを起動するとUbuntuが起動しログイン画面が表示されます。
ユーザ名とパスワードは以下のように設定しています。

  • ユーザ名: beat
  • パスワード: beatcraft

ホームディレクトリ内のファイル配置

Desktop                 デスクトップフォルダ
Downloads               Firefox、chromeのデフォルトダウンロードディレクトリ
android-s5              vilivs5.git.sourceforge.netリポジトリから取得したソースコード一式
android-sdk-linux_x86   Android SDKツールズ
android-x86             android-x86.orgリポジトリから取得したソースコード一式
bin                     repoコマンドの置き場
eclipse                 Eclipse IDE(ADTプラグインインストール済み)
kernel_work             android-s5をPICO821向けにビルドした際のkernel調整作業ディレクトリ
pico821boot-image       PICO821のファイルシステム上へ直接配置するAndroidの起動イメージ(kernel+userland)
pico821usb_boot         PICO821向けのUSBビルドイメージ
sample_media            Android-x86で使用するサンプルの画像、動画
workspace               Eclipseのデフォルト作業ディレクトリ(Eclipse起動時に適宜変更できます。)

deb パッケージインストールおよび削除

以下のパッケージをインストールしています。

$ sudo apt-get install openssh-sever nautilus-open-terminal vim lv gparted

また開発に必要のないいくつかのパッケージを削除してあります。
必要な場合は apt-get install {パッケージ名} を実行して再インストールしてください。

android ビルドツールのインストール

androidのビルドに必要な以下のパッケージを取得してインストールしています。

$ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev \
 libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev \ 
 zlib1g-dev 
$ sudo apt-get install valgrind 
$ sudo apt-get install libreadline5-dev 

java5 のインストール

androidのビルドに必要なsun-java5-jdkはUbuntu 9.10以降リポジトリから外されているため、
/etc/apt/sources.list に一時的に古いリポジトリを追加してsun-java5-jdkをインストールしています。

  • リポジトリの追加
$ sudo vi /etc/apt/sources.list
  ## respective vendors as a service to Ubuntu users.
  deb http://archive.canonical.com/ubuntu lucid partner
  deb-src http://archive.canonical.com/ubuntu lucid partner
 
  deb http://archive.ubuntu.com/ubuntu lucid-security main restricted
  deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties
  deb http://archive.ubuntu.com/ubuntu lucid-security universe
  deb http://archive.ubuntu.com/ubuntu lucid-security multiverse
+ deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
+ deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
  • sun-java5-jdk インストール
    リポジトリの追加後、 apt-get update コマンドでリポジトリの情報を更新し sun-java5-jdk をインストールします。
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk
  • リポジトリの復元
    インストール完了後、誤って他の古いパッケージをインストールしないよう上記で追加したリポジトリを削除しています。
$ sudo vi /etc/apt/sources.list
  ## respective vendors as a service to Ubuntu users.
  deb http://archive.canonical.com/ubuntu lucid partner
  deb-src http://archive.canonical.com/ubuntu lucid partner
 
  deb http://archive.ubuntu.com/ubuntu lucid-security main restricted
  deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties
  deb http://archive.ubuntu.com/ubuntu lucid-security universe
  deb http://archive.ubuntu.com/ubuntu lucid-security multiverse
- deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
- deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

もう一度 apt-get update で現状のリポジトリ情報に更新して元の状態に戻します。

$ sudo apt-get update

grub の入れ替え

Ubuntu 10.04はdefaultではgrub2(パッケージ名grub-pc)がbootloaderとしてインストールされますが、
USB DiskやCFにandroidのイメージをインストールするためにgrub-pcをgrub(0.97)に入れ替える必要があります。
(注):grub の入れ替えが正しく完了していないと Ubuntu が正常に起動しなくなることがあります。

synapticパッケージマネージャを起動し grubを「インストール指定」にします。
この際、grub-pc が「削除指定」になっていることを確認してください。(bootloader なのでどちらかしかインストールできません。)
適用後再起動します。
再起動後以下のコマンドを実行しgrubが0.97になっていることを確認します。

$ grub --version
grub (GNU GRUB 0.97)

バージョン確認後 grub (0.97) の設定を行います。

$ sudo update-grub
$ sudo grub-install /dev/sda

Android SDKのセットアップ

http://developer.android.com/sdk/installing.html
この手順に従って以下のようにandroidのアプリケーション開発環境をインストールしてあります。

/home/beat/ に android-sdk_r7-linux_x86.tar.gzを展開。
.bashrc 末尾に以下を追加。

export PATH=${PATH}:/home/beat/android-sdk-linux_x86/tools

Eclipse v 3.5.2 (for Java Developers)を /home/beat/eclipse にインストール。
.bashrc 末尾を以下に編集。

export PATH=${PATH}:/home/beat/android-sdk_r7-linux_x86/tools:/home/beat/eclipse

ADT Plugin for EclipseをEclipseにインストール。
EclipseのpreferenceでAndroid項目にAndroid SDKのPATHを設定。
EclipseのUIのAndroidアイコンからADTを起動し、Android SDKのアーカイブに含まれていないAPI versionのパッケージを取得。

android-x86

froyo-x86と各プロダクトのリビジョンについて

x86版のandroidをビルドするため、android-x86.orgのソースコードを利用しています。
ブランチはfroyo-x86(Android 2.2)です。
(注):android-x86 ではgitのブランチが切られていますが、特定のタグが振られていないことと
manifest.xml にリビジョンが付与されていないため
『ある特定の時点』のソースコードを簡単に取得することができません。
各ディレクトリのソースコードのgitのcommitが『ある特定の時点』と違うことで
全く同じ手順を踏襲してもビルドがエラーになるなどの問題が起こることがあります。
参考資料として各ディレクトリのgit commitのハッシュ値を revision.log という名前のテキストで
repo 管理のディレクトリツリーのトップ置いています。(/home/beat/android-s5/ revision.log .txt)
git管理の各ディレクトリでそのリビジョンをgit checkoutすることで『ある特定の時期』と同じ状態を作り出すことができます。

repoの設定

android のソースコードを取得するためにrepoの設定を行います。
(repoは複数のgitリポジトリをまとめて管理するためのツールです。)

$ cd ~
$ mkdir bin
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo

一度ログアウトしてログインし直すと ~/bin へのPATHは通っています。
ログアウトせずそのまま作業したい場合は、以下のようにして ~/binを環境変数のPATHに追加します。

$ export PATH=~/bin:$PATH

.bashrc に設定する場合は以下のように追記します。

$ export PATH=~/bin:$PATH >> .bashrc

ソースコードの取得(android-s5)

PICO821向けandroidのソースコードのリポジトリとして、
android-x86からのViliv S5向け派生projectであるandroid-s5を使用しています。
Villiv S5はグラフィックチップにPICO821と同じIntel GMA500を使用しているデバイスで、
android-x86.orgのリポジトリには含まれないvoldの修正等が含まれています。
kernel version は 2.6.32.15 です。

http://sourceforge.net/apps/mediawiki/vilivs5/index.php?title=Main_Page

以下のようにコマンドを実行しvilivs5.git.sourceforge.netからfroyo-x86のソースコードを取得します。

$ mkdir android-s5
$ cd android-s5
$ repo init -u git://vilivs5.git.sourceforge.net/gitroot/vilivs5/manifest.git -b froyo-x86
$ repo sync

ソースコードの修正

(注):VMware 仮想マシンイメージに含まれているソースコードは修正済みです。
再度もしくは新規にfroyo-x86ソースコードを取得した場合、既に修正が行われている可能性があります。

  • frameworks/base/opengl/tests/gl_jni/jni/gl_code.cpp
    ビルドの際 GL tests でエラーがでた場合、以下の箇所を確認してください。
extern "C" {
    JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_init(JNIEnv * env,jobject obj,  jint width, jint height);
   JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_step(JNIEnv * env,jobject obj);
   JNIEXPORT void JNICALL  Java_com_android_gljni_GLJNILib_changeBackground(JNIEnv * env, jobject obj);
- };
+ }
  • device/axiomtek/pico821 の追加
    villiv/s5 を参考に pico821 のビルド用コンフィグファイルを追加しています。

PICO821ビルド

後述するPICO821向けビルド設定を使用してビルドを行います。

$ cd /home/beat/android-s5
$ source build/envsetup.sh
$ lunch pico821-eng
$ make -j2 usb_img TARGET_PRODUCT=pico821 TARGET_ARCH_VARIANT=x86-atom 2>&1 | tee make2010xxxx_x.log

(注):TARGET_ARCH_VARIANT=x86-atom については後述の『build target について』 参考をご覧ください。

  • initrd.img 作成
    kernel の module ビルドを実行し、initrd.img を作成します。
$ cd out/target/product/pico821/obj
$ mkdir ~/kernel_work
$ cp -fr kernel ~/kernel_work/
$ cd ~/kernel_work/kernel
$ make modules
$ sudo make modules_install

 .........
 INSTALL /lib/firmware/radeon/RV710_pfp.bin
 INSTALL /lib/firmware/radeon/RV710_me.bin
 DEPMOD  2.6.32.15-android-x86-pico821

DEPMOD が表示されますのでその名前に下記のkenrel versionを合わせてください。
今回は2.6.32.15-android-x86-pico821という名前になります。

$ mkinitramfs -o initrd.img 2.6.32.15-android-x86-pico821

イメージファイルの配置

前述の『ビルド済みイメージの CF インストール』を参照してください。
out/target/product/pico821/usb_boot/ 以下に各 img ファイルが作成されています。

ファイルの配置 (Experimental)

(注):この項目はイメージではなく各ファイルをCFに配置してAndroid を起動する手順です。
未完成の部分が多く制限事項は イメージファイルの配置よりも多くなることを ご了承ください。

  • CF フォーマット
    CFカードをEXT3でフォーマットします。
    ここではディスクラベルを「x86」とします。
  • grub のインストール
    (注):CF カードをVMware仮想マシン開発環境で認識したデバイス番号に合わせてください。

dev/sdb1にラベル名x86がマウントされていますので/dev/sdb1にgrubを導入します。

$ df
/dev/sdb1              3850292   1194464   2460240  33% /media/x86

デバイス名、デバイス位置を確認したらgrub-installを実行します。

$ sudo grub-install --root-directory=/media/x86/ --no-floppy /dev/sdb
$ ls /media/x86/boot/grub/
default        fat_stage1_5       minix_stage1_5     stage2
device.map     installed-version  reiserfs_stage1_5  xfs_stage1_5
e2fs_stage1_5  jfs_stage1_5       stage1
  • menu.lst
    boot/grub/以下にmenu.lst を作成します。
    menu.lst の内容は以下のようにします。
    (注):root filesystem(root)のディスク、パーティション、kernel(bzImage)、initrd(initrd.img)のパス、ファイル名を正しく設定してください。
$ sudo vi boot/grub/menu.lst

title Android-x86
root (hd0,0)
kernel /boot/bzImage-2.6.35-android-x86-pico821 root=/dev/sda1 androidboot.hardware=pico821 rw init=/init vga=ask
initrd /boot/initrd.img-2.6.35-android-x86-pico821
  • kernel の配置
    上記で作成したinitrd.img と bzImage をリネームし/boot以下に配置します。
$ cd ~/kernel
$ sudo cp arch/x86/boot/bzImage /media/x86/boot/bzImage-2.6.35-android-x86-pico821
$ sudo cp initrd.img /media/x86/boot/initrd.img-2.6.35-android-x86-pico821
  • android userland の配置
    androidのuserlandを以下のように配置します。
$ cd out/target/product/pico821
$ sudo cp -fr root/* /media/x86/
$ sudo cp -fr system/* /media/x86/system/
$ sudo cp -fr data/* /media/x86/data/
$ cd /media/x86
$ sudo chown -R root:root *
$ sudo chmod -R 777 data
$ sudo chmod -R 777 system

起動準備はこれで完了です。

ソースコードの取得(android-x86)

本キットの起動イメージには使用していませんが、android-s5の派生元である
android-x86のリポジトリのソースコードもVMware仮想マシン環境に取得しています。
TARGET_PRODUCT は generic_x86、TARGET_ARCH_VARIANTはx86-atom でビルドしています。

取得は以下のようにコマンドを実行して行います。

$ mkdir android-x86
$ cd android-x86
$ repo init -u git://git.android-x86.org/manifest.git -b froyo-x86
$ repo sync

git://git.android-x86.org/ が接続できない場合ミラーとして git://android-x86.git.sf.net/gitroot/android-x86/ があります。
android-x86.org に接続できない場合git:// 以下をgit.android-x86.org から android-x86.git.sf.net/gitroot/android-x86 に変更します。

変更前
$ repo init -u git://git.android-x86.org/manifest.git -b froyo-x86
変更後
$ repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git -b froyo-x86
$ repo sync

ソースコードの修正

(注):VMware に含まれているソースコードは修正済みです。
再度もしくは新規にfroyo-x86 ソースコードを取得した場合既に修正が入っている可能性があります。

  • frameworks/base/opengl/tests/gl_jni/jni/gl_code.cpp
    ビルドの際 GL tests でエラーがでた場合、以下の箇所を確認してください。
extern "C" {
    JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_init(JNIEnv * env,jobject obj,  jint width, jint height);
   JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_step(JNIEnv * env,jobject obj);
   JNIEXPORT void JNICALL  Java_com_android_gljni_GLJNILib_changeBackground(JNIEnv * env, jobject obj);
- };
+ }

generic_x86 ビルド

android-x86.org の froyo-x86 をTARGET_PRODUCT=generic_x86
TARGET_ARCH_VARIANT=x86-atom でビルドしています。

$ cd ~/android-x86
$ make -j2 usb_img TARGET_PRODUCT=generic_x86 TARGET_ARCH_VARIANT=x86-atom 
2>&1 | tee make2010xxxx_x.log

注:build target については後述の 『build target について』 参考をご覧ください。

イメージの配置

前述の『ビルド済みイメージのCFインストール』を参照してください。
out/target/product/generic_x86/usb_boot/ 以下に各imgファイルが作成されています。

キーバインド

ボタンのそれぞれの割り当ては以下のようになっています。

  • キーボード
    Android                keyboard
    Back			ESCキー
    Menu			メニューキー
    Home			Homeキー
    ENDCALL 		Endキー(長押し)
    コンソール		(Alt + F1)
    コンソールからHOMEへ	(Alt +F7) 
  • マウス
    Android    keyboard
     BACK    <- 右クリック
     Menu    <- スクロールボタン
     決定    <- 左クリック

制限事項

GMA500 Graphic Driver

今回はGMA500 Graphic Driver (EMGD)が使用できなかったこと、コミュニティベースの
poulsbo driverも動作しなかったことからGraphicにはVESA を使用しています。EMGD に
ついては MeeGo IVI (In-Vehicle Infotainment)に説明があります。

Q:Where is the graphics driver? 
A:The hardware accelerated graphics driver (Intel EMGD) is a closed source 
software component that requires a EULA (End User Licensing Agreement). Intel 
EMGD is currently under development. Pre-release versions of the Intel EMGD 
require a signed NDA. After release, later this year, the driver will be 
posted at edc.intel.com. Once the driver is publicly available (with a EULA), 
this FAQ, and the MeeGo IVI release notes, will be updated with instructions 
describing how and where to acquire the Intel EMGD, as well as how to integrate 
the driver. If you require the pre-release version of this driver, please 
contact your Intel representative.

http://meego.com/devices/in-vehicle/in-vehicle-faq#q7

アプリケーション

  • 日本語での入力ができません。
  • ハングアップする(正常終了しない)アプリリスト
  • カメラ( 未対応、調整が不完全のためsurfaceflinger mediaserverにエラーが頻発します。)
  • Googleの画像検索(地図表示でも稀に起こります。)
  • Global Time (GLのエラーです。)
  • snake on a phone (起動できません。)
  • Speech Recorder (録画開始とともに異常終了します。)
  • LiveWallPaper (GL のエラーです。)
  • ギャラリー(ハングアップまでには時間がかかりますが、画像の展開ができず、さらに画像が閲覧できない状態です)
  • HOMEアプリが落ちることがまれにあります、その後HOMEアプリ復帰後に背景が黒一色になることがあります。

ファイル配置 (Experimental)の追加制限事項

  • イメージファイルでの起動に比べてHOMEアプリの急なハングアップが増えています。
  • Musicアプリ、Movieアプリ が起動できない、または再生ができない。
    一度再生を開始するとLowMemoryKiller が起こるまでハングアップを繰り返します。

Android デバッグ ブリッジについて

Android デバッグ ブリッジ(adb)について記述します。 Android開発スターターキット
ではUSB接続のadbデバッグは行えません。kernelにUSBガジェットドライバを含めておらず、
デバイスとしてホストPCに認識されないためです。

(注):ドライバを含める場合USBガジェットドライバの修正が必要になります。
またホストPCのドライバーにも上記に合わせた修正が必要になります。

デバッグにはEthernetを経由して同じサブネット上のホストPCからadb接続でapkを
インストールする方法があります。ただし純粋なJavaかarmのネイティブコードが含まれ
ないアプリケーションに限ります。(x86とarmではバイナリ互換がないため)
adbはandroid-sdk-linux_x86/tools以下に含まれており、beatユーザで
ログインした場合にはすでにPATHが通った状態になっています。

以下はandroid-sdk-linux_x86/toolsディレクトリからのadb接続の例です。
VMWare仮想マシンAndorid開発環境のIPを192.168.0.1xxとします。

export ADBHOST=192.168.0.1xx
./adb kill-server
./adb start-server
./adb devices
開発機が表示されていれば、deviceのリストに表示され接続可能です。
./adb shell

その他のadb オプションは adb --helpで参照して下さい。

build target について

froyo-x86には以下のtargetがあります。

  • generic_x86: 一般的なx86 PC/notebook
  • eeepc: ASUS EeePC系専用
  • s5: Villiv S5用
  • vm: Virtual Machine用 (virtual box, qemu, vmware)
    これらのtargetでのビルドコマンドは以下のようになります。
$ make usb_img TARGET_PRODUCT={target_name}

(*)usb_imgはusb用のイメージになります、この部分をiso_imgに変更すると
liveCD用のイメージになります。
更にfroyo-x86にはx86-atom用も追加されたました。

x86-atom: SSE2,SSE3にbionicを最適化しAtom 用にdalvikのバイトコード高速化した
ものです、target_productとしてはgeneric_x86になります。このtargetでの
ビルドコマンドは以下のようになります。上述のgeneric_x86ビルドでしようした コマンドと同じものです。

$ make usb_img TARGET_ARCH_VARIANT=x86-atom

x86-atom 用の設定ファイルは以下の場所にあります。

$ vi build/core/combo/TARGET_linux-x86.mk 
...略...
ifeq ($(TARGET_ARCH_VARIANT),x86-atom)
    # Enable recent IA friendly memory routines (such as for Atom)
    # These will not work on the earlier x86 machines
    TARGET_GLOBAL_CFLAGS += -mtune=i686 -DUSE_SSSE3 -DUSE_SSE2
endif
...略...

pico821ではgeneric_x86 の設定を上書きしています。ビルドの際は 上記の
makeコマンドでx86-atomを指定すると設定が有効になるようになっています。

PICO821向けビルド設定

villiv s5 を参考に作成したビルド設定を android-s5/device/axiomtek/pico821 に
配置しています。build/envsetup.sh で device/*/*/vendorsetup.sh を読み込み PICO821 ビルド設定を
反映します。poulsbo driver を含んだビルドにしていますが DVI では正しく動作しないためVESAで
動作確認をしています。以下に主な設定ファイルの概略を記載します。

pico821_defconfig : pico821用 kernel 設定ファイルです。
BordConfig.mk : 前述の generic_x86の設定の読み込みとデバイスの設定ファイルです。
init.pico821.rc : Android 起動時に読み込み設定を追加するファイルです。

更新記録

2010/11/05 labs 記載(マニュアル未記入のものは赤字で記載)


BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2010-11-19 (金) 21:31:48 (2866d)