概要
- 日時 / DATE :
- 2010/08/29 14:00 to 17:00
- 定員 / LIMIT :
- 30 人
- 会場 / PLACE :
- かながわ県民活動サポートセンタ会議室1502 (神奈川県横浜市神奈川区鶴屋町2-24-2)
テーマ
|
○自己紹介
記録していなかったため、割愛します。○発表
●@hermit4「PF部的 Androidアーキテクチャ入門」(資料)
- Androidアーキテクチャ図の説明
2008年 Google I/Oの説明から省かれているレイヤがある。
→Hardware Abstraction Layer (HAL)、Linux Kernelの上に位置する
PF部的に着目すべきレイヤである
HALの特徴
+ ハードウェア抽象化レイヤ、Linux Kernelへの依存を吸収している
+ Kernelではなく、Android側で管理できる
+ GPLに縛られない
+ ユーザランドで実行される
- Androidソースコードの各レイヤごとの説明
+ Android 2.2のソースコードのディレクトリ説明
+ PFな人な人は、framework/, hardware/, system/, device/を重点的に見るべし
+ Linux KernelはAndroidソースと別管理
+ ソース検索用のベンリツール(envsetup.sh)もあるよ
- BeagleBoard XMでの動作検証はsolaさんに期待
- 次回発表(予定)
アプリからAPI呼び出しでどう伝わるのか、Audioを中心に探ってみる
2008年 Google I/Oの説明から省かれているレイヤがある。
→Hardware Abstraction Layer (HAL)、Linux Kernelの上に位置する
PF部的に着目すべきレイヤである
HALの特徴
+ ハードウェア抽象化レイヤ、Linux Kernelへの依存を吸収している
+ Kernelではなく、Android側で管理できる
+ GPLに縛られない
+ ユーザランドで実行される
- Androidソースコードの各レイヤごとの説明
+ Android 2.2のソースコードのディレクトリ説明
+ PFな人な人は、framework/, hardware/, system/, device/を重点的に見るべし
+ Linux KernelはAndroidソースと別管理
+ ソース検索用のベンリツール(envsetup.sh)もあるよ
- BeagleBoard XMでの動作検証はsolaさんに期待
- 次回発表(予定)
アプリからAPI呼び出しでどう伝わるのか、Audioを中心に探ってみる
●@sabakawa「DB AU1100への移植で判明した注意点」(資料)
- 開発環境
ターゲット:
DB AU1100 (Alchemy semiconductor 現RMI社)が開発したSoC(AU1100@400MHz)評価ボード
移植時のソフト開発環境
+ MIPS用Androidソース
+ Androidソースのビルド用Ubuntu 9.04
+ MIPSソース用のクロスコンパイラ CodeSourcery社のもの
+ 通常MIPSのBootLoaderはYAMONだが、U-BOOTを自前で移植
- 移植で判明した注意点
+ メインメモリは128Mbyteは必要
DB AU1100には64Mbyteしかないので、INITは起動したがその他のアプリは十分に
動作せず。
+ MIPS 400MHzでは重い
Qtopia + Qt/E環境では普通に動いていたターゲットだったが、Androidでは重い
+ 有線通信(Ethernet)を使用するターゲットはカスタマイズ開発が必要
+ INITにハードの初期化処理が入っているので移植時にはこちらもチューニング必要
- 移植過程でつまづいたところ
+ U-BOOTイメージ作成時の起動アドレスの間違いのためKernel起動せず
+ initramfs起動時のコンソールが表示されず
U-BOOTでUART0に割り込みを入れていれてなかったから
- Android対応カーネルを開発するなら
+ Androidの固有ドライバのポーティングが必要
+ PowerManagementをターゲットにあわせて見直しが必要
- 移植の作業時間
2名で日曜日に4~5時間を使い、1ヶ月ほどで移植できた
→もちろん、製品レベルにするにするならもっといろいろやらないといけない
ターゲット:
DB AU1100 (Alchemy semiconductor 現RMI社)が開発したSoC(AU1100@400MHz)評価ボード
移植時のソフト開発環境
+ MIPS用Androidソース
+ Androidソースのビルド用Ubuntu 9.04
+ MIPSソース用のクロスコンパイラ CodeSourcery社のもの
+ 通常MIPSのBootLoaderはYAMONだが、U-BOOTを自前で移植
- 移植で判明した注意点
+ メインメモリは128Mbyteは必要
DB AU1100には64Mbyteしかないので、INITは起動したがその他のアプリは十分に
動作せず。
+ MIPS 400MHzでは重い
Qtopia + Qt/E環境では普通に動いていたターゲットだったが、Androidでは重い
+ 有線通信(Ethernet)を使用するターゲットはカスタマイズ開発が必要
+ INITにハードの初期化処理が入っているので移植時にはこちらもチューニング必要
- 移植過程でつまづいたところ
+ U-BOOTイメージ作成時の起動アドレスの間違いのためKernel起動せず
+ initramfs起動時のコンソールが表示されず
U-BOOTでUART0に割り込みを入れていれてなかったから
- Android対応カーネルを開発するなら
+ Androidの固有ドライバのポーティングが必要
+ PowerManagementをターゲットにあわせて見直しが必要
- 移植の作業時間
2名で日曜日に4~5時間を使い、1ヶ月ほどで移植できた
→もちろん、製品レベルにするにするならもっといろいろやらないといけない
●@l_b_「Eclipseを使ってAndroid Nativeデバッグしてみる」(資料)
- 仕組み(1) Nativeアプリ/ライブラリデバッグ
ターゲットのGDBServerとホスト上のGDBをTCPで接続
ARM用のクロスターゲットデバッガを使う
別プロセスでGDBServerを立ち上げて、ターゲット上のプロセスにアタッチもできる
- 仕組み(2) Javaデバッグ
DalvikのJDWPを使ったTCP経由でデバッグできる
- 手順:EclipseにAndroidのソースを読み込ませてみる
※手順などは、l_b_さんの非常に詳しい資料を参照ください_o_
+ 本方式のメリット
C/C++のソースインデックスが作られるのでソースが読みやすくなる
全体ビルドをEclipseのみで行える
- 手順:Nativeデバッグ
※手順などは、l_b_さんの非常に詳しい資料を参照ください
+ JNIを使ったNativeライブラリ側デバッグは、また今度
- EclipseでAndroid Javaフレームワークをデバッグしてみる(おまけ)
※手順などは、やっぱりl_b_さんの非常に詳しい資料を参照ください_o_
ターゲットのGDBServerとホスト上のGDBをTCPで接続
ARM用のクロスターゲットデバッガを使う
別プロセスでGDBServerを立ち上げて、ターゲット上のプロセスにアタッチもできる
- 仕組み(2) Javaデバッグ
DalvikのJDWPを使ったTCP経由でデバッグできる
- 手順:EclipseにAndroidのソースを読み込ませてみる
※手順などは、l_b_さんの非常に詳しい資料を参照ください_o_
+ 本方式のメリット
C/C++のソースインデックスが作られるのでソースが読みやすくなる
全体ビルドをEclipseのみで行える
- 手順:Nativeデバッグ
※手順などは、l_b_さんの非常に詳しい資料を参照ください
+ JNIを使ったNativeライブラリ側デバッグは、また今度
- EclipseでAndroid Javaフレームワークをデバッグしてみる(おまけ)
※手順などは、やっぱりl_b_さんの非常に詳しい資料を参照ください_o_
○その他
- 次回は2名の発表あり
- 月イチくらいの開催にしたい
- 発表のお題募集
- 発表資料を公開するのに、横浜支部PF部用のGoogle Appsを使えないか?
- 月イチくらいの開催にしたい
- 発表のお題募集
- 発表資料を公開するのに、横浜支部PF部用のGoogle Appsを使えないか?