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.4k
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
CSC509 Lecture 01
javiergs
PRO
1
430
AIで開発生産性を上げる個人とチームの取り組み
taniigo
0
130
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
170
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
110
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
150
ソフトウェア設計の実践的な考え方
masuda220
PRO
3
470
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.6k
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
380
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
370
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
koxya
1
1.1k
CSC509 Lecture 04
javiergs
PRO
0
290
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
160
Featured
See All Featured
It's Worth the Effort
3n
187
28k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
580
Faster Mobile Websites
deanohume
310
31k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Designing for humans not robots
tammielis
254
25k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Why Our Code Smells
bkeepers
PRO
339
57k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
How GitHub (no longer) Works
holman
315
140k
RailsConf 2023
tenderlove
30
1.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
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