Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android M 追加&変更事項 抜粋

Android M 追加&変更事項 抜粋

DevFest 2015 (Google I/O 2015 報告会)の時の発表資料です。

Makoto Anjo

June 25, 2015
Tweet

More Decks by Makoto Anjo

Other Decks in Programming

Transcript

  1. DevFest2015
    Speaker
    Android M
    update抜粋
    安生 真

    View Slide

  2. Agenda
    Android M
    ・指紋認証
    ・Backup
    ・バッテリー効率向上
    ・Doze
    ・App stanby
    ・通知アイコン
    ・テキスト範囲選択
    ・App Links
    ・Bluetooth スタイラス
    ・RenderScript
    ・カメラ(トーチモード)
    ・MIDI
    ・ハイレゾオーディオ
    ・追加ストレージ
    ・ART

    View Slide

  3. 2つのAPI
    FingerPrint 指紋認証
    ・FingerprintManager.authenticate()
    ・指紋で認可をとる
    ・アプリ側でUIコントロールは可能

    KeyguardManager.createConfirmDeviceCredentialIntent()
    ・ロックスクリーンを表示
    ・startActivityForResult() で 確認
    ・Sample code
    github.com/googlesamples/android-FingerprintDialog
    github.com/googlesamples/android-ConfirmCredential

    View Slide

  4. Confirm Credentialとは
    FingerPrint 指紋認証
    ・KeyguardManager.createConfirmDeviceCredentialIntent()
    ・ユーザーが何分前に端末をアンロックしたかを取得でき

    →n分前未満 なら 処理を続行
    →n分以上ならアンロック画面をその場で表示、続行す
    るためにはユーザーにアンロックしてもらう
    ・正しいユーザーが使っているかどうかを確認する。決済
    処理や、資産管理系アプリなどの前に使うことを想定

    View Slide

  5. アプリの全データがデフォルトでバックアップ
    される
    Android Backup
    ・targetSdk M
    ・何も設定しなければ全てバックアップされる
    ・細かく設定も可能
    ・xml/resource 内にscheme ファイルを作って設定
    ・include / exculde

    View Slide

  6. Android Backup
    Android M
    アプリの全データがデフォルトでバックアップされる
    ・targetSdk M
    ・何も設定しなければ全てバックアップされる
    ・細かく設定も可能
    ・xml/resource 内にscheme ファイルを作って設定
    ・include / exculde

    View Slide

  7. Doze
    バッテリー効率向上
    スクリーン非表示時の効率
    ・しばらく触っていない端末は Doze モードへ
    ・ネットワーク不可
    (優先度設定の高いGCMが来た時はスルー)
    ・Wake locks無視
    ・AlarmManagerのスケジュール無効
    (setAndAllowWhileIdle(),setAlarmClock()はスルー)
    ・WiFiスキャン無効
    ・sync adapters,JobSchedularによる同期、ジョブ
    も停止

    View Slide

  8. Doze
    バッテリー効率向上
    ・しばらく触っていない端末は Doze モードへ
    ただし、
    ・充電ケーブルが繋がってる状態
    ・端末を動かしている状態(加速度などで検知)
    ・使っている状態(入力がある状態等)
    →以上の場合、ノーマルモードへ復帰、
    ペンディングだったジョブや同期が実行される
    つまり、ペンディングから一気に実行されても正しく動作
    するよう、事前に検証しておくこと

    View Slide

  9. App standby
    バッテリー効率向上
    ・しばらく触っていないアプリは idle モードへ
    ただし、
    ・ユーザーが自分でそのアプリを起動
    ・フォアグラウンドで動いてるプロセスがある
    ・ロックスクリーンや通知トレイから通知を選択した
    ・ユーザーが設定からそのアプリの設定を変更
    (設定→アプリ→→電池:「最適化を無
    視」)
    →以上の場合、idleではなくなる(復帰する)

    View Slide

  10. App standby
    バッテリー効率向上
    ・idle 状態のアプリは
    充電ケーブルが繋がっていない時
    ・ネットワーク不可
    ・定期ジョブ、同期も停止
    充電ケーブルが繋がってる時
    ・ネットワークアクセス可
    ・ジョブや同期も可
    ただし、端末が長い間使われていない場合、idleアプリは
    1日に一回しかネットワークが使えないという制限がつく

    View Slide

  11. Doze&App standby
    バッテリー効率向上
    Doze
    ・主にスクリーン非表示、バッテリー駆動時のバックグラ
    ウンド動作を制限し、知らない間に異常にバッテリーを消
    費するようなことをなるべく回避する
    App stanby
    ・使用頻度の減ったアプリは特に意図がないかぎりその定
    期動作を制限することでバッテリー消費を防ぐ

    View Slide

  12. アイコン作成:今まではリソースIDを渡す必要があ
    った
    通知アイコン
    リソースIDはビルド前にしか生成できないので、アイコ
    ンは全パターン事前にresourcesに入れておく必要があっ

    View Slide

  13. アイコン作成:直接Bitmapを渡せるようになりまし

    通知アイコン

    View Slide

  14. テキスト範囲選択
    ・範囲選択がより簡単に
    ・選択した近くにアクション
    が表示される
    ・TextViewだとデフォルト

    View Slide

  15. テキスト範囲選択
    また、範囲選択されたテキストをアプリで受け取
    って処理する事も可能に

    View Slide

  16. テキスト整形
    より凝ったテキスト整
    形も可能に

    View Slide

  17. 任意のWebドメインとアプリの関係性を明確にす

    App Links
    ・自社Webサービスと自社アプリが同一の作者(企
    業)であるという事を明示する事で、サードパーテ
    ィアプリより優先的な遷移を可能にする
    詳細ページ(英語)
    d.android.com/preview/features/app-linking.html

    View Slide

  18. App Links
    MのファイナルプレビューまでにはTLSが使えるよ
    うになります
    以下のようなjsonをアプリと関連付けたいドメインに設
    置する
    関連付けたいアプリのパッケージ名を明
    記して、またkeytoolで発行した
    certificateを記載しておく

    View Slide

  19. App Links
    MのファイナルプレビューまでにはTLSが使えるよ
    うになります
    以下のようなjsonをアプリと関連付けたいドメインに設
    置する
    アプリ側は、Manifestに以下、
    intent-filterやjsonを設置したドメイン名を記載しておく

    View Slide

  20. App Links
    app linksの確立
    ・アプリインストール時に
    package managerがstatement.jsonをwebから取得
    ・そこに記載されているアプリパッケージ名と
    fingerprintをアプリ側のパッケージ名やcertとマッチして
    確認する
    →マッチすれば同一の製作者とみなし、自社アプリに
    優先権が確立する

    View Slide

  21. App Links
    app linksの確立
    ・app linksを設定しない、もしくはマッチしなかった場
    合は、今までどおりそのドメインで動作するアプリが複
    数ある場合はアプリを選択するダイアログが表示される。
    (ユーザーが選択する)

    View Slide

  22. Styluses
    ICE_CREAM_SANDWICHからサポート
    MotionEvent APIs:
    TOOL_TYPE_STYLUS
    BUTTON_SECONDARY
    BUTTON_TERTIARY
    getPressure(), getSize(), getOrientation(), など
    ただし、有線接続もしくはその端末専用デジタイザのみ
    でした

    View Slide

  23. Styluses
    Bluetooth stylus support
    Bluetooth stylus 実装の流れ
    Bluetooth HID(BLE)経由で筆圧とボタン入力
    Android Mがこの入力をタッチイベントと融合
    TOOL_TYPE_STYLUSとして touch streamを取得
    できる
    Bluetooth stylus は全てのM端末アプリで対応可能

    View Slide

  24. RenderScript
    (まだ生きてた)RenderScript Compute

    View Slide

  25. Camera
    New Torch mode
    カメラのストロボ(フラッシュ)をカメラ
    から独立して制御可能に
    ※ただし、カメラを制御する方が優先される

    View Slide

  26. MIDI
    MIDI API
    以前から利用可能ではあったが…
    USBから直接制御するため実装は大変でし

    android.media.midi
    MidiDeviceManager
    MidiInputPort
    MidiOutputPort
    MidiDeviceService

    View Slide

  27. ハイレゾ オーディオ
    オーディオサンプル: 単精度浮動小数点
    FLOAT32(以前は16bit)
    サンプルレート: 96kHz(以前は44.1 or 48)
    USB デジタルオーディオ: マルチチャンネル

    View Slide

  28. ART
    全体的にパフォーマンスは向上
    さらに
    Runtime stats(ランタイムで統計とれるようになった)
    Debug.getRuntimeStat(String)
    “art.gc.gc-count”
    “art.gc.gc-time”

    gcの発生回数、所要時間など

    View Slide


  29. ・DirectShare
    ・Voice Interactions
    ・Camera Reprocessing API
    などなど

    View Slide

  30. まとめ
    Mはブラッシュアップが中心
    Doze、App stanbyはバックグラウンド動作に影響があ
    るので、事前に入念にテストしておく必要アリ
    App Links は App Indexing(Deep Link)を含めてwebか
    らアプリへの導線として今後とても重要な機能になり
    得るので、自分にとってベストな使い方を!

    View Slide

  31. --------
    ご清聴ありがとうございました!
    Google Developer Expert
    安生 真
    twitter
    @tennetiss
    Google+
    Makoto Anjo

    View Slide

  32. Next Product

    View Slide