Local blog for Japanese speaking developers
クラウド ART 最適化プロファイルによるアプリのパフォーマンス改善
2019年4月24日水曜日
この記事は
ソフトウェア エンジニア、Calin Juravle
による Android Developers Blog の記事 "
Improving app performance with ART optimizing profiles in the cloud
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android Pie で、
Play Cloud ART 最適化プロファイル
をリリースしました。これは、新しくインストールまたはアップデートしたアプリの起動時間を大幅に高速化する新たな最適化機能です。さまざまな端末を平均すると、アプリの起動(コールド スタートアップ)が 15% 高速になることがわかりました。特に効果が大きいケースでは、起動時間が 30% 以上短縮されています。この機能の特に重要な側面は、無償で利用でき、ユーザーもデベロッパーも何もする必要がないことです。
出典: Google 内部データ
Play Cloud ART 最適化プロファイル
この機能は、以前の
プロファイルに基づく最適化
(PGO)がベースになっています。PGO は、
Android 7.0 Nougat
で導入された機能です。アプリで最も重要なホットコードのプロファイルを作成し、それを元に集中的な最適化を行うことで、Android ランタイムがアプリのパフォーマンスを改善できるようにしています。これにより、完全にコンパイルされたアプリがメモリやストレージに与える従来からの影響を削減しつつ、大きな改善を行うことができます。しかし、コード プロファイルに基づくアプリの最適化は、アイドル状態でメンテナンス モードになっている端末によって行われます。つまり、ユーザーが改善を確認できるのは、数日後になる場合があります。私たちは、この点を改善したいと考えてきました。
出典: Google 内部データ
Play Cloud ART 最適化プロファイル
は、Android Play を活用することで、インストールおよびアップデート時の PGO によるあらゆるメリットを利用できるようにしています。これにより、大半のユーザーは一切待つことなく、パフォーマンス改善のメリットを得られるようになります!
この考え方の元になったのは、次の 2 つの見解です。
通常、アプリにはよく使われるコードパス(ホットコード)がたくさんあります。これは多くのユーザーや端末で共通しており、起動や重要なユーザーパスに使われるクラスがこれに該当します。多くの場合、数百件ほどのデータを集めれば、これを発見できます。
通常、アプリのデベロッパーは徐々にアプリをロールアウトし、
アルファ版やベータ版チャンネル
から対象を拡大していきます。アルファ版やベータ版がなくても、多くのユーザーがアプリの新しいバージョンを利用します。
つまり、アプリの初期ロールアウトを使って、その他のユーザーのパフォーマンスを向上させることができます。ART は、アプリのコードのどの部分を最適化するべきかを最初の端末群で分析し、そのデータを Play Cloud にアップロードします。Play Cloud は、中核となる部分を集約したコード プロファイル(すべての端末に関連する情報を含むもの)を作成します。十分な情報が集まると、コード プロファイルが公開され、アプリの APK とともにインストールされるようになります。
端末側では、このコード プロファイルを元に、インストール時にプロファイルが指示する効率的な最適化を行います。この最適化によって、
コールド スタートアップにかかる時間
が短縮され、定常状態のパフォーマンスも向上します。アプリのデベロッパーは、コードを 1 行も書く必要はありません。
ステップ 1: コード プロファイルを作成する
主な目的の 1 つは、アプリのパフォーマンスを正確に最適化できるだけの十分なデータを集めつつ、匿名の集計データから質の高い確実なコード プロファイルをできるだけ早く作成することです(これによって、最大限のユーザーがメリットを受けることができるようになります)。サンプリングするデータが多すぎると、インストール時に必要になる帯域幅や時間が増加します。さらに、コード プロファイルの作成に時間をかけるほど、メリットを受けることができるユーザーの数は少なくなります。サンプリングするデータが少なすぎると、有意義な最適化を行えるだけの情報がコード プロファイルに含まれないことになります。
この集計結果は、コアコード プロファイルと呼んでいます。これには、端末ごとにランダムに取得したサンプル セッションで頻繁に登場したコードに関する匿名データのみが含まれます。大半のユーザーに関係するコードを重視できるように、異常値は省きます。
実験の結果から、特によく使われるコードパスはかなり短い時間で計算できることがわかっています。つまり、大半のユーザーがメリットを受けられるように、十分早い段階でコード プロファイルを作成できるということです。
* データは Google アプリの平均値、出典: Google 内部データ
ステップ 2: コード プロファイルをインストールする
Android 9.0 Pie で、新しいタイプのインストール アーティファクトである dex メタデータ ファイルを導入しました。APK と同様に、dex メタデータ ファイルも通常のアーカイブです。ここには、クラウドで作成したコアコード プロファイルなど、APK をどう最適化すべきかを表すデータが含まれています。重要な違いとして、dex メタデータはプラットフォームとアプリストアのみによって管理され、デベロッパーは直接参照できないという点があります。
アプリバンドルと Google Play ダイナミック配信
もビルトインでサポートされています。つまり、デベロッパーが何もしなくても、アプリの全機能が分割されて最適化されます。
ステップ 3: コード プロファイルを使ってパフォーマンスを最適化する
コード プロファイルによってパフォーマンスが向上する理由を理解するために、コード プロファイルの構造を確認してみましょう。コード プロファイルには、以下の情報が含まれています。
起動時に読み込まれるクラス
ランタイムが最適化した方がよいと考えるホットメソッド
コードのレイアウト(例: 起動時や起動後に実行されるコード)
この情報を利用すれば、さまざまな最適化技術を利用できます。その中から、特に効果の高い 3 つについて説明します。
アプリイメージ
:
起動クラスを使って、初期化済みのクラスデータを格納したヒープ(アプリイメージと呼びます)を作成します。アプリが起動する際は、イメージを直接メモリにマッピングし、すべての起動クラスをすぐに利用できるようにします。
アプリを実行する際に毎回行う作業が必要なくなるので、必要になるサイクルが減少するメリットがあります。これによって、起動時間を短縮できます。
コードの事前コンパイル:
ホットコードはすべて事前コンパイルします。アプリが実行されるとき、コードの最も重要な部分は既に最適化され、ネイティブで実行できるようになっています。アプリが JIT コンパイラの起動を待つ必要はなくなります。
JIT のダーティメモリと比べて、コードがクリーンなメモリにマッピングされるので、全般的なメモリの効率が上がるメリットがあります。メモリの使用率が高くなった場合、カーネルはダーティーなメモリを解放しませんが、クリーンなメモリは解放する場合があります。そのため、カーネルがアプリを終了させる可能性が少なくなります。
dex レイアウトの効率化:
プロファイルが公開するメソッド情報に基づいて、dex バイトコードを再編成します。dex バイトコードのレイアウトは、[起動コード、起動後コード、プロファイルされていない残りのコード] という形になります。
dex バイトコードをメモリに読み込む効率が大きく向上するメリットがあります。メモリページの使用率が上がるとともに、すべてが 1 か所にまとまっているので、読み込みや I/O の量も少なくなります。
改善結果と見解
昨年末、Play ストアのすべてのアプリに対してクラウド プロファイルをリリースしました。
3 万個以上のアプリが改善
さまざまな端末の平均でコールド スタートアップが 15% 高速化
多くのトップアプリが 20% 以上(例: Youtube)、一部の端末では 30%(例: Google 検索)高速化
Android Pie にインストールされるアプリの 90% 以上がプロファイルを取得
追加の最適化によるインストール時間の増加はほとんどない
すべての Pie 端末で利用可能
非常に興味深いのは、ART が平均で約 20% のアプリのメソッドをプロファイルしていることです(実際のコードのサイズで数えれば、それ以下になります)。プロファイルがカバーするのはコードの 2% だけというアプリもある一方、最大で 60% に達するアプリもあります。
出典: Google 内部データ
なぜこれが重要なのでしょうか。これが意味するのは、ランタイムはアプリのコードの大半を見ていないため、コードを最適化しようとしないということです。有効なユースケースでコードが実行されない(例: エラー処理や下位互換性のためのコード)場合も多いですが、使われていない機能や不必要なコードによるものもあるかもしれません。このような偏りが見られることから、さらなる最適化(例: 不要な dex バイトコードを削除することによる APK のサイズ削減)を行うにあたっては、後者が非常に重要や役割を果たす可能性が高いことがわかります。
今後の開発
私たちは ART 最適化プロファイルによる改善をとても嬉しく思い、今後もさらにこの考え方を発展させたいと考えています。アプリごとにコードのプロファイルを作成することで、さらにアプリを改善するチャンスが生まれます。デベロッパーがデータを活用すれば、エンドユーザーに関連する重要なポイントを踏まえてアプリを改善できます。プロファイルで収集した情報を使ってコードを再編成したり、余分な部分を取り除いて効率化することもできます。アプリバンドルによって利用状況に基づいて機能を分割し、不要なコードがユーザーに届かないようにすることもできるでしょう。アプリの起動時間は既に大幅に短縮されています。今後も、ユーザーのためによりよいエクスペリエンスを提供しつつ、プロファイルによるメリットを強化してデベロッパーの皆さんを支援したいと考えています。
Reviewed by
Yuichi Araki - Developer Relations Team
ラベル
.app
1
.dev
1
#11WeeksOfAndroid
13
#11WeeksOfAndroid Android TV
1
#Android11
3
#DevFest16
1
#DevFest17
1
#DevFest18
1
#DevFest19
1
#DevFest20
1
#DevFest21
1
#DevFest22
1
#DevFest23
1
#hack4jp
3
11 weeks of Android
2
A MESSAGE FROM OUR CEO
1
A/B Testing
1
A4A
4
Accelerator
6
Accessibility
1
accuracy
1
Actions on Google
16
Activation Atlas
1
address validation API
1
Addy Osmani
1
ADK
2
AdMob
32
Ads
72
Ads API
131
ads query language
2
ads scripts
2
ads search
1
advanced markers
1
Advanced Protection Program
3
AdWords API
25
adwords scripts
2
aerial view api
1
Agency
1
AI
19
AIY
3
AIY Vision Kit
2
ALPN
1
AMP
120
AMP Cache
9
AMP Camp
2
AMP CSS
1
AMP Extension
1
AMP Fest
1
AMP for Email
4
AMP Optimizer
1
AMP Packager
1
AMP Playground
1
AMP Plugin
1
AMP SSR
1
AMP Story
4
AMP Toolbox
1
amp-bind
1
amp.dev
1
AMPHTML Ads
1
Analytics
9
Andorid
12
Android
400
Android 10
1
Android 11
20
Android 11 Compatibility
1
Android 11 final release
1
Android 11 meetups
1
Android 9
1
android api
1
Android App Bundle
1
Android App Development
23
Android Architecture
1
Android Architecture Components
1
Android Auto
1
Android Design Support Library
1
Android Developer
14
Android Developer Story
4
Android Developers
13
Android Enterprise
6
Android for cars
2
Android Go
1
Android Jetpack
6
Android N
18
Android O
14
Android Open Source Project
1
Android P
7
Android Pay
1
android privacy
1
Android Q
13
Android Ready SE Alliance
1
android security
5
Android Security Year in Review
1
Android StrongBox
1
Android Studio
47
Android Studio 4.1
1
android study jam
1
Android Support Library
6
Android Things
15
Android Tools
2
Android TV
11
Android Vitals
4
Android Wear
29
android11
6
androidmarket
3
androidstudio
1
AndroidX
6
Angular
2
Angular 2
2
AngularJS
2
Announcements
2
Anthos
2
antmicro
1
AoG
1
aosp
1
API
28
APIExpert
45
apk
2
APM
1
app
3
App Action
1
App Bundle
2
app check
1
app engine
24
App Indexing
7
App Invites
6
App Maker
2
App modernization
1
AppCompat
2
Apps Flutter eBay
1
Apps Script
12
AppSheet
1
aprilfool
4
AR
3
Architecture Components
7
ARCore
3
ArtTech
1
asset-based extensions
2
assets
1
Associate Android Developer Certificate
1
Attribution Reporting
1
Audio
7
Auth Code
1
Authentication
9
AuthSub
2
Autofill
5
AutoML
1
Autotrack
2
award
1
Awareness API
1
basemap
1
basic-card
1
Beacons
6
bento
2
BERT
1
Best Practices
1
beta
4
Better Ads Standards
3
BigQuery
10
Billing
1
Biometrics
1
BLE
4
Blink
1
Blockly
1
blogger
1
BodyPix
1
bootcamp
1
Brillo
1
Brotli
2
Budou
1
budoux
1
Buildbetterapps
2
C++
1
Calendar
3
call ads
1
campaign
2
campaignsharedset
1
Campus
1
Canvas
1
Cardboard
4
Career
1
Case Study
3
CCPA
1
CDS 2020
3
CDS Recap 2020
3
Certificate
8
changestatus
1
chrome
261
chrome 98
1
Chrome Apps
1
Chrome Custom Tab
4
Chrome Dev Summit
5
chrome extension
14
Chrome for Android
2
Chrome for iOS
3
Chrome OS
10
Chrome Root Program
1
Chrome Root Store
1
Chrome Tech Talk Night
4
chrome103
1
chrome104
1
chrome108
1
chrome90
1
Chromebook
5
Chromecast
7
chromewebstore
9
Chromium
20
CLI
1
ClientLogin
3
Closure Compiler
1
Cloud
28
Cloud AI Platform
2
Cloud Firestore
5
Cloud Functions
9
Cloud IoT Device SDK
1
cloud messaging
1
Cloud ML Summit
1
Cloud Next
19
Cloud OnAir
5
Cloud OnBoard
4
Cloud PubSub
1
Cloud Run
1
Cloud Storage
1
Cloud Study Jams
3
Cloud Summit
1
Cloud Test Lab
2
Cloudflare
1
CNN
1
Coalition for Better Ads
2
CocoaPods
1
code review
1
codejam
5
codelab
5
Codepen
1
Colaboratory
1
Common Criteria
1
Community
6
compatibility
1
Compose
1
compose camp
1
compute engine
3
consent
1
Contests
1
Context
1
controls
1
Conversation API
1
conversations
2
conversion
1
Cookie
10
Coral
3
core web vitals
1
COVID-19
2
Crash Reporting
2
Crashlytics
3
cryptography
1
Custom Element
1
Custom Model
1
CWV
2
dark theme
1
Dart
2
DataCenter
1
datacloudsummit
1
Daydream
4
deck.gl
2
Deep Learning
4
Delegation
1
Demo Party
1
Design Patterns
1
Design Sprint
3
DesignBytes
1
Designer
1
DevArt
3
DevBytes
6
Developer
15
Developer Console
4
Developer Library
1
Developer Preview
6
Developer Relations
3
Developer Review
1
Developer Student Club
1
DEVELOPERS
1
Developers Story
4
DevFest
12
DevFestX
3
DevOps
1
devtools
4
Dialogflow
1
Differential privacy
2
Digital Asset Links
1
Digital Goods API
1
directions api
1
DirectShare
1
Discover
1
distance matrix api
1
DNS-over-HTTPS
4
Domain
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
DSA
1
DSC
1
DX
1
Dynamic Links
3
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
4
Edge
1
egypt
1
encoder
1
Encryption
1
English
2
environment api
1
Envoy
1
error
1
ES2015
1
ES2016
1
ES6
2
ES7
1
eta
1
Event
7
events
3
extensions
1
external
1
Featured
25
Feed
2
feed-based extensions
3
feeds
1
FIDO
7
filter
1
final release
1
Firebase
123
Firebase Admin SDK
6
Firebase Analytics
10
Firebase Auth
4
Firebase Cloud Messaging
10
Firebase Crashlytics
2
Firebase Database
5
firebase for games
1
Firebase Libraries
1
Firebase Notifications
1
Firebase Performance
3
Firebase Remote Config
6
firebase summit
1
Flash
1
FLEDGE
1
FLoC
2
Flutter
8
Flutter App Development
1
flutter3
1
font
3
fraud
1
G Suite
19
game
43
Game Developers Conference 2018
1
Game Developers Conference 2019
1
Game Development
1
gaming
1
gaql
8
Gboard
2
gc_datacloud
1
GCCN
1
GCP
17
GCPUG
1
GDC
1
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
22
GDG Cloud
1
gdsc
4
Gemini
5
Gemma
1
generative AI
4
Geo
55
Gingerbread
1
GLIDE
5
global foundries
1
Gmail
6
Gmail API
3
Go
1
Go Checksum Database
1
golang
5
goo.gl
1
Google
8
Google account
1
Google Analytics
4
Google API
2
Google Apps
14
Google Apps Script
4
Google Assistant
13
Google Assistant SDK
2
Google Binary Transparency
1
Google Cast
8
Google Chat
3
Google Cloud
49
Google Cloud Day
10
google cloud innovators
2
Google Cloud INSIDE Digital
2
Google Cloud INSIDE Games & Apps
9
Google Cloud INSIDE Media
1
Google Cloud INSIDE Retail
3
Google Cloud Messaging
11
google cloud next
4
google cloud next tokyo
3
Google Cloud Platform
16
Google Code-in
1
Google Dev Library
1
Google Developer Experts
2
google developer groups
1
google developer student clubs
1
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
2
Google Drive
6
Google Earth
1
Google Fit
2
Google for Games
3
Google for Mobile
2
Google for Startups
8
Google for Work
1
Google I/O
26
Google I/O 2024
3
Google Identity Services
6
Google Impact Challenge
1
Google Maps
72
Google Maps Platform
91
Google Meet
1
Google ML Summit
2
Google Open Source Peer Bonus
1
Google Pay
6
Google Photo
1
Google Play
148
Google Play App Safety
1
Google Play Billing
1
Google Play Console
15
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Game Services
10
Google Play Instant
1
Google Play Services
23
Google Play Store
1
Google Play アプリ署名
1
Google Plus
14
Google Search
8
Google Sheets API
3
Google Sign-In
17
Google Slides API
5
Google Summer of Code
1
Google Tag Manager
1
Google Tensor
1
Google Trust Services
3
Google マップ
4
google_ads_api_v6
1
Google+
2
Googleapps
10
GoogleCloud
5
GoogleCloudDay
5
GoogleCloudInside
1
googlecloudlearn
1
googlecloudnext
2
GoogleGames
1
GoogleI/O
31
GoogleLabs
1
GooglePlay
3
GoogleTV
1
GPS
1
Gradle
1
Growth Academy
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
7
handson
1
Hangouts Chat
3
hardware
2
Hosting
3
hotel
1
How-To Guide
1
HTML5
17
HTML5Rocks
1
HTTP/2
5
HTTPS
19
I/O Extended
7
ID Token
1
Identity
18
Identity Toolkit
1
IGF2010
4
IGF2020
2
Ignite
4
Imagen 2
1
IME
12
Indie Game
7
Indie Games Festival
7
Indie Games Festival 2018
2
Indie Games Festival 2019
12
Indie Games Festival 2020
7
Industry Trends
1
Inevitable ja Night
30
innovators hive
2
Insights
1
Instagram
1
Instant Apps
6
intern
2
Invites
1
IO19
3
iOS
22
IoT
7
IPv6
1
Issue Tracker
2
IWD
1
Japanese
6
Japanese Developer
1
Japanese Input
1
java
1
JavaScript
13
Jetpack
5
Jetpack Compose
6
Journeys
1
K-12
1
Kaggle
1
Key Transparency
1
Knowledge Graph
1
Kotlin
25
Kotlin Android Extensions
1
kotlin api
1
Kotlin Beginners
3
Kotlin Vocabulary
2
Kubernetes
4
l10n
8
latest
18
latest news
1
launch
1
LaunchPad
2
Learn
1
lifull
1
Lighthouse
1
LINE
1
Local AI
1
Location
1
Lollipop
10
Machine Learning
32
MAD Skills
2
MADSkills
2
Maker Faire Tokyo
1
maps compose
1
maps embed api
1
Maps JavaScript API
5
maps on air
1
maps sdk
2
maps transportation
1
Marshmallow
10
Material
1
Material Design
31
MDL
2
MDN
1
MediaPipe
1
Messaging
1
metrics
1
MIDI
2
migration
1
mikan
1
Mixed Contents
4
ML
3
ML Kit
12
mlops
1
Mobile
15
Mobile Bootcamp
4
mobile optimized maps
1
Mobile Sites certification
1
Mobile Vision
4
mod_pagespeed
1
Model Maker
1
monetization
2
monetize
3
Mozc
15
Music
1
NativeDriver
2
NativeScript
1
Navigation
1
NBU
1
ndk
3
Nearby
5
News
1
Next Extended
1
Next Tokyo
4
Nexus
2
Nexus S
1
NFC
1
NIST
1
Node.js
3
notifications
2
Noto CJK
1
Now in Android
13
NPAPI
2
NPN
1
oauth
17
officehour
1
One Tap
2
online security
2
open silicon
2
open source
9
OpenAI
1
opencensus
1
opencloudsummit
1
OpenGL
4
OpenID
3
OpenID Connect
4
OpenSocial
1
opensource
20
OpenTitan
1
Optimization
1
OSV
1
p-max
3
Page Experience
1
passkey
3
Password Manager
4
Payment
8
Payment Handler API
1
Payment Request API
2
PDF
1
PEM
33
people
2
People API
3
Performance
16
Performance budget
1
performance max
1
Performance Monitoring
1
performance report
1
permissions
1
personalization
1
PersonFinder
1
Phishing
2
phone
1
photorealistic 3d tiles
1
Physical Web
3
Pi
1
Pixel
4
Place Picker
1
placements
1
places api
1
places SDK
1
Platform Stability
1
Play Billing
2
Play Billing Library
2
Play Console
2
Player Analytics
4
Playtime 2017
1
Policy
8
policy compliance
2
policy violations
2
polylines
1
Polymer
7
pricing
1
privacy
15
Privacy Sandbox
22
Progressive Web Apps
14
project hosting
1
Promise
2
Promo code
1
Protocol Buffers
1
PRPL
1
publicdata
1
Push API
1
Push Notification
6
PWA
4
Python
3
query builder
8
query validator
1
QUIC
2
quick builder
1
quick start widget
1
QWIKLABS
3
RAIL
1
raspberry pi
1
React
1
React Native
2
reactive programming
1
Realtime Database
9
Recap Live Japan 2019
3
reCaptcha
1
Redux
1
release
7
Remote Config
4
Remote Display API
1
Reporting API
1
Requirements
1
Resonance Audio
1
resource type
1
Rewarded Video Ads
2
RKP
1
rmf
2
routes api
3
RSS
1
Run on OS Login
1
Runtime Permission
1
Rust
2
Safe Browsing
4
safety
1
Sample Code
2
Santa Tracker
1
SBOM
1
schedule
1
schema
2
schema.org
1
Scorecards
1
script
2
SDG
1
sdk
1
search central
1
secur
1
Secure Element
1
security
92
selfie
1
Service Worker
4
SHA-1
1
Sigstore
4
silicon
3
Site Isolation
1
sketchup
1
skywater
1
SLSA
1
smart displays
1
smart home
1
smart shopping campaign
1
SmartLock for Passwords
5
social
4
Social Good
1
Social Media
1
software development
1
solution challenge
2
Solve
1
SPDY
3
speak2tweet
1
speaker
1
Spectre
2
speedometer
1
Spreadsheet
3
ssc
1
ssd
1
SSR
1
stable release
1
startup
7
Storage
3
store sales direct
1
story
2
streetview
3
Study Jams
12
subscriptions
5
sunset
10
Swift
2
SwiftShader
1
Symantec
1
tag
1
tapple
1
Task
4
Team Drive
1
techtalk
13
TensorFlow
43
TensorFlow Federated
1
TensorFlow Lite
8
TensorFlow Object Detection API
1
TensorFlow Probability
2
TensorFlow.js
4
test
4
Test Lab
6
TF Certificate
2
TFX
1
The Fast and the Curious
13
Titan M2
1
Titan Security Key
1
TLS
4
Topics
1
ToS
1
trace
1
Transliteration
1
Transparency
1
Trust
1
Trusted Web Activity
1
Trusty OS
1
TrustZone
1
Twitter
1
UA-CH
1
Udacity
20
Unity
3
update
1
usecase
1
User Agent string
2
UX
5
v10
2
v10.1
1
v11
1
v13
1
v15
1
v3
1
v4
1
v5
1
v6.1
1
v7
2
V8
5
v9
1
valuetrack
1
Verifiable Design
1
vertex ai
1
Vision AI
1
VP9
1
VR
11
Vulkan
2
wafer
1
Watch Face
2
wave
2
Wear OS
3
Weave
1
Web
37
Web Animations
1
Web Components
9
Web Manifest
2
Web Packaging
3
Web Stories
3
Web Story
3
Web Vitals
7
web.dev
1
WebAssembly
6
WebAuthn
1
WebGL
5
Webhook
1
WebM
1
WebMusic
5
WebRTC
1
WebView
1
Windows
1
Women in Gaming
1
Women Techmakers
1
Women Techmakers Scholars Program
1
WomenDeveloperAcademy
1
Wordpress
2
workmanager
1
WTM
8
Xcode
1
YouTube
18
YouTube API
1
youtube select
1
インタビュー
1
コードサンプル
1
サプライ チェーン
1
プライバシー
1
機械学習
3
言論の自由
1
節電
3
定期購入
1
東日本大震災
9
日本語入力
41
ブログ アーカイブ
2024
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2023
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2022
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2021
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2020
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2019
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2018
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2017
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2016
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2015
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
2014
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2013
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2012
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2011
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2010
12月
11月
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"