Successfully reported this slideshow.
基礎から学ぶ組み込みAndroid    でむやん
自己紹介• 裏日本からの参加• 日本Androidの会 金沢支部 • 組み込み、x86に強い支部• twitter : @checkela
金沢をご存知ない方のために
•   石川県にあります    •   金沢県ではありません•   兼六園•   金沢城•   21世紀美術館•   能登かわいいよ能登•   花さくいろは    •   ただいま放送中
組み込みAndroid?• Androidってauが販売しているあれで しょ?
Androidの定義について確認
What is Android?Android is a software stack formobile devices that includes anoperating system, middlewareand key applicat...
Androidの特徴●    GUIなOS環境がワンセットに    ●        LinuxKernel,Framework、GUI、アプリ●    オープンソース●    ライセンスフリー
組み込みAndroid• Androidのメリットがフルに活かせる分 野• 自由なカスタマイズ• 開発環境も無償でゲット• ライセンス料無し• ソースコードはスマートフォンとは同一
例えば?• 家電機器にAndroidを組み込む • 冷蔵庫,テレビ,BluRayレコーダ• 産業用機器にAndroidを組み込む • 監視装置など                といった事が可能
最近だと• VIERA tablet • CES 2011にて発表 • サブコントーラ • コンテンツ購入
オープンソース• ソースを自由に入手可能 • 自由に利用、改変が可能• 個人がAndroid搭載デバイスを制作する ことも可能!
Q.開発機材ってお高いのでしょう?
A.Android端末1台諦めればOK!
利用する機材• BeagleBoard • 1台15,000円ほど• PandaBoard • 1台18,000円ほど。 • Cortex-A9 DualCore
あとは• SDカード(2GB以上)• USB-Hub• DIV接続ディスプレイ• Keyboard,Mouse• usb-serialケーブル • などなど           どの家庭にもあるものばかり
さまざまな可能性●    ボードが小さい、省電力    •   消費電力少ない = 搭載デバイスを問わず    •   BeagleBoardは5V(USBで給電)で動作    •   制御できるデバイスが豊富•   Root取り放題 :-)
組み込みAndroid開発   の初歩
レイヤー
アプリ開発者向け
new組み込み開発者向け
アプリ開発の話題の中心
組み込み開発の話題の中心
という事で• LinuxKernel• HAL(Hardware Abstraction Layer)の話題を中心に
Linux Kernel
LinuxKernel• Androidの中心、心臓部• モノリシックカーネル • ハード制御、ドライバ • すべて一体化 • 毎回ビルドする必要が
AndroidのLinuxKernel• ARM向けLinuxKernelがベース• Android向けの機能拡張が追加 • コードが1つのフォルダに集約 • マージしやすい • Kernel.orgには無い...
機能拡張•   Binder - プロセス間通信、IPCの代わり•   ashmem - android shared memory•   pmem - process memory allocator•   logger•   wakeloc...
ビルド、カスタマイズ•   ジグソーパズル的に設定    •   利用するドライバを取捨選択して組み込み    •   make menuconfig ; make uImage•   ドライバ開発、カーネルビルド手順はPC版と同じ    • ...
HAL
HAL• Hardware Abstraction Layer • ハードウェアを抽象化するレイヤー• ハード依存を上位レイヤーにさせない
抽象化?                             Application Framework                              Application Framework•   ApplicationFr...
あとは• Application Framework  • カメラ対応するとき  •  オレオレSDK作成時に変更•  Libraries•  Dalvik  •  ARM,x86以外のときは手を入れる必要ありそう
まとめ• LinuxKernelの知識は必須科目 • プラスαは意外と少ない • デバイス対応はLinuxそのもの• LinuxKernelとHALを何とかすると、他の デバイスでもAndroidは動く
• 組み込みAndroidだったら、いろんなデ バイスがAndroidで制御できるよ!• 目の前のモノが制御できると楽しい よ!
以上、おしまい
Upcoming SlideShare
Loading in …5
×

基礎から学ぶ組み込みAndroid

6,602 views

Published on

名古屋GeekBar(June-3,2011)発表分

Published in: Technology
  • Be the first to comment

基礎から学ぶ組み込みAndroid

  1. 1. 基礎から学ぶ組み込みAndroid でむやん
  2. 2. 自己紹介• 裏日本からの参加• 日本Androidの会 金沢支部 • 組み込み、x86に強い支部• twitter : @checkela
  3. 3. 金沢をご存知ない方のために
  4. 4. • 石川県にあります • 金沢県ではありません• 兼六園• 金沢城• 21世紀美術館• 能登かわいいよ能登• 花さくいろは • ただいま放送中
  5. 5. 組み込みAndroid?• Androidってauが販売しているあれで しょ?
  6. 6. Androidの定義について確認
  7. 7. What is Android?Android is a software stack formobile devices that includes anoperating system, middlewareand key applications. http://developer.android.com/guide/basics/what-is-android.html
  8. 8. Androidの特徴● GUIなOS環境がワンセットに ● LinuxKernel,Framework、GUI、アプリ● オープンソース● ライセンスフリー
  9. 9. 組み込みAndroid• Androidのメリットがフルに活かせる分 野• 自由なカスタマイズ• 開発環境も無償でゲット• ライセンス料無し• ソースコードはスマートフォンとは同一
  10. 10. 例えば?• 家電機器にAndroidを組み込む • 冷蔵庫,テレビ,BluRayレコーダ• 産業用機器にAndroidを組み込む • 監視装置など といった事が可能
  11. 11. 最近だと• VIERA tablet • CES 2011にて発表 • サブコントーラ • コンテンツ購入
  12. 12. オープンソース• ソースを自由に入手可能 • 自由に利用、改変が可能• 個人がAndroid搭載デバイスを制作する ことも可能!
  13. 13. Q.開発機材ってお高いのでしょう?
  14. 14. A.Android端末1台諦めればOK!
  15. 15. 利用する機材• BeagleBoard • 1台15,000円ほど• PandaBoard • 1台18,000円ほど。 • Cortex-A9 DualCore
  16. 16. あとは• SDカード(2GB以上)• USB-Hub• DIV接続ディスプレイ• Keyboard,Mouse• usb-serialケーブル • などなど どの家庭にもあるものばかり
  17. 17. さまざまな可能性● ボードが小さい、省電力 • 消費電力少ない = 搭載デバイスを問わず • BeagleBoardは5V(USBで給電)で動作 • 制御できるデバイスが豊富• Root取り放題 :-)
  18. 18. 組み込みAndroid開発 の初歩
  19. 19. レイヤー
  20. 20. アプリ開発者向け
  21. 21. new組み込み開発者向け
  22. 22. アプリ開発の話題の中心
  23. 23. 組み込み開発の話題の中心
  24. 24. という事で• LinuxKernel• HAL(Hardware Abstraction Layer)の話題を中心に
  25. 25. Linux Kernel
  26. 26. LinuxKernel• Androidの中心、心臓部• モノリシックカーネル • ハード制御、ドライバ • すべて一体化 • 毎回ビルドする必要が
  27. 27. AndroidのLinuxKernel• ARM向けLinuxKernelがベース• Android向けの機能拡張が追加 • コードが1つのフォルダに集約 • マージしやすい • Kernel.orgには無い...
  28. 28. 機能拡張• Binder - プロセス間通信、IPCの代わり• ashmem - android shared memory• pmem - process memory allocator• logger• wakelocks - power management• oom handling - lowmem notifications• alarm - sleep状態のCPUを起こす• paranoid network security - 独自のnetwork security http://elinux.org/Android_Kernel_Features
  29. 29. ビルド、カスタマイズ• ジグソーパズル的に設定 • 利用するドライバを取捨選択して組み込み • make menuconfig ; make uImage• ドライバ開発、カーネルビルド手順はPC版と同じ • 特にAndroidだからというのは無い • メモリには注意
  30. 30. HAL
  31. 31. HAL• Hardware Abstraction Layer • ハードウェアを抽象化するレイヤー• ハード依存を上位レイヤーにさせない
  32. 32. 抽象化? Application Framework Application Framework• ApplicationFramework は、HALのAPIに対応 API• HALをデバイスから直 接データを取得 HAL HAL ? • 各種センサー、GPS• デバイスに柔軟に対応 A社 A社 B社 B社 C社 C社 デバイス デバイス デバイス デバイス デバイス デバイス
  33. 33. あとは• Application Framework • カメラ対応するとき • オレオレSDK作成時に変更• Libraries• Dalvik • ARM,x86以外のときは手を入れる必要ありそう
  34. 34. まとめ• LinuxKernelの知識は必須科目 • プラスαは意外と少ない • デバイス対応はLinuxそのもの• LinuxKernelとHALを何とかすると、他の デバイスでもAndroidは動く
  35. 35. • 組み込みAndroidだったら、いろんなデ バイスがAndroidで制御できるよ!• 目の前のモノが制御できると楽しい よ!
  36. 36. 以上、おしまい

×