素人のアンドロイドアプリ開発日記

out of memoryについて端末の依存状況

2012.05.10

このブログにて、何度かメモリについて取り扱ってきたのですが、

今回は、端末の責任を書きます。

 

メモリを見ると100Mとか200Mとか余っててもバカスカ落ちる端末がいます。

この場合、アプリが100MBとか、そういう責任ではないのです。

 

androidのアプリにheapと言うのがあるようで、

楓 software

を参考にさせてもらうと

下は24MBで上が70MBですが、

この値を超えると強制終了するようです。

 

つまり、カンタンに言うと、自分の端末のスペックがいい人は、このheap問題に気づかないと言う事です。

galaxy sは記載されてないですが、結構heapサイズがでかいみたいで、検証の時には問題なかったのにHTCで急に落ちる事が何が問題かわかりませんでした。

 

以前の端末では16MBくらいだったらしいので、バージョンを1.6くらいからに設定したい人には、その値を目安にする方がいいかもしれません。

 

マニフェストのapplicationにandroid:largeHeap=”true”と書くとheapのサイズが128MBになるみたいですが、android3.1とかからの技のようで、現段階(2012年5月)ではちょっと使えない技になります。※9割以上が2.1~2.3

 

バグを残さず制作するにはheapが、「24MB」の端末が必要です。

と言う事になります。最新の注意を払っても、出る時には出るout of errorです。

 

これでも16MBの端末があればエラーが出ますが。。

 

で、この部分に関しては、「エラーは出るものである。」

と言う結論をつけたいです。out of memory根絶は、よほど潤沢な検証環境がないかぎり厳しいです。

ユーザーの「落ちました。最悪です。」と言うコメントを享受しましょう。

 

で、出てしまった場合です。ここでは、メモリリークはないものとします。純粋にメモリの使用量が大きなページの場合

androidにユーザーのエラーのレポートが来るので、エラーの発生箇所の特定をしたら、

その部分や周辺にSystem.gc();を仕込みます。

メモリリークしてないのであれば、使ってる最中から、片付けをしていく感じにはなりますが、

これで、ある程度は改善できるかと思います。

または、使っている画像サイズを小さくしたり、bitmapの読み込み設定をしたり。

 

躓いたら、端末のせいだって、怒りを端末に向けるのもありかと思います。

同じカテゴリの記事を紹介します

流れる背景を作るステータスバーの色を好きな色にするカメラの権限の取得をするpush通知の実装を確認をする為に、phpを書くしかないListView GridViewに下部にマージンをあけたい時よくつかうメモListViewの設定split で ドット文字列を、bitmapにするクラスを作ってみた。uriから画像の回転角度を取得するgridviewとlistviewで表示にalphaanimationを使ったら動かないのが存在する問題自分で変数を持つクラスを作ってコピーした時に参照まで渡してしまう問題でかい画像が表示されない。という問題interfaceをandroidで使ってみるフルスクリーンでナビゲーションバーまで消せるパソコンを買ったらする事点滅をさせるスクリプトJsonObjectを扱う時のtry catchが邪魔なのでシンプルにする2chのまとめアプリは気を付けろArrayAdapterの使い方setTimeOutを作るarraylistを並び替えAndroidの勉強で気を付けるべき6つの事staticで変数を持ちまわす時Androidで定規を作る時にサイズを確認してみる。TextureViewがゴミから神になった日ListViewの位置を変更しないで更新する方法animationをxmlで設定するのはアホなようだ。listを作るのがめんどい件について矩形の中の点の存在条件についてScrollViewのScrollToが効かない時Twitterのアプリを暗黙的Intentで狙いうちの巻勉強した内容をクラスにしてみてるText三角形の座標の包括判定をプログラムで実装前回作ったeasingを使って、translateアニメーションにイージングをかける。AndroidのデフォルトのアニメーションがダサいのでEasingをJavascriptから持ってきたmatrixを使って、回転をさせる時に中心点をずらす方法destoryとかで割と実行してるメモリリーク対策AnimationDrawable 動かないTextViewをセンター寄せにする。特定のアプリがインストールされているかを判別する方法surfacevierをaddviewすると、一瞬画面が点滅する件アニメーションで高さを変更listviewで押すとデフォルトで背景に色がつくのを抑止するline-heightをアンドロイドのtextviewで設定をする。listviewの区切り線を消すframelayoutだとmarginが効かない@android2.2アンドロイドのimageviewで背景が透けるという糞仕様を発見ウインドウのサイズを取得する方法decodeResourceは劣化する上に糞遅い。decodeResourceは劣化します。もう一度言います。decodeResourceは劣化します。

カテゴリー:androidアプリTips

公開中のアプリ、是非ダウンロードしてみてください

2chまとめのたね

RSSを利用してさまざまなブログの情報をキュレーションしてくれるアプリ

インストールする

ひらがな戦記

OPENGL ES2 を利用したカルタのソーシャルゲーム

インストールする