Mais conteúdo relacionado
Semelhante a Tizen 2.0 alpha でサポートされなかった native api (20)
Mais de Naruto TAKAHASHI (18)
Tizen 2.0 alpha でサポートされなかった native api
- 2. Naruto TAKAHASHI(@TNaruto)
◦ tnaruto@gmail.com
◦ http://eflmemo.hatenablog.com/
Software Engineer
Interesting keywords
◦ EFL(Enlightenment Foundation Libraries)
◦ Tizen
◦ NPAPI
◦ NFC
◦ HTML5
◦ Firefox OS
- 3. Tizen Native App を実装する方法
◦ 生のグラフィックライブラリ EFL を使用する。
◦ ラッパーライブラリ DPL を使用する。
Tizen SDK でサポートのはどちらかわからない。
SDK でサポートする Native 用ライブラリが EFL でも
DPL のどちらでも対応できるように予習しましょう。
- 4. Tizen Native App のおさらい
Tizen Native App を作成する二つのアプローチ
◦ EFL with Tizen Application Framework
◦ DPL(Design Patterns Library)
- 6. C/C++ で実装するアプリケーション
html5 でできないことを補える
◦ 高速動作し放題
◦ デバイス触り放題
◦ アプリの状態管理し放題
◦ 他プロセスと通信し放題
◦ タスクバーにアイコン表示し放題
Native App ってすごいよね。
- 7. 「HTML5に賭けたのは失敗。今は時期が悪い」
◦ Html5 急先鋒 Facebook の発言
◦ http://www.publickey1.jp/blog/12/facebookhtml5.html
クラッシュの原因がわらない
◦ ヒープサイズ
◦ オブジェクトカウント
◦ ガベージコレクションサイクル
◦ GPUバッファサイズ
◦ リソース上限
性能が出ない
GPUがブラックボックス
Native App ならその要求をすべて答えられます。
◦ Native App ってすごくなーい?
- 8. 「Native(C/C++ )なら何でもできる。」
◦ 半導体をオペレーションするシステムのための言語
◦ 何でもやれるけど、やるのが難しい。
「html5 はできることが限られている」
◦ ドキュメントをレイアウトするための言語
それに動的処理を追加
◦ 何でもできないけど、得意なことは簡単にできる。
- 9. 要求に応じて使い分ければよいのでは?
◦ Html5 で実現できるものは html5 で
◦ Html5 で実現できないものは無理せず Native で
Native か html5 を選ぶ自由を獲得すべし。
…とは言ってますが、すべてを html5 で成し遂げる
挑戦している B2G を応援しています。
- 10. 実装に関すること
◦ ウィジットの描画の管理 (EFL)
◦ アプリのリソース管理、お作法
ビルドに関すること
◦ プロジェクトのファイル構成
◦ プロジェクトのビルド方法
gbs
obs
- 11. 実装に関すること
◦ ウィジットの描画の管理 (EFL)
◦ アプリのリソース管理、お作法
ビルドに関すること こっちは Tizen SDK がサポートする
◦ プロジェクトのファイル構成 からスキップ
◦ プロジェクトのビルド方法
gbs
obs
- 13. C/C++ で開発
エントリーポイントは main() からはじまるよ
UX は elementary(EFL) を使用
メインループ、ライフサイクルは Tizen Application
Framework を使用
プリインストールされている Native App
◦ EFL + Tizen Application Framework で作成
- 14. AUL(Application Utility Library)
◦ App の launch(Web App <-> Native App 双方向)
App-Core
◦ App のライフサイクルの管理、システムイベントキャッチ
App-Service
◦ アプリケーションのサービス設定
- 15. appcore に渡すコールバック関数一覧
オペレーション 説明
create メインループに入る前に実行される。
(ウィンドウの生成などの初期化処理を行う。)
terminate メインループの後に実行される。
(アプリの終了処理などを行う。)
pause ウィンドウがバックグラウンドに移動したときに実行される。
(停止処理や、バックグラウンド処理の開始などを行う)
resume ウインドウがフォアグランドに移動したときに実行される。
(復帰処理、バックグラウンド処理の停止など行う)
reset 再実行時に実行される。
- 16. システムの変更があったときのイベント
appcore_set_event_callback() で登録する。
システムイベント
◦ LOWメモリー
◦ LOWバッテリー
◦ 言語変更
◦ 地域変更
- 17. デバイスの回転を検知したときのイベント
appcore_set_rotation_cb() で登録する。
イベントの種類
◦ landscape
◦ portrait
◦ reverse landscape
◦ reverse portrait
- 19. Design Patterns Library
Samsung Linux Platform から作られているグラ
フィックライブラリ
ラッパー対象ライブラリ
◦ EFL
◦ GTK
◦ Qt もいける…?
C++ で使うことが前提
- 20. もともとは SLP の三つのグラフィックライブラリを使え
るようにするためのラッパーライブラリのようです。
- GTK
- EFL
- STK(Samsung Tool Kit?)
- 21. Tizen Web App のランタイム
◦ WebView + Tizen Device API
WRT は DPL を使用している。
Tizen Device API
◦ DPL + JavaScriptCore で実装してる
◦ 拡張 API を作るために必要
- 22. https://review.tizen.org/git/?p=framework/w
eb/wrt-commons.git;a=summary
snapshot を押すと落とせます。
- 23. ソースの中に pdf ファイルがあります。
wrt-
common/doc/dpl_programming_guide.pdf
- 25. メソッド定義 目的
OnCreate() アプリケーション初期化
OnStart() アプリケーションのスタート
OnStop() アプリケーションがバックに移動
OnResume() アプリケーションがフロントエンドに移動
OnRelaunch() “launch service “ で呼ばれる
OnTerminate() アプリケーション終了時
OnLowMemory() メモリが少ない時
OnLowBattery() バッテリーが少ない時
OnLaunguageChanged() 言語設定変更時
- 26. 基本は EFL + Tizen Application Framework に
似ている
Android App の作成に近いよね。
- 28. HTML5 は Native はどちらを使う?
◦ 要求に応じたソリューションを!
Tizen SDK でサポートするライブラリはどっち?
◦ どちらか正直わからない。
予想では…
◦ Tizen SDK では DPL をサポート
◦ EFL + Tizen App FW でも組めるけど、公にしないのでは?
ともあれ使う側の人は両方使えるのが理想。
そろそろ EFL アプリを作らないと怒られそうなのでいい加減次
回から本気出すよ(`・ω・´)