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
Cybozu Android Dev Summit 2022 LT会 - Something ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
SiLeader
November 29, 2022
Programming
1.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cybozu Android Dev Summit 2022 LT会 - Something about storage on Android
元の動画
Everything about storage on Android
https://youtu.be/jcO6p5TlcGs
SiLeader
November 29, 2022
More Decks by SiLeader
See All by SiLeader
Cybozu Google I/O 2023 LT会 - WebAssembly
sileader
0
1.2k
Other Decks in Programming
See All in Programming
FDEが実現するAI駆動経営の現在地
gonta
2
260
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.8k
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
580
yield再入門 #phpcon
o0h
PRO
0
920
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
480
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.1k
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
330
Google Apps Script で Ruby を動かす
kawahara
0
130
「人を評価する AI」の設計と実装
ryoyanara
0
130
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
4
1.2k
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
210
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
360
Speed Design
sergeychernyshev
33
2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
420
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Color Theory Basics | Prateek | Gurzu
gurzu
0
410
Ruling the World: When Life Gets Gamed
codingconduct
0
290
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
A Soul's Torment
seathinner
6
3.3k
Transcript
Something about storage on Android™ Everything about storage on Android
https://youtu.be/jcO6p5TlcGs
ストレージの種類 内部ストレージ 外部ストレージ (Micro SD) • 他のアプリから隔てられている • 機密データの保持が可能 •
必ず存在する • サイズ制限が厳しいかもしれない • 機密データの保持はできない • 存在の確認が必要 • サイズ制限は厳しくない アプリ専⽤ ストレージ 共有ストレージ • 他アプリと共有するファイル • メディアやドキュメント • MediaStoreによる効率的なアクセス ⾃動的に削除
ストレージAPIの更新 • Scoped Storage • READ_EXTERNAL_STORAGE権限があればメディアファイルにアクセス可能 • メディアファイル: 画像、動画、オーディオファイルなど •
ドキュメントファイルはDocument pickerを介してアクセスが必要 • ドキュメントファイル: PDF、DOCXなど • Document Picker • ドキュメントファイルへのアクセスを提供 (SAFを使⽤) • ユーザーがファイルごとにアクセスを許可を制御可能 • WRITE_EXTERNAL_STORAGEの⾮推奨化 • MediaStore経由でファイルの書き込みが可能なため追加の権限は不要 • メディアファイルの位置情報が読めないようになった • この情報を読むために追加でACCESS_MEDIA_LOCATION権限が必要になった Android 10+
Photo picker • 写真などのメディアファイルを権限なしに選択 • ⾃動的に更新されるためコードの変更は不要 Android 11 (API Level
30)+ ファイルの選択 val picker = rememberForActivityResult(PickVisualMedia()) { uri -> if (uri != null) { selectedFiles.add(uri) } } picker.launch(PickVisualMediaRequest(PickVisualMedia.ImageAndVideo)) ファイル種類の指定 // 画像のみ picker.launch(PickVisualMediaRequest(PickVisualMedia.ImageOnly)) // 動画のみ picker.launch(PickVisualMediaRequest(PickVisualMedia.VideoOnly)) // MIMEタイプで指定 picker.launch(PickVisualMediaRequest(PickVisualMedia.SingleMimeType("image/png")))
プライバシーと透過性 • Androidではプライバシーと透過性が⼤幅に改善 • Photo pickerなどのUXも強化 • 権限が不要なAPIの追加 • アプリで追加で許可を得る必要をなくす
• ユーザーがアクセス許可を制御できる
出典と帰属 出典 • Everything about storage on Android • YouTube:
https://youtu.be/jcO6p5TlcGs • Photo picker • https://developer.android.com/training/data-storage/shared/photopicker 帰属 AndroidはGoogle LLCの商標です