ABC 2011 Summer 参加メモ

ABC 2011 Summerに参加してきました。

Android3.0/3.1/3.2 HoneycombとAPI解説(Android Developers' Club (デ部)のゆかいな仲間たち)

■ @cyberspacefarm
  • Honeycombとは? - タブレット向けの新しいUIデザイン
  • "horographic" UI design
  • "lights out mode"
■ @korodroid
  • 選択+コピペ機能の向上
  • プレーンテキスト以外のコピペ可能
  • Viewのドラッグ&ドロップも実装可能
  • アプリの機能追加
    • Browser
      • タブ+Anonymous mode
      • Quick Control
    • Camera
    • Gallery
    • Contacts
    • Email
    • Calender
  • MTP/PTPのサポート
  • ソフトキーボードの操作性改善
■ @yanzm
  • New UI framework for creating great tablet apps
    • Fragment - ActivityとViewの中間のようなもの
      • GridView
      • ListView
      • StackView
  • Compatibility with existing apps
    • targetSDK or miniSDK を指定
  • UI refinements
■ @sys1yagi
  • High performance 2D and 3D
    • Animation Frameworkの追加
    • Hardware accelerated 2D Graphics
      • android.renderscript
      • Multicoreがサポートされた
  • Rich multimedia
    • Time lapse Video
    • Texture support for image stream
    • HTTP live streaming
    • EXIF data
    • Camcoder profiles
    • DRM
■ @95kugo
  • 外部キーボード、マウスが接続可能
  • Resizable Home screen widgets
  • Expanded Recent App list
■ @chun_ryo
  • Device Administration
    • パスワードの有効期限
    • パスワード履歴
    • パスワードの複雑度
  • MTP API
■ @vvakame
  • Joysticks and USB Host
    • ActivityにGenericMotionEventが追加
  • 3.1からはUSBのHost側になれる
■ @bols_blue
  • USB Accessory
    • USBホストとの違い
      • USBの知識不要
      • File discriptorからストリームを作成するだけで通信できる
■ @youten_redo
  • Robust Wi-Fi networking
    • HTTP Proxyに対応
  • Enterprise support
  • RTP API
  • Performance optimizations

Linuxカーネルから紐解くAndroid(出村成和)

AndroidLinuxカーネルの深い関係
  • AndroidUbuntuの違い
    • 利用者(1人/2人以上)とハード(モバイル機器/PC)
  • Androidでの独自拡張
    • 追加/拡張機能
      • セキュリティ
      • Binder(IPCの代替)
      • 電源管理
      • メモリ管理
      • ApplicationFramework対応(例:logcat)
  • セキュリティ
    • サンドボックス
      • アプリ間で影響しないようにする仕組み
        • UID:GIDがアプリ別に設定される
        • アプリが独立して動作している
  • Binder
    • IPCの代替
      • たとえばシェルのパイプ機能
    • AIDL(Android Interface Definition Language) , Intentの根源
    • より移植性を高めるために
  • 電源管理
    • 電力消費を極力抑える
      • バッテリ容量が少ない
    • アプリが動作していない → CPU停止へ移行
  • wakelocks
    • Sleepを一定時間無効にしたい
      • 例) アップデートのダウンロード中
      • カーネルレベルで制御
  • メモリ管理(Android
    • 共有メモリ
      • ashmem
      • pmem
    • メモリ管理
      • Out of Memory Handling
      • LowMemoryKiller
    • Ubuntuでは
      • メモリ不足が発生
      • OutOfMemoryHandlingが発動
        • 起動したアプリをkill
      • OOMはあまり発生しない
        • 必要に応じてメモリ追加する
        • それでも不足したならSwapエリアへ
    • Androidでは
      • メモリ不足はよく発生する
        • 標準メモリが(Ubuntuと比べて)少ない
        • swapエリアがない
  • LowMemoryKiller
    • アプリを起動するがメモリ不足

      ↓

    • 優先度の低いアプリを強制終了
    • 空いたメモリでアプリを起動
    • 強制終了するアプリ
      • メモリ残容量&優先度で決定
        • 前面表示アプリ > 一時停止アプリ > content provider
        • サービスは除外
    • その基準は?
      • /init.rcファイルに定義されている

スマートフォンとウェブの今 10年に一度の変革期(伊藤直也

  • 1995〜2000
  • 2000〜2005
  • バイス、メディア、グローバリゼーション 10年に一度の変化がやってきた
  • 技術者としての誇りは、高度な技術を与えられることで得るのではなく、自らが使命とする問題領域をより高度な技術基盤で扱う世界に発展させることによって、自ら創造することができる。

ngCoreを用いたAndroid向けアプリケーション開発(岸 弘倫)

  • ngCoreとは
    • DeNAが提供しているソーシャルアプリ向けのSDK
  • 特徴
    • SG開発に最適なAPIの提供
    • JP/WWのmobageのSocial APIを利用可能
    • Live updating
  • 利点
    • JavaScriptのみでゲームコードを記述可能
    • Android環境での更新の容易性
    • WebView/Canvasを使うより高パフォーマンス
    • ソーシャル・課金機能を容易に利用可能
    • 1つのコードでiOS/Android両環境で利用可能
  • JavaScriptベースでのゲーム開発
    • 言語が何気に強力
    • WWWとの連携の容易性
    • デバッグが容易
    • そこそこ速い
  • NodeJS
    • サーバサイドの開発にJavaScriptを使うための実装のうちの1つ
    • ngCoreでは開発環境でのアプリbuildと実行環境へのリリース配信に利用
  • 今後のngCore
    • サーバサイドJavaScript
      • クライアント・サーバ間で言語が違う(クライアント:JavaScript、サーバ:Perl
      • ngServerの提供予定
        • サーバサイド開発もJavaScriptで行えるよう、Node.jsをベースとしたFW/ライブラリを提供

いま求められる、Androidのセキュリティ(丹羽直也)

  • Androidセキュリティ部の設立趣旨
    • コミュニティとしてのセキュリティ
  • 活動紹介
    • MLでの情報共有・ディスカッション
    • JSSECには「特別会員」として参加
    • @ITでの記事執筆
  • 今後の予定
    • @ITでの記事連載
    • Androidセキュリティ勉強会の開催
    • Androidセキュリティ情報の公開