Meego Application開発 2010/12/09

Meego Application開発 2010/12/09

MeeGo Application開発 2010/12/09 Youngsik Yoon Software Application Engineer Software and Services Group *Other names and brands may be claimed as the property of others Software and Services Group 1 Agenda • サンプルApplication • MeeGo SDK • MeeGo Touch Framework (MTF) • Connman • D-Bus • サンプルApplicationの実装 • まとめ • Q/A • 参照 *Other names and brands may be claimed as the property of others Software and Services Group 2 サンプルApplication *Other names and brands may be claimed as the property of others Software and Services Group 3 サンプルApplication • MeeGoのConnection Manager(Connman)からデバイスの接続状態を 取得し表示する。 • Connmanを使ってApplication上で接続のOn/Offを行う *Other names and brands may be claimed as the property of others Software and Services Group 4 MeeGo Architecture *Other names and brands may be claimed as the property of others Software and Services Group 5 MeeGo SDK *Other names and brands may be claimed as the property of others Software and Services Group 6 MeeGo SDK • MeeGo SDK 1.1 Beta (2010年11月9日リリース) - Linux版(Ubuntu 9.10, 10.04, Fedora 12, 13) - QtCreator 2.0.1 (qt-tools 4.7.0) & MeeGo Toolchains - MeeGo Application Develop and Debug Environment (MADDE) 0.7.53 - qemu-glとQEMU用OS images core (armv7l, ia32) handset (armv7l, ia32) netbook (ia32) • Windows版 - テスト版を試すことができる http://wiki.meego.com/SDK/MeeGo_SDK_for_Windows *Other names and brands may be claimed as the property of others Software and Services Group 7 二つのオプション • MeeGo chroot + Xephyr - ホストマシン上で直接実行(シミュレーター) - グラフィックス・ハードウェア加速があればもっとよい - chrootした環境からQT Creatorを使う - 速度が速い • MeeGo Toolchain + QEMU - QEMU仮想マシーンを使用(エミュレーター) - バーチャライゼーション(VT)とグラフィックス・ハードウェア加速が必要 - QT Creatorとの統合 - 柔軟性が高い(必要ならターミナルからsshで接続し操作) *Other names and brands may be claimed as the property of others Software and Services Group 8 MeeGo chroot + Xephyr *Other names and brands may be claimed as the property of others Software and Services Group 9 MeeGo Toolchain + QEMU *Other names and brands may be claimed as the property of others Software and Services Group 10 MeeGo chroot + Xephyrのセットアップ - 1 * 具体的な手順は以下のwikiを参照 http://wiki.meego.com/MeeGo_SDK_with_Xephyr http://wiki.meego.com/Building_a_MeeGo_chroot_on_Linux 1. chrootのdownload wget http://download3.meego.com/meego-sdk-chroot 2. Handset OS image(Aava)のdownload http://meego.com/downloads/releases/1.1/meego-v1.1-handset 3. kpartxを使ってOS imageを作業Directoryに展開する sudo kpartx -a -v ./meego-handset-ia32-aava-mtf-1.1-sda.bin sudo mount /dev/mapper/loop0p1 ./tmp-mnt -o loop,ro sudo cp –a ./tmp-mnt ./handset-chroot *Other names and brands may be claimed as the property of others Software and Services Group 11 MeeGo chroot + Xephyrのセットアップ - 2 4. 展開した作業directoryにchroot sudo meego-sdk-chroot ./handset-chroot/ 5. chrootの中で必要なPackageをインストール zypper addrepo http://download.meego.com/live/devel:/tools:/sdk:/ target/MeeGo_1.1/ meego-sdk zypper install meego-simulator-launcher-handset 6. Xephyr上でMeeGo handsetを実行 startmeego & *Other names and brands may be claimed as the property of others Software and Services Group 12 MeeGo Touch Framework (MTF) *Other names and brands may be claimed as the property of others Software and Services Group 13 MeeGo Touch Framework (MTF) - 1 • Platform API (MeeGo APIではない) • QGraphicsViewをベースとしたUI Framework • QGraphicsViewをベースとしたWidgetを提供 • タッチ操作に最適化されたUI Framework *Other names and brands may be claimed as the property of others Software and Services Group 14 MeeGo Touch Framework (MTF) - 2 • テーマー機能 • CSSを使ってソースコードをいじることなくLook&Feelをカスタマイズ • 自動Screenローテーション *Other names and brands may be claimed as the property of others Software and Services Group 15 libmeegotouch-qtstyle • QtStyle plugin • QT WidgetをMeeGo Touch FrameworkのWidget Styleに 見せてくれる *Other names and brands may be claimed as the property of others Software and Services Group 16 QT Quick – QML • JavaScriptベースのUIプログラミング言語、UI を宣言的に記述する • Web / Graphics デザイナーからも使いやすい • QT Quick ComponentsでMeeGo Handset Look&Feelの Widgetを提供 *Other names and brands may be claimed as the property of others Software and Services Group 17 Connman *Other names and brands may be claimed as the property of others Software and Services Group 18 Connman (Connection Manager) • 複雑性の回避 (HAL/DeviceKitを使わない) • UIに依存しない構造 (複数のUIが同時実行可能) • Plug-in拡張 • 最小限の依存関係 - C library - GLib core (mainloop, string処理など) - D-Bus低レベルlibrary (GobjectベースのD-Bus bindingではない、 libgdbus helper libraryだけをコピーして使用) - udev library (optional) • Embeddedでの使用を考慮 • Ubuntuから試すには - $ apt-get install connman connman-gnome *Other names and brands may be claimed as the property of others Software and Services Group 19 User Interface • UIはDBusを使ってConnmanのcore daemonと通信 • すべてのステータス変更はDBus signalを通じて完全非同期でUI側に 通知される • 複数のUIを同時実行 *Other names and brands may be claimed as the property of others Software and Services Group 20 D-Bus *Other names and brands may be claimed as the property of others Software and Services Group 21 D-Bus - 1 • Freedesktop.orgのプロジェクト • IPC(Inter-Process Communications)システムの一種 - Desktop Application間のコミュニケーション - DesktopセッションとOS&System daemon間のコミュニケーション • Server – Client モデル • Service(Server側)の自動実行メカニズムを提供 • いろんなラッパーライブラリ - Qt, Glib, Python, Java, C# *Other names and brands may be claimed as the property of others Software and Services Group 22 D-Bus - 2 • Message Bus - Session Bus - System Bus • Message Type - Method call - Signal - Reply - Error • Messageの宛て先 - Service - Object Path - Interface - Method / Signal *Other names and brands may be claimed as the property of others Software and Services Group 23 D-Busツール • dbus-send - $ dbus-send --system --print-reply --dest=org.ofono /modem1 org.ofono.Phonebook.Import • dbus-monitor - $ dbus-monitor --system • d-feet • qdbusviewer *Other names and brands may be claimed as the property of others Software and Services Group 24 サンプルApplicationの実装 *Other names and brands may be claimed as the property of others Software and Services Group 25 Window表示 *Other names and brands may be claimed as the property of others Software and Services Group 26 Layout作成とWidget追加 *Other names and brands may be claimed as the property of others Software and Services Group 27 Screenローテーション • MeeGo Touch Frameworkで作られたApplicationはDefaultで Screenローテーションに対応している • Screenローテーションに合わせて 独自のLayoutを指定することも可能 *Other names and brands may be claimed as the property of others Software and Services Group 28 ApplicationからDBus経由でConnmanのAPI を呼ぶ • QTでDBusを使う三つの方法 - QDBusMessageを使う: 一回のMessageのやり取り - QDBusInterfaceを使う: 提供されるMethodを複雑に操作 - QtDBus XML compiler(qdbusxml2cpp)を使う: もっとも簡単な方法、 Service側APIのXML定義ファイルをベースにC++Proxyクラスを生成 • 今回使うConnmanのAPI - GetProperties: デバイスの接続状態を含めすべての属性を取得 - EnableTechnology: 特定接続をOn - DisableTechnology: 特定接続をOff - PropertyChanged:デバイスの接続状態などの属性が変更されると このSignalが通知される *Other names and brands may be claimed as the property of others Software and Services Group 29 qdbusxml2cppでProxyクラスを生成 • 通常Application側はService側の org.freedesktop.DBus.Introspectableインタフェースの Introspectメッソドを呼べばXML定義を取得できるが、Connmanでは なかったので使うAPIをベースに直接XMLを作成する • 作ったXMLをベースにProxyクラスを生成 - $ qdbusxml2cpp -p manager_interface connman-manager.xml (manager_interface.hとmanager_interface.cppが生成される) *Other names and brands may be claimed as the property of others Software and Services Group 30 Proxyクラスを利用してデバイスの接続状態取得 - 1 *Other names and brands may be claimed as the property of others Software and Services Group 31 Proxyクラスを利用してデバイスの接続状態取得 - 2 *Other names and brands may be claimed as the property of others Software and Services Group 32 実行 – 状態取得&表示 *Other names and brands may be claimed as the property of others Software and Services Group 33 Proxyクラスを利用して接続をOn/Off *Other names and brands may be claimed as the property of others Software and Services Group 34 実行 – 接続Off *Other names and brands may be claimed as the property of others Software and Services Group 35 実行 – 接続On *Other names and brands may be claimed as the property of others Software and Services Group 36 まとめ • MeeGo SDKをDownloadしMeeGo Handset・Netbookの開発 環境を構築してみましょう。 • MeeGo SDKのWindows版も近々リリースされる予定であり、その開 発環境は益々充実してきています。 *Other names and brands may be claimed as the property of others Software and Services Group 37 Q&A *Other names and brands may be claimed as the property of others Software and Services Group 38 参照 • MeeGo − http://meego.com (MeeGo本家サイト) − http://meego.jp (日本MeeGoサイト) − http://meego-users.jp (日本MeeGoユーザー会サイト) • MeeGo SDK − http://meego.com/downloads/releases/1.1/meego-v1.1-sdk − http://wiki.meego.com/Getting_started_with_the_MeeGo_SDK • MeeGo ソース − http://meego.gitorious.org/ • Connman − http://connman.net/ • D-Bus − http://dbus.freedesktop.org/ *Other names and brands may be claimed as the property of others Software and Services Group 39 Back up *Other names and brands may be claimed as the property of others Software and Services Group 40.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    40 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us