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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
SiLeader
November 29, 2022
Programming
1.1k
0
Share
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.1k
Other Decks in Programming
See All in Programming
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.2k
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
220
実践CRDT
tamadeveloper
0
220
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
720
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.5k
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
210
おれのAgentic Coding 2026/03
tsukasagr
1
130
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3k
PDI: Como Alavancar Sua Carreira e Seu Negócio
marcelgsantos
0
100
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4.8k
Java 21/25 Virtual Threads 소개
debop
0
330
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
250
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
670
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
160
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
790
How GitHub (no longer) Works
holman
316
150k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Pragmatic Product Professional
lauravandoore
37
7.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
The untapped power of vector embeddings
frankvandijk
2
1.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building an army of robots
kneath
306
46k
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の商標です