SlideShare a Scribd company logo
Google I/O
2016
参加報告
SRA 産業第1事業部
鈴木 真吾
自己紹介
• 産業第 1 事業部 9 年目
• 最近の仕事:
• Fortranコンパイラの拡張
• Apache Sparkの京への移植
• Androidの仕事は去年 2 ヵ月くらい
宣伝1
• Google Hangout でやる勉強会
• 今年度のテーマは未定
宣伝2
• ボードゲーム会
Google I/O 2016
• Google の技術者向けカンファレンス
• 今年はマウンテンデューで開催
• セッションのほかに展示物・ハンズオ
ンもある
• 参加者 7,000 人以上
Google I/O であった発表
• 新製品・サービス
• Google Assistant
• Google Allo
• Google Home
• Google Photos
• Android Instant Apps
• etc
• セッション
• Android N, Android Studio
• Web フロントエンド
• Firebase
• Google Cloud Platform (は少なめ)
• etc…
今日の発表
• Android N
• Android Studio 2.2
Android N の新機能
Performance
Security
Productivity
Performance
• VM の改善
• Doze mode
• Data Saver
• Project Svelte
VMの改善
• ART
• Ahead Time Compile から JIT/AOT 方式に
• 最初は JIT で動く
• 動いたプロファイルを元に、ホットスポットだけコンパイル
• 「アプリの最適化」時間の大幅短縮
• APKサイズが縮小
Doze モード
• Mashmallowから導入
• N でいろいろ改善
Project Svelte
• バックグラウンド処理の最適化3つの
暗黙的ブロードキャスト が廃止
• CONNECTIVITY_ACTION
• → ConnectivityManager API
• → JobScheduler
• ACTION_NEW_PICTURE
• ACTION_NEW_VIDEO
• → JobScheduler
App
Background
Services
Top App
RAM
Top App
RAM
JobScheduler
JobScheduler
public static final int MY_BACKGROUND_JOB = 0;
...
public static void scheduleJob(Context context) {
JobScheduler js = (JobScheduler)
context.getSystemService(Context.JOB_SCHEUDLER_SERVICE);
JobInfo = new JobInfo.Builder(
MY_BACKGROUND_JOB,
new ComponentName(context, MyJobService.class))
.setRequredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
.setRequiresCharging(true)
.build();
js.scheduler(job);
}
Dava Saver
• ユーザがデータ通信量を制限できるように
• ビットレート制限
• 画質低下
• フォアグラウンドのデータ使用を抑制
• バックグランドのデータ通信を制限
• ConnectivityManager
• データセーバの設定取得
• 設定変更の監視
Security
• File Based Encryption
• Media Framework Hardening
• Seamless Update
• Permissions
• Authentication
• Secure Networking
• Storage Encryption
• Sandboxing
• etc …
Media
Framework
Hardening
Runtime Permissions
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.READ_CONTACTS)) {
// ここで非同期的にパーミッションについての説明を出す‘
} else {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
}
}
ネットワーク セキュリティ構成機能
<?xml version="1.0" encoding="utf-8"?>
...
<app ...>
<meta-data android:name="android.security.net.config"
android:resource="@xml/network_security_config" />
...
</app>
クリアテキスト トラフィックのオプトアウト
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config usesCleartextTraffic="false">
<domain includeSubdomains="true">secure.example.com</domain>
</domain-config>
</network-security-config>
CA の制限
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">secure.example.com</domain>
<domain includeSubdomains="true">cdn.example.com</domain>
<trust-anchors>
<certificates src="@raw/trusted_roots"/>
</trust-anchors>
</domain-config>
</network-security-config>
デバッグ用CA
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="@raw/debug_cas"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
ダイレクトブート
• 端末のロックを解除する前にアプリを起動できる
• ロック解除前にアクセスできるストレージは端末暗号化ストレージ
端末暗号化ストレージ
ユーザ 1
資格情報
暗号化ストレージ
ユーザ 2
資格情報
暗号化ストレージ
ダイレクトブート
<receiever
android:encryptionAware="true" >
...
<intent-filter>
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service … android:encryptionAware="true" >
ダイレクトブート
Context directBootContext = Context.createDeviceEncryptedStorageContext();
// Access appDataFilename that lives in device encrypted storage
FileInputStream inStream = directBootContext.openFileInput(appDataFilename);
// Use inStream to read content...
Productivity
• Notification
• Multi Windows
• Quick Setting Tile
Notification
• Direct Reply
• Notifiaction から直接入力できる
• バンドル通知
• 通知のキューのされ方が変更できる
• カスタムビュー
• 通知の表示をカスタマイズ
Multi Window
• DEMO
Quick Setting Tiles
• クイック設定タイルを独自に定義可能
• android.service.quicksettings.Tile
Android Studio 2.2 (Preview 2 3)
• Design
• Layout Editor
• Constraint Layout
• Layout Inspector
• Development
• Firebase プラグイン
• サンプルブラウザ
• IntelliJ 2016.1
• Build
• Jack コンパイラの改善
• マージドマニフェストビュー
ワー
• Test
• Espresso Test Recorder
• APK Analyzer
Android Studio 2.2
• DEMO
Google I/O に参加して感じたこと
• ネイティブアプリとWebアプリ
• Instant Apps と Progressive Web Apps
• Background as a Service としてのFirebase
• Google が考えるモバイルアプリの在り方
• マシンラーニング
• 資金と技術を持っている企業が本気を出すとどうなるか
• VR・AR
• Daydream と Project Tango
• 結構後追いになってる部分もあるなあ
Google I/O に参加して感じたこと
• 参加者は多国籍
• 日本、中国、台湾、ベトナム、インド
• 録画がないセッションはすごい行列ができる
• ならんだけど入れなかったセッションがあったり
• 割とハズレのセッションもある
• 熱いアンド寒い
• 山か、というぐらいに気温が変わる
• 食事はすごい美味しい
質疑応答

More Related Content

What's hot

What's hot (20)

Google for モバイル アプリ - コンテナ技術と Google Compute Engine で実現するクラウド時代のアプリ実行環境
Google for モバイル アプリ - コンテナ技術と Google Compute Engine で実現するクラウド時代のアプリ実行環境Google for モバイル アプリ - コンテナ技術と Google Compute Engine で実現するクラウド時代のアプリ実行環境
Google for モバイル アプリ - コンテナ技術と Google Compute Engine で実現するクラウド時代のアプリ実行環境
 
6 月 18 日 Next - Cloud Networking
6 月 18 日 Next - Cloud Networking6 月 18 日 Next - Cloud Networking
6 月 18 日 Next - Cloud Networking
 
Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...
 
Elastic observabilitycansmartlymanagetheappsonkubernetes
Elastic observabilitycansmartlymanagetheappsonkubernetesElastic observabilitycansmartlymanagetheappsonkubernetes
Elastic observabilitycansmartlymanagetheappsonkubernetes
 
Moving from on prem to managed services with elastic on azure-final
Moving from on prem to managed services with elastic on azure-finalMoving from on prem to managed services with elastic on azure-final
Moving from on prem to managed services with elastic on azure-final
 
SLOのすすめ
SLOのすすめSLOのすすめ
SLOのすすめ
 
Pokémon GOとGCP
Pokémon GOとGCPPokémon GOとGCP
Pokémon GOとGCP
 
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
 
Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介
 
『 イドラ ファンタシースターサーガ 』を支える GCP | Google Cloud INSIDE Games & Apps
『 イドラ ファンタシースターサーガ 』を支える GCP | Google Cloud INSIDE Games & Apps 『 イドラ ファンタシースターサーガ 』を支える GCP | Google Cloud INSIDE Games & Apps
『 イドラ ファンタシースターサーガ 』を支える GCP | Google Cloud INSIDE Games & Apps
 
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn08277.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
 
Smart store servlerless-20191030-40min
Smart store servlerless-20191030-40minSmart store servlerless-20191030-40min
Smart store servlerless-20191030-40min
 
Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...
 
Developer summit 2015 gcp
Developer summit 2015   gcpDeveloper summit 2015   gcp
Developer summit 2015 gcp
 
Getting Started With AKS
Getting Started With AKSGetting Started With AKS
Getting Started With AKS
 
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
[Cloud OnAir] #01 徹底解剖 GCP のここがすごい
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...
 
Google for Mobile: Google スケールで構築する! ゲームインフラと分析環境 - 橋口 剛
Google for Mobile:  Google スケールで構築する! ゲームインフラと分析環境 - 橋口 剛Google for Mobile:  Google スケールで構築する! ゲームインフラと分析環境 - 橋口 剛
Google for Mobile: Google スケールで構築する! ゲームインフラと分析環境 - 橋口 剛
 
この先生きのこるためのログ管理
この先生きのこるためのログ管理この先生きのこるためのログ管理
この先生きのこるためのログ管理
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221
 

Similar to Google I/O 2016 報告会

次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
kumo2010
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
Developers Summit
 
How to django at first
How to django at firstHow to django at first
How to django at first
Maito Kuwahara
 

Similar to Google I/O 2016 報告会 (20)

Google I/O 2012 and Android 4.1
Google I/O 2012 and Android 4.1Google I/O 2012 and Android 4.1
Google I/O 2012 and Android 4.1
 
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
 
クラウドだから手を付けやすい AI への道
クラウドだから手を付けやすい AI への道クラウドだから手を付けやすい AI への道
クラウドだから手を付けやすい AI への道
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
 
Social Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku WebinarSocial Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku Webinar
 
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSourceMashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
 
その Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しようその Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しよう
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Parse触ってみた
Parse触ってみたParse触ってみた
Parse触ってみた
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
 
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
 
Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
Logic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryLogic Apps/Flow Update Summary
Logic Apps/Flow Update Summary
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
 
Azure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け TipsAzure Functions と Serverless - 概要と企業向け Tips
Azure Functions と Serverless - 概要と企業向け Tips
 
How to django at first
How to django at firstHow to django at first
How to django at first
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
 

More from shingo suzuki

More from shingo suzuki (15)

システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8
 
システムパフォーマンス勉強会#6
システムパフォーマンス勉強会#6システムパフォーマンス勉強会#6
システムパフォーマンス勉強会#6
 
社内機械学習勉強会 #5
社内機械学習勉強会 #5社内機械学習勉強会 #5
社内機械学習勉強会 #5
 
システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5システムパフォーマンス勉強会#5
システムパフォーマンス勉強会#5
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
 
システムパフォーマンス勉強会#1
システムパフォーマンス勉強会#1システムパフォーマンス勉強会#1
システムパフォーマンス勉強会#1
 
システムパフォーマンス勉強会 #0
システムパフォーマンス勉強会 #0システムパフォーマンス勉強会 #0
システムパフォーマンス勉強会 #0
 
ドメイン駆動設計勉強会発表
ドメイン駆動設計勉強会発表ドメイン駆動設計勉強会発表
ドメイン駆動設計勉強会発表
 
社内 DDD 勉強会 #5
社内 DDD 勉強会 #5社内 DDD 勉強会 #5
社内 DDD 勉強会 #5
 
社内 DDD 勉強会 #4
社内 DDD 勉強会 #4社内 DDD 勉強会 #4
社内 DDD 勉強会 #4
 
社内 DDD 勉強会 #3
社内 DDD 勉強会 #3社内 DDD 勉強会 #3
社内 DDD 勉強会 #3
 
社内 DDD 勉強会 #2
社内 DDD 勉強会 #2社内 DDD 勉強会 #2
社内 DDD 勉強会 #2
 
社内 DDD 勉強会第1回
社内 DDD 勉強会第1回社内 DDD 勉強会第1回
社内 DDD 勉強会第1回
 
SPIN で
SPIN でSPIN で
SPIN で
 

Google I/O 2016 報告会