Submit Search
Upload
勉強会資料Out ofmemory
•
Download as PPTX, PDF
•
3 likes
•
1,812 views
Nao Fujita
Follow
Androidでよくバグる BitmapがらみのOutOfMemoryについての資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 16
Download now
Recommended
Canvas勉強会
Canvas勉強会
Tsutomu Kawamura
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき
Nishida Kansuke
introduction to Marionette.js (jscafe14)
introduction to Marionette.js (jscafe14)
Ryuma Tsukano
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
Masahiro Hidaka
UI設計におけるスマートフォン対応のまとめ
UI設計におけるスマートフォン対応のまとめ
Tomoki Imatomi
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
画像を縮小するお話
画像を縮小するお話
technocat
Recommended
Canvas勉強会
Canvas勉強会
Tsutomu Kawamura
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき
Nishida Kansuke
introduction to Marionette.js (jscafe14)
introduction to Marionette.js (jscafe14)
Ryuma Tsukano
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
Masahiro Hidaka
UI設計におけるスマートフォン対応のまとめ
UI設計におけるスマートフォン対応のまとめ
Tomoki Imatomi
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
画像を縮小するお話
画像を縮小するお話
technocat
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
Tomo Ita
Data Visualization meetup 2017
Data Visualization meetup 2017
清水 正行
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
濱田 章吾
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Naoki Iwami
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
Takashi EGAWA
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
Yasuhito Yabe
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
go-thumber-imagick
go-thumber-imagick
Yo Ya
CG2013 03
CG2013 03
shiozawa_h
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
Atsushi Tadokoro
Viewのキャプチャを撮ってみる
Viewのキャプチャを撮ってみる
Yoshihiro Wada
Android Hacks - 合宿 Activity
Android Hacks - 合宿 Activity
Masanori Ohkawara
個人開発アプリの紹介と実装内容の概要
個人開発アプリの紹介と実装内容の概要
furusin
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Daisuke Ikeda
IBDesignable / IBInspectable で UIプロトタイピンガブル
IBDesignable / IBInspectable で UIプロトタイピンガブル
Masaki Oshikawa
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
Unity Technologies Japan K.K.
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
昌彦 飛騨
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
More Related Content
Similar to 勉強会資料Out ofmemory
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
Tomo Ita
Data Visualization meetup 2017
Data Visualization meetup 2017
清水 正行
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
濱田 章吾
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Naoki Iwami
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
Takashi EGAWA
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
Yasuhito Yabe
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
go-thumber-imagick
go-thumber-imagick
Yo Ya
CG2013 03
CG2013 03
shiozawa_h
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
Atsushi Tadokoro
Viewのキャプチャを撮ってみる
Viewのキャプチャを撮ってみる
Yoshihiro Wada
Android Hacks - 合宿 Activity
Android Hacks - 合宿 Activity
Masanori Ohkawara
個人開発アプリの紹介と実装内容の概要
個人開発アプリの紹介と実装内容の概要
furusin
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Daisuke Ikeda
IBDesignable / IBInspectable で UIプロトタイピンガブル
IBDesignable / IBInspectable で UIプロトタイピンガブル
Masaki Oshikawa
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
Unity Technologies Japan K.K.
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
昌彦 飛騨
Similar to 勉強会資料Out ofmemory
(20)
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
Data Visualization meetup 2017
Data Visualization meetup 2017
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Android sdk manual_1.02
Android sdk manual_1.02
Android sdk manual_1.02
Android sdk manual_1.02
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
go-thumber-imagick
go-thumber-imagick
CG2013 03
CG2013 03
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
iTamabi 13 第3回:iPhoneアプリ実践開発講座 1 画像ファイルの読み込み 画像でアニメーションを作成する
Viewのキャプチャを撮ってみる
Viewのキャプチャを撮ってみる
Android Hacks - 合宿 Activity
Android Hacks - 合宿 Activity
個人開発アプリの紹介と実装内容の概要
個人開発アプリの紹介と実装内容の概要
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
IBDesignable / IBInspectable で UIプロトタイピンガブル
IBDesignable / IBInspectable で UIプロトタイピンガブル
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
Recently uploaded
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
Recently uploaded
(8)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
勉強会資料Out ofmemory
1.
Hello Out of
Memory ナオシム Twitter @naosim_ Blog http://naosim.syoyu.net/
2.
背景 ・Androidはメモリ不足で良く落ちる ・その時出るエラーがOut of Memory ・原因のほとんどが画像がらみ ・一眼レフの画像とかマジやばい
3.
Out of Memoryで 落ちないように 勉強しておきま
しょう。
4.
どうすると落ちる? ・必要以上にデカイ画像を読み込 む ・使い終わったのに解放しない →意図的に「解放しないようにする ヤツはいない。
5.
ただ、 いつのまにか。。。 知らない間に。。。 実は。。。
6.
Out of Memory対策 ①画像ファイルの読み込み
– サイズを小さくする 1.Read サイズ小 →BitmapFactory.Options – 画質を落とす 低画質 →BitmapConfig null ②終了時 2.Finish – 画像を捨てる宣言をする →bmp.recycle(); – 参照をnullにする ポイ →drw.setCallback(null); mContext = null;
7.
サイズを落とす
アプリで使うサイズ 原寸大(1200x800) サムネイル(120x80) Androidにおける画像の取り扱い http://lablog.lanche.jp/archives/192
8.
BitmapFactory.Optionsでサイズを落とす
情報だけ取得 倍率セット 小さく 取 得
9.
Bitmap.Configで画質を落とす
通常は8ビッ ト おすすめ 565
10.
Bmp.recycle();で解放宣言
GC対象にな り易くする
11.
参照をnullにする これをやらないと Activityが解放されない かもしれない。
12.
Activityが消えない例 // ダメなプログラム Drawable mDrawable; @Override Public
void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ImageView imageView = new ImageView(this); if(mDrawable == null) { mDrawable = this.getResources().getDrawable(R.drawable.hoge); } 実は内部で imageView.setImageDrawable(mDrawable); mDrawable.setCallback(i setContentView(imageView); mageView)になって } る! ImageView Activityからの参照が消え ても Activity ImageViewからの参照が残 (Context) るので、 Drawable Activityが消えない
13.
Drw.setCallback(null); Drawable mDrawable; @Override Public void
onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ImageView imageView = new ImageView(this); if(mDrawable == null) { mDrawable = this.getResources().getDrawable(R.drawable.hoge); } imageView.setImageDrawable(mDrawable); setContentView(imageView); } // 解放する @Override Public void onStop() { super.onStop(); mDrawable.setCallback(null); }
14.
mContextに気をつけろ • あなたの作ったクラスでContextを扱う必
要がある場合 – できるだけメンバ変数では持たないようにす る – onStopとかでmContext = null;をする
15.
まとめ • いつの間にか無駄な読み込みがされない
ように気をつけよう。 • mContextを持つのは若干危険だから気を つけよう。
16.
時間があったら読むといいよー • Android4.0のソース
– https://github.com/naosim/android-15/ • ImageView – https://github.com/naosim/android- 15/blob/master/android/widget/ImageView.java – 351行, 597行 • Button – https://github.com/naosim/android- 15/blob/master/android/widget/Button.java
Download now