ABC2010Spring B-1 セッションの l_b__ さんによる tsudaり

B-1: セカイカメラの育て方は ustream録画がないので記録に。
0
l.b. @l_b__

Bのセッション、セカイカメラの育て方。#abc2010s

2010-06-26 13:03:05
l.b. @l_b__

セカイカメラとは何か、OpenGLの話、Android内部構造の話、Solarについて。#abc2010s

2010-06-26 13:04:00
l.b. @l_b__

OpenGLとNDKの話。つぶやき文庫の作者じゃないほうの高橋さん。#abc2010s

2010-06-26 13:07:31
l.b. @l_b__

セカイカメラとOpenGL/ESの関係。エアタグ描画はOpenGL/ES。AndroidではJavaから使うのでなかなかフレームレートが上がらない。#abc2010s

2010-06-26 13:10:31
l.b. @l_b__

そこでNDK。高速化したい処理をネイティブで。#abc2010s

2010-06-26 13:11:16
l.b. @l_b__

NDKを使ってもJNIコールのオーバーヘッドがあって必ずしも速くならない。#abc2010s

2010-06-26 13:13:29
l.b. @l_b__

JavaとNativeの狭間、どの処理をどちらで行うかでかなり悩んだ。JavaとNativeの往復回数はできるだけ減らす。#abc2010s

2010-06-26 13:14:54
l.b. @l_b__

java.nio.ByteBufferを使用。エアタグ数xデータサイズのバッファをアロケート。データを詰めたバッファをJNI呼び出し。

2010-06-26 13:18:01
l.b. @l_b__

Native側ではバッファからポインタで取得。#abc2010s

2010-06-26 13:20:21
l.b. @l_b__

1度のJNI呼び出しですべてのエアタグを描画するようにしてJNI呼び出しを軽減。#abc2010s

2010-06-26 13:21:34
l.b. @l_b__

続いてNSK石原さんの話。セカイカメラ開発から見たAndroidアプリケーション開発の現状とAndroid内部構造。#abc2010s

2010-06-26 13:23:55
l.b. @l_b__

Android版セカイカメラの特徴。高速描画が必要。SurfaceViewを使用している。#abc2010s

2010-06-26 13:26:05
l.b. @l_b__

開発で発生した障害。単純ミス、設計ミス、UIが8割程度。これらはフレームワークの理解度によるので解決しやすい。#abc2010s

2010-06-26 13:27:25
l.b. @l_b__

残りはAndroidの問題と機種依存。最後まで苦しめられている。#abc2010s

2010-06-26 13:27:56
l.b. @l_b__

開発終盤に苦しめられた障害の例。SurfaceViewとZ-Orderの問題について。#abc2010s

2010-06-26 13:28:42
l.b. @l_b__

複数のレイヤを使用したい場合、複数のSurfaceViewを重ねて使う。OverLayした描画レイヤを停止して復帰すると、レイヤの順番が変わって上のレイヤが下になって見えなくなる。#abc2010s

2010-06-26 13:30:56
l.b. @l_b__

Z-Orderは今見えているレイヤにのみ割り当てられ、SurfaceFlingerで管理される。#abc2010s

2010-06-26 13:31:40
l.b. @l_b__

Z-Orderはアプリ側で決められない。Activityの単位で管理される。#abc2010s

2010-06-26 13:32:47
l.b. @l_b__

しかしSurfaceViewがActivityに複数ある場合、そう使われる想定が無いので、どのZ-Orderが割り当てられるか分からない。#abc2010s

2010-06-26 13:33:48
l.b. @l_b__

Activityを分けるか、2.0で追加されたZ-Order設定APIを使用することで解決するしかない。#abc2010s

2010-06-26 13:34:44
l.b. @l_b__

次の例はSurfaceFlingerのメモリ不足。アプリが強制終了させられる。#abc2010s

2010-06-26 13:35:29
l.b. @l_b__

通常描画はPMEMを使用、OpenGLはGPUメモリを使用。GPUメモリはPMEMに比べ少ないので、メモリ枯渇しやすい。#abc2010s

2010-06-26 13:37:25
l.b. @l_b__

回避策は確実なものはない。ハードウェア、プラットフォーム特性を知らないと回避できない。#abc2010s

2010-06-26 13:38:41
l.b. @l_b__

SoLARについて。ソーシャルゲームは第3世代はARベースになる。SocialLocationARの略。#abc2010s

2010-06-26 13:41:15
l.b. @l_b__

セカイカメラのセッションは以上でした。#abc2010s

2010-06-26 13:41:50