31.Jan.2011 / OESF Progress Conference Androidによる 組 込 みシステム 構 築 Embedded System development using Android 組 込 み 機 器 にAndroidを 乗 せるために を 考 えるWG SystemCore Working Group Coordinator 株 式 会 社 アットマークテクノ 実 吉 智 裕 Atmark Techno, Inc. / Tomohiro Saneyoshi
Androidとは? Googleが 中 心 となって 開 発 した 携 帯 電 話 (スマートフォン) 向 け OSのベースにはLinuxを 採 用 した ソフトウェア プラットフォーム 各 キャリアのAndroid 端 末 オープンソースで 開 発 提 供 携 帯 電 話 以 外 の 組 込 み 機 器 に 適 用 できれば - 2 -
すでにスマートフォンだけではなく タブレット カーナビ PND デジタルフォトフレーム 電 子 書 籍 リーダー 多 くの 組 込 み 機 器 に 搭 載! 3
組 込 み 機 器 にAndroidを 使 えれば 開 発 言 語 にJavaが 使 える!! 最 近 C 言 語 プログラマーが 少 ない!? 組 込 みシステムの 中 身 を 理 解 できる 人 が 少 ない!? 素 敵 な 開 発 環 境 が( 無 償 で) 使 える!! Eclipseをベースとした 開 発 環 境 組 込 み 業 界 の 素 敵 な 開 発 環 境 は 少 ない 高 い 標 準 的 なGUIを 提 供 できる!! PC 業 界 のWindowsと 同 じようなポジションに 組 込 み 業 界 には 素 敵 なGUIのスタンダードが 無 い オープンソースで( 多 くが)Apache2.0ライセンス 多 くの 組 込 み 機 器 ソフトウェアの 生 産 性 が 向 上 - 4 -
Android 向 けの 組 込 み 機 器 コンシューマ 系 カーナビ PND デジタルサイネージ デジタルフォトフレーム STB 携 帯 型 メディアプレーヤ カラオケリモコン 電 子 書 籍 業 務 系 受 付 システム POS 端 末 IP 電 話 端 末 RFID 系 入 退 室 管 理 端 末 ポイントカード 端 末 券 売 機 系 切 符 券 売 機 食 券 販 売 機 駐 車 場 精 算 機 産 業 機 器 計 測 器 制 御 装 置 工 作 機 械 などの 操 作 パネル Androidを 搭 載 することでメリットのある 機 器 は 多 く 存 在 5
まずはAndroidの 構 造 を 復 習 Applications Home Contacts Phone Browser Application Framework Package Manager Activity Manager Telephony Manager Window Manager Resource Manager Contact Manager Location Manager View System Notification Manager Libraries Suface Manager Media Framework SQLite OpenGLES FreeType WebKit SGL SSL libc Android Runtime Core Libraries Dalvik Virtual Machine Linux Kernel 2.6 Hardware 6
通 常 のAndroidの 構 造 と 問 題 点 携 帯 電 話 向 け 携 帯 電 話 向 け 携 帯 電 話 向 け Application Appilcation Application Framework Linux Kernel 2.6 Hardware Application Android Runtime Core Dalvik VM 全 体 のプログラムサイズが 大 きい(Ver.2.0:73MB) Android SDK が 提 供 する 開 発 環 境 携 帯 電 話 を 想 定 しているので 開 発 環 境 の 提 供 が 不 要 Android SDKでは Androidアプリケーション のみ 開 発 様 々なアプリケーション( 機 能 )を 管 理 する 仕 組 みが 無 い オープンソースでは 提 供 されてない 機 能 がある Androidは 携 帯 電 話 向 け を 実 現 するための 集 大 成 - 7 -
問 題 (1) 全 体 のコードサイズが 大 きすぎる ver.2.0のdefault build image で73MByte ver.1.6のdefault build image で53MByte NORフラッシュの 選 択 肢 は512Mbit(64MB)が 上 限 入 手 不 可 ではないが bit 単 価 がNANDよりも 大 幅 高 NANDフラッシュ 等 のストレージが 必 須 信 頼 性 を 必 要 としている 機 器 ( 車 載 等 )では NANDフラッシュは 好 まれていない NANDフラッシュは 単 価 や 調 達 が 不 安 定 で 少 量 機 器 や 長 期 供 給 機 器 向 けではない 携 帯 電 話 より 小 規 模 な 装 置 もターゲットにしたい 8
問 題 (2) Android SDKでは プラットフォーム 部 分 に 触 れない Android SDKでは Dalvik 上 のアプリケーション のみ 開 発 できる 現 状 でも manifestファイルを 編 集 する ことで 可 能 だが 構 造 を 深 く 理 解 できる 人 にしか 使 えない プラットフォームに 関 するカスタマイズをしたい 9
問 題 (3) 様 々なアプリケーション(パッケージ) を 管 理 するためのGUIが 無 い 余 計 な 機 能 が 入 っている 現 在 の 携 帯 電 話 は 機 能 が 盛 りだくさん 必 要 な 機 能 が 入 っていない 組 込 み 機 器 に 必 要 な 機 能 は 千 差 万 別 携 帯 電 話 の 機 能 だけでは 全 てをカバーできない アプリケーションを 登 録 再 利 用 する 仕 組 みがない パッケージを 管 理 する 機 能 が 欲 しい 10
問 題 (4)オープンソース 版 では 提 供 されてない 機 能 がある OHAに 加 盟 しないと Android Marketに 対 応 した 端 末 を 11
Androidプラットフォームの 全 体 像 - 12 - ver.1.6のプログラムサイズを 視 覚 化 (53MByte)
各 ソフトウェアの 占 める 割 合 い(1) Android Application App. framework 全 体 の4 割 を 占 める font Linux system 13
各 ソフトウェアの 占 める 割 合 い(2) Webkit OpenWnn OpenCore Webkit:Browser OpenCore:Multimedia Engine OpenWnn: 日 本 語 入 力 14
これらの 問 題 を 解 決 するために OESF SystemCore-WGで 開 発 軽 量 Light Weight Android(LWA) 様 々な 組 込 み 機 器 に 搭 載 するため 小 型 軽 量 化 Androidとして 動 作 するための 最 低 限 の 機 能 に 削 減 開 発 環 境 OESF Platform Builder(OPB) 必 要 な 機 能 を 簡 単 に 選 択 するだけ 追 加 削 除 標 準 的 なAndroidの 開 発 環 境 (Eclipse)をベースに 拡 張 - 15 -
OPBとLWAの 概 念 図 App. App. 通 常 のAndroid App. App. Framework Android Runtime Core Dalvik VM App. Android Application Application Framework Linux Kernel 2.6 Hardware Linux Application App. App. ここだけ を 対 象 そのまま App. App. Framework Android Runtime Core Dalvik VM Linux Kernel 2.6 Hardware パッケージを OPBで 選 択 Light-Weight Android 16
Light Weight Androidは ver.2.0(ver.2.2)をベースに 軽 量 構 成 EM2(EM3)のユーザランドのベースに 採 用 標 準 構 成 のイメージサイズ (system.img ) ver.1.6: 53MByte ver.2.0: 73MByte Webkit OpenCore OpenWnn 等 の 取 り 外 し 期 待 できること 部 品 の 低 コスト 化 起 動 の 高 速 化 安 全 性 安 定 性 の 向 上 ver.2.0:30mbyte 程 度 17
パッケージの 種 類 framework webkit libstagefright framework opencore framework text to Speech framework text to Speech Service framework Sound Recognition framework Face Detector framework Sounds Data webkit opencore Sound recognition Text to Speech Face Recognition tcpdump Vorbis OpenWnn PinyinIME ContactsProvider CalendarProvider DownloadProvider telephonyprovider AlarmClock Browser Calculator Calendar Camera Contacts Email GlobalSearch GoogleSearch HTMLViewer IM Launcher Mms Music PackageInstaller Phone Provision Settings SoundRecorder Stk VoiceDialer Development SpareParts Term ApiDemos BrowserPlugin 複 数 のカテゴリが 混 在 Android Application Application Framework Linux Application 18
OESF Platform Builder(OPB)の 画 面 Android SDKでも 使 われているEclipse OPB Plug-in - 19 -
開 発 の 流 れ 必 要 なパッケージを 選 択 依 存 関 係 のあるパッケージ 選 択 を 自 動 解 決 NEW(EM3) 20
パッケージを 管 理 する カタログ テンプレートを 用 意 Light-Weight Android Catalog App. App. Framework Android Runtime Core Dalvik VM Linux Kernel 2.6 Hardware Package Target Template Target Design 21
選 択 されたパッケージから 専 用 SDKをbuild Application Appilcation Application Application Framework Framework Linux Kernel 2.6 Hardware Application Android Runtime Core Dalvik VM Default Android SDK Customized Android SDK OPBで 選 択 したパッケージのフレームワークのみを 使 用 できるSDKが 自 動 的 にビルド 22
Light-Weight Androidを 起 動 すると Launcherが 起 動 する (ほとんど) 何 もメニューには 出 てこない 23
Embedded Master をベースに 開 発 ユーザカタログの 拡 張 Opensource Android Light-Weight Android NEW(EM3) Catalog Embedded Master A-WG B-WG C-WG App. App. Framework Android Runtime Core Dalvik VM Linux Kernel 2.6 Hardware Package OESF Marketplace SDK 24
Embedded Master の 情 報 EM2.2 EM3 Android Version 2.0.1 2.2 OPB Version 2.0 2.2 NEW ダウンロード 一 般 公 開 中 OESF 会 員 :2011 年 1 月 一 般 公 開 :2011 年 3 月 すぐに 試 したい 方 向 けに EM2.2がインストールされた 開 発 環 境 VMware イメージ(Linux)を 用 意!! http://developer.oesf.biz/ ご 清 聴 ありがとうございました 25
Armadillo-440 開 発 セット CPUボード 本 体 タッチパネルLCD(4.3インチ WQVGA) RS232Cレベル 変 換 ケーブル 開 発 用 DVD-ROM シリアルクロスケーブル ACアダプタ(5V) ヘッドフォン マイク ボタン 3 4.3インチ WQVGA (480 272) タッチパネル 付 - 26 - EM2.2, EM3 対 応 開 発 セット 63,000( 税 込 ) 量 産 ボード: @20,000 円 程 度 (100 台 一 括 購 入 時 ) MicroSD LAN USB 2 電 源 入 力 RS232C 拡 張 コネクタ(GPIO, UART, I2C 他 )