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
250
Other Decks in Programming
See All in Programming
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
570
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
500
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
110
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
810
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
450
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
240
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
240
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
850
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
270
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
130
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
220
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
390
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Music & Morning Musume
bryan
46
6.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Navigating Team Friction
lara
187
15k
A Modern Web Designer's Workflow
chriscoyier
694
190k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Visualization
eitanlees
146
16k
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