SlideShare a Scribd company logo
AndroidにおけるActivityの
管理の話をしよう
@chigichan24
Yakiniku LT #1
Lifecycle
https://developer.android.com/guide/components/activities/activity-lifecycle.html
Management Activity
こんな経験ありませんか?
Management Activity
バックグラウンドプロセスが
いつの間にか殺されている.
Lifecycle
https://developer.android.com/guide/components/activities/activity-lifecycle.html
Management Activity
バックグラウンドプロセスが
いつの間にか殺されている.
Management Activity
バックグラウンドプロセスが
いつの間にか殺されている.
Management Activity
バックグラウンドプロセスが
理由なく適当に殺されている.
Management Activity
バックグラウンドプロセスが
理由なく適当に殺されている.
Management Activity
バックグラウンドプロセスが
ある根拠にもとづいて殺されている.
chigichan24
Androidのプロセス管理はLinuxに学べ
Process管理
メモリが圧迫された時の挙動
Linux
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
Process管理 Linux
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Process管理 Linux
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Zone Allocator
Process管理 Linux
いわゆるページング,Swap領域の使用など.
同期可能ページ 破棄可能ページ
回収可能ページ スワップ可能ページ
Process管理 Linux
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Process管理 Linux
Slab Allocator
Shrink_slab( )
VFS上でのキャッシュや,各ファイルシステムのキャッシュを殺す.
VFS ex3 ex4 ...
キャッシュ キャッシュ キャッシュ
Shrink(	) Shrink(	)
Process管理 Linux
Slab Allocator
Shrink_slab( )
VFS上でのキャッシュや,各ファイルシステムのキャッシュを殺す.
VFS ex3 ex4 ...
キャッシュ キャッシュ キャッシュ
Shrink(	) Shrink(	)
コールバックとして登録
Process管理 Linux
Slab Allocator
Shrink_slab( )
VFS上でのキャッシュや,各ファイルシステムのキャッシュを殺す.
VFS ex3 ex4 ...
キャッシュ キャッシュ キャッシュ
Shrink(	) Shrink(	)
メモリヤバイから殺してw
Process管理 Linux
Slab Allocator
Shrink_slab( )
VFS上でのキャッシュや,各ファイルシステムのキャッシュを殺す.
VFS ex3 ex4 ...
キャッシュ キャッシュ キャッシュ
Shrink(	) Shrink(	)
メモリヤバイから殺してw
Process管理 Linux
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
OOM Killer
Process管理 Linux
OOM Score の高いプロセスを無慈悲に殺す
OOM Killer
Process管理 Linux
OOM Score の高いプロセスを無慈悲に殺す
OOM Killer
Process管理 Linux
OOM Score の高いプロセスを無慈悲に殺す
OOM Killer
Process管理 Linux
OOM Score の高いプロセスを無慈悲に殺す
アドホックに割りと適当に計算され,適当に殺される
OOM Killer
Process管理 Linux
OOM Score の高いプロセスを無慈悲に殺す
アドホックに割りと適当に計算され,適当に殺される
oom_killer(444) : oom_killerの値を多少考慮する.
oom_score_adj(644) : -1000~1000の値を設定する.
Process管理 Linux
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Process管理 Android
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Process管理
基本的にはLinuxの形式を用い,
部分的にAndroidに最適化をする.
Process管理 Android
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Process管理
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Android
Zone Allocator
Process管理
いわゆるページング,Swap領域の使用など.
同期可能ページ 破棄可能ページ
回収可能ページ スワップ可能ページ
Android
Zone Allocator
Process管理
いわゆるページング,Swap領域の使用など.
同期可能ページ 破棄可能ページ
回収可能ページ スワップ可能ページ
Android
AndroidではSwapは実質的に効かない.
Process管理
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
Android
Process管理
Slab Allocator
Shrink_slab( )
VFS上でのキャッシュや,各ファイルシステムのキャッシュを殺す.
VFS
キャッシュ
ex3
キャッシュ
Shrink(	)
ex4
キャッシュ
Shrink(	)
Android
Low
Memory
Killer
アプリ
Shrink(	)
Process管理
Slab Allocator
Shrink_slab( )
VFS上でのキャッシュや,各ファイルシステムのキャッシュを殺す.
VFS
キャッシュ
ex3
キャッシュ
Shrink(	)
ex4
キャッシュ
Shrink(	)
Android
Low
Memory
Killer
アプリ
Shrink(	)
Low Memory Killer
Process管理 Android
OOM Killerのように無慈悲に殺すのではなく段階的に殺す.
Androidでは(バックグラウンドなどのアプリ)はキャッシュと同等の扱い.
Low Memory Killer
Process管理 Android
OOM Killerのように無慈悲に殺すのではなく段階的に殺す.
Androidでは(バックグラウンドなどのアプリ)はキャッシュと同等の扱い.
Low Memory Killer
Process管理 Android
OOM Killerのように無慈悲に殺すのではなく段階的に殺す.
Androidでは(バックグラウンドなどのアプリ)はキャッシュと同等の扱い.
システムの空きページが19034以下のとき,oom_adjが 15以上のプロセスを殺す.
システムの空きページが15299以下のとき,oom_adjが 9以上のプロセスを殺す.
.
.
Low Memory Killer
Process管理 Android
OOM Killerのように無慈悲に殺すのではなく段階的に殺す.
Androidでは(バックグラウンドなどのアプリ)はキャッシュと同等の扱い.
システムの空きページが19034以下のとき,oom_adjが 15以上のプロセスを殺す.
システムの空きページが15299以下のとき,oom_adjが 9以上のプロセスを殺す.
.
.
Low Memory Killer
Process管理 Android
OOM Killerのように無慈悲に殺すのではなく段階的に殺す.
Androidでは(バックグラウンドなどのアプリ)はキャッシュと同等の扱い.
システムの空きページが19034以下のとき,oom_adjが 15以上のプロセスを殺す.
システムの空きページが15299以下のとき,oom_adjが 9以上のプロセスを殺す.
.
. こいつを外からいじる
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
ActivityManagerService.java
lmkd
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
ActivityManagerService.java
lmkd
Activityの状態(正確にはActivityStack)を管理
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
ActivityManagerService.java
lmkd
init.rcからforkされているので
root権限ありドライバ
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
Shrink_slab( )
ActivityManagerService.java
lmkd
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
Shrink_slab( )
ActivityManagerService.java
lmkd
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
Shrink_slab( )
ActivityManagerService.java
lmkd
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
ActivityManagerService.java
lmkd
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
ActivityManagerService.java
lmkd
-17 ~ 16の範囲の値
Process管理 Android
Low Memory Killer
Shrink(	)
process
oom_adj
process
oom_adj
process
oom_adj
ActivityManagerService.java
lmkd
-17 ~ 16の範囲の値
値 のupdate
Process管理 Android
ActivityManagerService.java
ActivityManagerServiceの-17 ~ 16の範囲の値は
android/server/am/Process.javaに様々な状態のadj(定数値)が保存されている.
16 最も削除して良いもの
15~9 キャッシュされているアプリ
8 あまりに活動していないSDKのservice
7 1つ前にユーザーが使っていたアプリ
6 ホームアプリ
5 SDKのserviceを含むプロセス
3 バックアップ実⾏中プロセス
0 現在前⾯に出ているアプリ
-11 永続化サービス
-16 システムプロセス
-17 ActivityManagerServiceが管理していないネィティブプロセス
Process管理 Android
OOM Killer
Slab Allocator
Zone Allocator
強制度 : 高
強制度 : 低
メモリが圧迫された時の挙動
Userも触れる
Kernelがよしなに
まとめ
https://developer.android.com/guide/components/activities/activity-lifecycle.html
まとめ
https://developer.android.com/guide/components/activities/activity-lifecycle.html
oom_score_adjという仕組み
まとめ
https://developer.android.com/guide/components/activities/activity-lifecycle.html
lowmemorykiller
結論
root権限を取って
minfreeとadjを書き換えよう!
LowMemoryKiller.c や
ActivityManagerService.javaの
コードを読もう!
参考
Androidを支える技術Ⅰを買わずに先にⅡを買ってしまった
Androidおすすめ(これから読む)本
Kotlin in Actionの訳本が10月末に出ます. 様々な設計法を網羅した本が出ます.
宣伝
Cyderと私はAndroidエンジニアを探しています(公私混同)

More Related Content

What's hot

フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanItsuki Kuroda
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppTomomitsuKusaba
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術dena_study
 
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT  (ver. 2)Try new transport protocol SRT  (ver. 2)
Try new transport protocol SRT (ver. 2)Tetsuyuki Kobayashi
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理KageShiron
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainerYuta Matsumura
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発m ishizaki
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころTakuto Wada
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説するTaishiYamada1
 
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するOCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するKohei Tokunaga
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】DeNA
 
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy"Simple Made Easy" Made Easy
"Simple Made Easy" Made EasyKent Ohashi
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 

What's hot (20)

フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT  (ver. 2)Try new transport protocol SRT  (ver. 2)
Try new transport protocol SRT (ver. 2)
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する
 
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するOCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 
"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy"Simple Made Easy" Made Easy
"Simple Made Easy" Made Easy
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 

Recently uploaded

Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubK Kinzal
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例Kurata Takeshi
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料Toru Miyahara
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Toru Miyahara
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料Toru Miyahara
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介miyp
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上mizukami4
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題についてMasatsugu Matsushita
 

Recently uploaded (8)

Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 

AndroidにおけるActivity管理の話