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
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
Search
Ryosuke Shimizu (RIO)
May 15, 2026
Programming
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
Ryosuke Shimizu (RIO)
May 15, 2026
More Decks by Ryosuke Shimizu (RIO)
See All by Ryosuke Shimizu (RIO)
KMP × Kotlin 2.3 - How Android Got Slower While iOS Builds Improved by 47%
rio432
0
660
KMP✖️Unity UaaL で月1,200件の自動PR -マルチリポ開発の課題と解決
rio432
0
69
Google Map with KMP
rio432
0
330
CameraXが変えるモバイル検索: 最新動向と実用的アプローチ
rio432
0
30
Kotlin Multiplatform でのリソース共有について
rio432
0
59
Other Decks in Programming
See All in Programming
えっ!!コードを読まずに開発を!?
hananouchi
0
230
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.6k
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
130
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
240
What's New in Android 2026
veronikapj
0
140
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
110
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
150
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
280
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
210
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
180
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
330
Accessibility Awareness
sabderemane
1
160
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Abbi's Birthday
coloredviolet
3
8.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
We Are The Robots
honzajavorek
0
280
Tell your own story through comics
letsgokoyo
1
1k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
550
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
We Have a Design System, Now What?
morganepeng
55
8.2k
Transcript
RIO (Ryosuke Shimizu) UaaL×Androidアプリ のメモリ計測 Memory Profilerの先へ
Self Introduction My name is RIO @rioX432 ・Disney ・Chiikawa ・HoloLive
・Game Streaming ・Comfy UI etc RIO / Mobile App Engineer Avvy Avatar Live Streaming App
Avvyでのアバター描画の技術 Unity:一番下のレイヤーでアバターの レンダリングのみを担当 NativeUI:その上にオーバーレイ グレー:Unityのアバターの描画領域 黄色:Nativeのオーバーレイ Face Tracking iOSはARKit、AndroidはMediaPipe UaaLでUnityのアバター&背景を描画
AnotherBall Tech Blogより引⽤
5 Repository Structure Android / iOS / KMP / Unity
/ Unity SPM
Unity as a Library (UaaL) とは ネイティブアプリにUnityの描画エンジンを埋め込む - Unityのレンダリングエンジンをライブラリとしてネイティブアプリに組み込む技術 -
UI はネイティブ (Compose / SwiftUI)、3D/AR描画だけUnityが担当 - Unityランタイムがアプリと同一プロセスで動く → メモリも共有 採用アプリ例 : - Mirrativ — 3Dアバター配信 - REALITY — バーチャル配信 - ZOZO — 3D仮想試着 - NAVITIME — ARナビ 公式対応: Android (Kotlin/Java) / iOS (Swift/ObjC) Flutter / React Native もコミュニティパッケージ経由で利用可能 https://github.com/juicycleff/flutter-unity-view-widget https://pub.dev/packages/flutter_embed_unity https://github.com/azesmway/react-native-unity
アバター表⽰時のメモリ使⽤量 Memory Profilerでは中⾝が⾒えない
Live Telemetryでは全体の1.2GBと大まかな分類は見える。しかし Graphics 430MB / Others 470MB の中身は分解できない
+826MBの正体 GPU 44% / Unity CPU 43% — Java Heapはほぼゼロ
- GL mtrack (GPU textures) と Unknown (unclassified by OS) が二大要因 - Java Heap の増加はわずか +2MB
dumpsys meminfo で全体を⾒る adb shell dumpsys meminfo <package> dumpsys meminfoならGraphics/Othersの中身を
GL mtrack・EGL mtrack・Unknownに分解できる
まとめ 1. adb shell dumpsys meminfo <package> — アプリ全体のメモリ構造を把握 2.
adb shell dumpsys gpu — GPUメモリの実使⽤量を確認 3. Unity Profiler / SRDebugger — Unity内部のCPU側メモリ配分を確認 Memory Profilerだけでは「Graphics 430MB」の中⾝が⾒えない NDKやネイティブライブラリを含むアプリ全般に応⽤可能 3つの計測⼿段を使い分ける
「Avvyチーム、⾯⽩そうだな」と 思ったそこのあなたに! Avvyはまだ⾛り始めたばかりのサービスです。 今だからこそ挑戦できること、作っていける価値が 本当にたくさんあります。 あなたのご応募をお待ちしております。 おわりに 募集中のポジションの確認、応募は こちらのリンクから! https://anotherball.notion.site/open-positions