Submit Search
勉強会資料Out ofmemory
Download as PPTX, PDF
3 likes
1,815 views
Nao Fujita
Androidでよくバグる BitmapがらみのOutOfMemoryについての資料です。
Technology
Read more
1 of 16
Download now
Downloaded 10 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
More Related Content
PDF
Canvas勉強会
Tsutomu Kawamura
PDF
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
PDF
㉗HTML5+jQueryでお絵かき
Nishida Kansuke
PDF
introduction to Marionette.js (jscafe14)
Ryuma Tsukano
PDF
新版 OutOfMemoryErrorを知る
Masahiro Hidaka
PPTX
初めてのAndroid開発
tanihiro
PDF
Tokyo GTUG Bootcamp2010
Takashi EGAWA
PDF
アプリリリース後に後悔しないための20のこと
leverages_event
Canvas勉強会
Tsutomu Kawamura
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
㉗HTML5+jQueryでお絵かき
Nishida Kansuke
introduction to Marionette.js (jscafe14)
Ryuma Tsukano
新版 OutOfMemoryErrorを知る
Masahiro Hidaka
初めてのAndroid開発
tanihiro
Tokyo GTUG Bootcamp2010
Takashi EGAWA
アプリリリース後に後悔しないための20のこと
leverages_event
Similar to 勉強会資料Out ofmemory
(20)
PDF
Android Lecture #04 @PRO&BSC Inc.
Yuki Higuchi
PDF
Android4.2徹底解剖!
leverages_event
PDF
Android gameprogramming
Masahiro Hidaka
PDF
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
youten (ようてん)
PPT
Android Hacks - 合宿 Activity
Masanori Ohkawara
PDF
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
Masafumi Terazono
PDF
Android api-levels
Kazuaki Ueda
PPTX
0720 abc seminar
Hiroshi Hayama
PDF
How to improve performance
Atsuko Fukui
PDF
函館IKA ICS開発情報
Masahiro Wakame
PPTX
Using the Fragments(Android)
Teruaki Kinoshita
PDF
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
mokelab
PDF
Android Lecture #03 @PRO&BSC Inc.
Yuki Higuchi
PPS
專訪李光耀
honan4108
PDF
Android0422
takahiko_takahashi
PPT
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
Kunimasa Noda
PDF
みゆっき☆Think#3 「androidに触ってみるよ!」
techtalkdwango
PDF
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
youten (ようてん)
PPTX
AI画像認識アプリ.pptx
ssuser3afcb9
PDF
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Yuki Anzai
Android Lecture #04 @PRO&BSC Inc.
Yuki Higuchi
Android4.2徹底解剖!
leverages_event
Android gameprogramming
Masahiro Hidaka
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
youten (ようてん)
Android Hacks - 合宿 Activity
Masanori Ohkawara
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
Masafumi Terazono
Android api-levels
Kazuaki Ueda
0720 abc seminar
Hiroshi Hayama
How to improve performance
Atsuko Fukui
函館IKA ICS開発情報
Masahiro Wakame
Using the Fragments(Android)
Teruaki Kinoshita
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
mokelab
Android Lecture #03 @PRO&BSC Inc.
Yuki Higuchi
專訪李光耀
honan4108
Android0422
takahiko_takahashi
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
Kunimasa Noda
みゆっき☆Think#3 「androidに触ってみるよ!」
techtalkdwango
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
youten (ようてん)
AI画像認識アプリ.pptx
ssuser3afcb9
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Yuki Anzai
Ad
勉強会資料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