万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    日本Androidの会10月のイベント

    ソフトハウスの社長
     Blogの中の人
     パームパイロット
     H03 G-1、GDDPhone、ADP
     magic
     4機種(??、H03A,SUMSUNG、??)
     Twitter(@tao_gaku)
    ・まとめ方
     キャリア&機種

    ○ホリデーシーズン
     11月第4木曜日(26日)感謝祭から元旦

     アメリカのキャリア
     Verizon Wireless
     AT&T Mobility
     Sprit Nexttel
     T-Mobile USA

    ・HTC-DREAM(最初のAndroid端末)G1、ADP-1

    ・HTC-MAGIC
     docomo8月

    ・HTC-HERO
     Googleから離れた、実験的な

    ・HTC SPRINT HERO
     アメリカのSPRINT
     HEROとCPUは少し違う
     Cellular South

    ・HTC-TATTOO
     Vodaphone UK
     動かないプログラムが多い

    ・SUMSUNGーGALAXY
     最初にHTCが出して、二番目に出したメーカ
     Android1.5
     ソフトキーボード
     5Mのカメラ
     入手困難

    SAMSUNGーMOMENT
     SUMSUNGの2機種目
     速い

    ・SUMSUNG-BEHOLD II
     Touch With
     詳細なスペックはまだ分かってない

    ・SUMSUNG-GALAXY Lite

    T-Mobile-PULSE HUAWEI
     SUMSUNGやモトローラに勝てなかった
     特賞は普通

    MOTOROLAーCLIQ
     力を入れている

    MOTOROLA-TAO
     Sholes、Droid
     10/30に発表or発売
     アメリカで一番大きなキャリア

    ・LG-GW620
     公式発表している
     出るのが確実

    ○アメリカのまとめ
    T-Mobile
     Dream Magic Behind II.Cliq

    ・SPRINT
     Hero Moment

    ・VERIZON
     ??

    ACER-LIQUID A1
     レッドカラー

    ・Sony EricssonRachel
     11or1月海外で発売


    ○中国
    →現在2つ機種出ている出す
    ・OPhone(1.1か1.2をベースにしている)
     Lenobo O1
    ・Droid AG188(HTC Magic)

    ・DEL
     出す?

    T-Mobile Fender

    ・Covia-SmartQ 5

    Android 5 Internet tablet

    ・アクロス フランスのメーカ
     日本で直接買うことができない。

    ・Zii Egg
     Andoid動かない

    Acer Notebook
     XPとのデュアルブート

     Insyde Market
     →Appleの用に承認・非承認
      無料でやっている

    ・電子ブック(バーンアンドノーブル)
     Androidベース
     →日本時間10月21日に発表会

    ・Japan
     有料ソフト購入可
     新形態端末
     携帯以外のデバイス
     新キャリア
     Android Developer Challenge 2
     Kyocera

    ・本日
     au本日残念でした
     Docomo Android 1.6アップデート

    ・Android2.0
     DROIDDOES ANDROID

    Android Notebook
     もうAmazonで売っている


    ●日本システム開発 第2事業部 石原さん
    Androidの画面描写機構をチューニングする!
     Androidミドルウェア部分を。

     Androidオープンソースなので、誰かのために最適化されたわけではない

    ・画面描画は要求が大きい

    ・SurfaceFilingerコンポーネント
     デジタルテレビでAndroidを動かす
     
    SurfaceFilingerとは?
    ・OpneGLなどの描画エンジンを呼び出し、FrameBufferに描画を行う。

    ・書くアプリケーションに対して領域領域(Surface)にを割り当てる

    ・SurfaceFilingerのチューニングポイント
    ・NativeアプリケーションでAndroidに描画してみる

    ・各アプリはSurfaceに描画データの書き込みを行います。

    SurfaceFlingerのチューニングポイント
    ・色震度
     Androidは16bitカラーのみをサポートしている
     昨今は携帯電話をはじめ32bitカラー

    ●16bitカラー以上にするには?
    ・どこに修正を入れればよいか?
     ・SurfaceFlingerのFrameBuffer設定
      アプリの生成する

    ・現在の設定手順
     システムの起動時に
    IOcontrol
    FB情報取得
    FBIOGET_VSCREENINFO
    FBIOPUT_VSCREENINFO
    FBIOGET_VSCREENINFO

    16bitカラーで固定されている

    →つまり
    FrameBufferを32bit化

    PIXEL_FORMART_RGB_565(default)

    PIXEL_FORMART_RGB_BGRA_8888の実装が存在している

    32ビットカラーで動作するように設定する

    ・アプリの生成するSurface
    Surface 32bppバッファ割当て

    アプリが16bitカラーでは
    SurfaceFlinger→FrameBufferを32bit化しても意味がない

    ・OPEQUE(default)
     16bitRGB(565)のバッファ
    ・TRANSPARENT
     
    ・TRANSLUCENT
     32bit

    ○描画速度
    ・32bitカラー化により次の問題が発生した
     16bitカラーのときに比べて描画性能が1/10に低下

    ・デモ
     描画が遅い状態
     もっさりした状態

    ○なぜ?
     Androidの描画エンジンは16bitカラーを前提としている

    ○描画速度
    ・描画速度の改善にはどのような方法があるのか?

    ○Copybitライブラリの使用
    ・Copybitライブラリとは?
     /system/lib/hw/copybit/ro_hardware

     存在していたらCopybitエンジン呼びだし!

    ○しかし
     ・AndroidオープンソースプロジェクトにはCopybitライブラリは含まれていない!

    ○Copybitライブラリがなかった場合は?

    OpenGLの性能問題
    ・1/10に低下したのはOpenGLライブラリが原因
    ・16bitカラーを想定した高速化カラーは存在するか?

    OpenGL汎用レートは何故遅い?
    ・すべての描画パターンに対応しているため、ピクセル単位で条件判定が発生

    ○16bppの場合は?
    Surfaceの条件枚に描画する関数が用意している

    ○さらにARMアーキテクチャの場合は?
    アセンブラにして高速化されている

    OpenGLの高速化には?
    Surface単位に条件に応じたモジュールを作成
    アセンブラ化して無駄なロジックを削る
     C言語にて作るだけでもかなりの性能アップ

    →ballsのベンチマークで5fpsから60、70fpsになる

    ○1アプリケーションのメモリ
    Surfaceに割り当てられる描画メモリは1アプリ単位で最大で8MBとなっている。

    ・8MBを超える描画領域を必要とするアプリケーションはメモリ確保ができず起動に失敗する
    ・32bitカラー化した場合、描画領域が16bitカラーの杯以上速度が必要

    Surfaceバッファのメモリの上限を8MB以上にする
     マクロの値が8MBに固定化しているのでそれを書き換える

    ?Nativeアプリケーション
    ・通常Javaで実装を行います。

    ・JavaVMではC/C++のコードが呼び出されている。

    ・NativeアプリでもJavaと同じようにGUIを持たせて共存できるのでは?

    Surface Flinger

    ○仕組みをもう少し詳しく
    JavaアプリとSurfaceFlingerはサーバ/クライアントの形式で接続を行っています。

    SynbianOSに似ている

    ○祖結合的
    ・SurfaceFlingerからはJavaアプリと同じに見える。(GUI共存が可能)

    ・シェルから起動させても実行できない

    ・Nativeアプリでの注意・補足

    Javaアプリで使用していたCanvasやSurfaceViewといった描画クラスは、準備されていない・

    ・レイヤの重なり具合は整数値で管理されている。

    ・性能がどれだけか分かる

    ・Nativeアプリで描画ができる

    LinuxCUIアプリもできるかも?

    ●「スポットメッセージ(仮)β」の紹介(株式会社バンプール 家庭用ゲーム会社の開発会社)
    Android Developer Challenge2(ADC2)登録アプリ

    Androidは市場への参入がしすい


    ・アプリケーションの概要
     コミュニケーションツール
     GPSを使っている
     GoogleMapを使って好きな位置(スポット)を選ぶ
     指定した場所でバイブレーションで通知する。
     指定した位置でメッセージが読める

     スポットメッセージ=URI
     あらゆる媒体を使って送受信できる。
     アプリ独自のURI
     GMailが起動

     受信側にWebページが付属

    ・現在地とスポット位置

    ●日本Androidn会 近藤
    ・スパイラル開発
    4月にプロトタイプ作成
    8月に2週間ちょっと開発し、実質1ヶ月半の開発

    Androidの弱点
    ・体系的にまとまった日本語情報が少ない
    ・実践的なノウハウの蓄積、共有が少ない
    ・進化のスピードが速いので情報の陳腐化も速い

    ・アニメーションGIFに対応してない
     パラパラアニメにするにはXMLファイルにアニメーションを定義してコードで制御する

    ・LocationManagetのProxymityAlertが使い物にならなかった
    ・指定した場所に到達すると知らせてくれる
     ProximityAlertを使うと頻度を設定できない上に

    Simカードが刺さってないと室内での位置情報の検知が難しい

    ・IMES(屋内GPS)が有望

    ○環境の移行が楽
    Eclipseのプロジェクト
    ・OSに依存しない開発環境

    ○リソースのローカライズなどが簡単

    Androidのアプリは見た目がいまいち
    ・標準のUIパーツがしょぼい

    ・WebViewで構築すればHTMLなのでとっかかりがいい

    有料のアプリケーションができるようになったが、ユーザはダウンロードできない
    Googleは諸事情で
     ある日突然ダウンロードできるようになる?
     →アップロードしてしまえばいい。

    11/30 カンファレンス
    場所代々木 青少年センター