Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android M 追加&変更事項 抜粋
Search
Makoto Anjo
June 25, 2015
Programming
2
1.3k
Android M 追加&変更事項 抜粋
DevFest 2015 (Google I/O 2015 報告会)の時の発表資料です。
Makoto Anjo
June 25, 2015
Tweet
Share
More Decks by Makoto Anjo
See All by Makoto Anjo
Pepper hackathonをホストしてきてわかったこと
tennetiss
1
240
Other Decks in Programming
See All in Programming
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
110
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
140
Exploring: Partial and Independent Composables
blackbracken
0
100
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
7
1.3k
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
260
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
290
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
Spatial Rendering for Apple Vision Pro
warrenm
0
110
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
190
fs2-io を試してたらバグを見つけて直した話
chencmd
0
240
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
110
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
Raft: Consensus for Rubyists
vanstee
137
6.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Optimizing for Happiness
mojombo
376
70k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Designing for Performance
lara
604
68k
BBQ
matthewcrist
85
9.4k
GraphQLとの向き合い方2022年版
quramy
44
13k
Transcript
DevFest2015 Speaker Android M update抜粋 安生 真
Agenda Android M ・指紋認証 ・Backup ・バッテリー効率向上 ・Doze ・App stanby ・通知アイコン
・テキスト範囲選択 ・App Links ・Bluetooth スタイラス ・RenderScript ・カメラ(トーチモード) ・MIDI ・ハイレゾオーディオ ・追加ストレージ ・ART
2つのAPI FingerPrint 指紋認証 ・FingerprintManager.authenticate() ・指紋で認可をとる ・アプリ側でUIコントロールは可能 ・ KeyguardManager.createConfirmDeviceCredentialIntent() ・ロックスクリーンを表示 ・startActivityForResult()
で 確認 ・Sample code github.com/googlesamples/android-FingerprintDialog github.com/googlesamples/android-ConfirmCredential
Confirm Credentialとは FingerPrint 指紋認証 ・KeyguardManager.createConfirmDeviceCredentialIntent() ・ユーザーが何分前に端末をアンロックしたかを取得でき る →n分前未満 なら 処理を続行
→n分以上ならアンロック画面をその場で表示、続行す るためにはユーザーにアンロックしてもらう ・正しいユーザーが使っているかどうかを確認する。決済 処理や、資産管理系アプリなどの前に使うことを想定
アプリの全データがデフォルトでバックアップ される Android Backup ・targetSdk M ・何も設定しなければ全てバックアップされる ・細かく設定も可能 ・xml/resource 内にscheme
ファイルを作って設定 ・include / exculde
Android Backup Android M アプリの全データがデフォルトでバックアップされる ・targetSdk M ・何も設定しなければ全てバックアップされる ・細かく設定も可能 ・xml/resource
内にscheme ファイルを作って設定 ・include / exculde
Doze バッテリー効率向上 スクリーン非表示時の効率 ・しばらく触っていない端末は Doze モードへ ・ネットワーク不可 (優先度設定の高いGCMが来た時はスルー) ・Wake locks無視
・AlarmManagerのスケジュール無効 (setAndAllowWhileIdle(),setAlarmClock()はスルー) ・WiFiスキャン無効 ・sync adapters,JobSchedularによる同期、ジョブ も停止
Doze バッテリー効率向上 ・しばらく触っていない端末は Doze モードへ ただし、 ・充電ケーブルが繋がってる状態 ・端末を動かしている状態(加速度などで検知) ・使っている状態(入力がある状態等) →以上の場合、ノーマルモードへ復帰、
ペンディングだったジョブや同期が実行される つまり、ペンディングから一気に実行されても正しく動作 するよう、事前に検証しておくこと
App standby バッテリー効率向上 ・しばらく触っていないアプリは idle モードへ ただし、 ・ユーザーが自分でそのアプリを起動 ・フォアグラウンドで動いてるプロセスがある ・ロックスクリーンや通知トレイから通知を選択した
・ユーザーが設定からそのアプリの設定を変更 (設定→アプリ→<任意のアプリ>→電池:「最適化を無 視」) →以上の場合、idleではなくなる(復帰する)
App standby バッテリー効率向上 ・idle 状態のアプリは 充電ケーブルが繋がっていない時 ・ネットワーク不可 ・定期ジョブ、同期も停止 充電ケーブルが繋がってる時 ・ネットワークアクセス可
・ジョブや同期も可 ただし、端末が長い間使われていない場合、idleアプリは 1日に一回しかネットワークが使えないという制限がつく
Doze&App standby バッテリー効率向上 Doze ・主にスクリーン非表示、バッテリー駆動時のバックグラ ウンド動作を制限し、知らない間に異常にバッテリーを消 費するようなことをなるべく回避する App stanby ・使用頻度の減ったアプリは特に意図がないかぎりその定
期動作を制限することでバッテリー消費を防ぐ
アイコン作成:今まではリソースIDを渡す必要があ った 通知アイコン リソースIDはビルド前にしか生成できないので、アイコ ンは全パターン事前にresourcesに入れておく必要があっ た
アイコン作成:直接Bitmapを渡せるようになりまし た 通知アイコン
テキスト範囲選択 ・範囲選択がより簡単に ・選択した近くにアクション が表示される ・TextViewだとデフォルト
テキスト範囲選択 また、範囲選択されたテキストをアプリで受け取 って処理する事も可能に
テキスト整形 より凝ったテキスト整 形も可能に
任意のWebドメインとアプリの関係性を明確にす る App Links ・自社Webサービスと自社アプリが同一の作者(企 業)であるという事を明示する事で、サードパーテ ィアプリより優先的な遷移を可能にする 詳細ページ(英語) d.android.com/preview/features/app-linking.html
App Links MのファイナルプレビューまでにはTLSが使えるよ うになります 以下のようなjsonをアプリと関連付けたいドメインに設 置する 関連付けたいアプリのパッケージ名を明 記して、またkeytoolで発行した certificateを記載しておく
App Links MのファイナルプレビューまでにはTLSが使えるよ うになります 以下のようなjsonをアプリと関連付けたいドメインに設 置する アプリ側は、Manifestに以下、 intent-filterやjsonを設置したドメイン名を記載しておく
App Links app linksの確立 ・アプリインストール時に package managerがstatement.jsonをwebから取得 ・そこに記載されているアプリパッケージ名と fingerprintをアプリ側のパッケージ名やcertとマッチして 確認する
→マッチすれば同一の製作者とみなし、自社アプリに 優先権が確立する
App Links app linksの確立 ・app linksを設定しない、もしくはマッチしなかった場 合は、今までどおりそのドメインで動作するアプリが複 数ある場合はアプリを選択するダイアログが表示される。 (ユーザーが選択する)
Styluses ICE_CREAM_SANDWICHからサポート MotionEvent APIs: TOOL_TYPE_STYLUS BUTTON_SECONDARY BUTTON_TERTIARY getPressure(), getSize(), getOrientation(),
など ただし、有線接続もしくはその端末専用デジタイザのみ でした
Styluses Bluetooth stylus support Bluetooth stylus 実装の流れ Bluetooth HID(BLE)経由で筆圧とボタン入力 Android
Mがこの入力をタッチイベントと融合 TOOL_TYPE_STYLUSとして touch streamを取得 できる Bluetooth stylus は全てのM端末アプリで対応可能
RenderScript (まだ生きてた)RenderScript Compute
Camera New Torch mode カメラのストロボ(フラッシュ)をカメラ から独立して制御可能に ※ただし、カメラを制御する方が優先される
MIDI MIDI API 以前から利用可能ではあったが… USBから直接制御するため実装は大変でし た android.media.midi MidiDeviceManager MidiInputPort MidiOutputPort
MidiDeviceService
ハイレゾ オーディオ オーディオサンプル: 単精度浮動小数点 FLOAT32(以前は16bit) サンプルレート: 96kHz(以前は44.1 or 48) USB
デジタルオーディオ: マルチチャンネル
ART 全体的にパフォーマンスは向上 さらに Runtime stats(ランタイムで統計とれるようになった) Debug.getRuntimeStat(String) “art.gc.gc-count” “art.gc.gc-time” … gcの発生回数、所要時間など
他 ・DirectShare ・Voice Interactions ・Camera Reprocessing API などなど
まとめ Mはブラッシュアップが中心 Doze、App stanbyはバックグラウンド動作に影響があ るので、事前に入念にテストしておく必要アリ App Links は App Indexing(Deep
Link)を含めてwebか らアプリへの導線として今後とても重要な機能になり 得るので、自分にとってベストな使い方を!
-------- ご清聴ありがとうございました! Google Developer Expert 安生 真 twitter @tennetiss Google+
Makoto Anjo
Next Product