高解像度端末に対するリソース用意=>低端末機種 OutOfMemory に関する考察
未解決ストック)
- How to change the font size of tabhost in android - Stack Overflow
- android - Newbie: How to change tab font size? - Stack Overflow
関連対応>
なんかdpi変更した綺麗な画像に差し替えたら、レイアウトが崩れまくって凄くポイズン。凄い面倒くさい(>_<)
結局解決しなかったけど、レイアウトに画像指定=>画像きれいにしたよ=>レイアウト読み込んだ時点で=>out of memory これどう解決するもんだろう?
- ようはIOS用の2倍サイズの画像を設定してくれ=>そのほうが綺麗 って話
- 差し替えた瞬間 Out of Memoryが頻発。。。
[http://twitter.com/kimukou2628/status/274116544261410817:twitter:tree]
検証中メモ)
HTC Desireは displayMetrics.densityDpi = DisplayMetrics.DENSITY_LOW;updateConfiguration(config, displayMetrics); すれば一応動くようにはなるんだけど絵がガタガタに
Resources m_r = getResources(); WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); final DisplayMetrics displayMetrics = new DisplayMetrics(); display.getMetrics(displayMetrics); if("htc_wwe".equals(Build.BRAND) && "HTC Desire".equals(Build.MODEL)){ Configuration config = m_r.getConfiguration(); //displayMetrics.densityDpi = DisplayMetrics.DENSITY_LOW; displayMetrics.densityDpi = DisplayMetrics.DENSITY_MEDIUM; m_r.updateConfiguration(config, displayMetrics); }
なイメージ。
上記だと全部にかかるので
BitmapDrawable::setTargetDensity(DisplayMetrics metrics)
で対象のものだけ適応すれば?? というお話もあるようですね
微調整が死ぬるわ‥‥‥><。最近のソフトで ◎◎HD って奴そういう理由で出てるんだろうか‥‥‥(汗。だとしたらポイズンだな。。。Android
Bitmap.Config.RGB_565 指定してしまうと抜きが効かなくなるのか‥‥‥。コレも凄くポイズンorz
DisplayMetrics.DENSITY_LOW 指定してしまうと描画フォントが大きくなりすぎてしまうよう。DisplayMetrics.DENSITY_MEDIUM にして 高解像度リソースをhdpiに移動すれば<旧画像をldpiにおくと IS03でもなんとか。。
View | Android Developers
な話とかでどにかならないかな。。。(汗
技術者やってて一番厳しいのは、出来ないことや時間がかかっていることを説明する事。ようは試行錯誤は工数管理的には基本NGな話をされるわけなんだよね。「家で調べてこい」な話はよくされるし・・。OJT出来るほど時間的に余裕がある仕事は少ないかなとは思う<作業だけやれみたいな話がよく
@kimukou2628 よくそういうところで頭を悩まします。壁にぶち当たることはよくありますし。とくに最初は技術的に不可能だったらどうしようとか考えてしまうわけです。。
追記)
List等decodeResourceしている処をこまめにrecycleしたらHTCでもなんとか。。。
drawable-hdpiとかで対応する画像が欠けてたりすると挙動が変になる(ADT21
まえは検索してくれた感じなんだよな・・
あとメモリ確保失敗したりすると1/4サイズのが取得できたりとか挙動凄く謎・・。
一応 メモリリーク調べるには下記のような情報があるらしい
- Androidアプリのメモリリーク対策手法 | Bescottee
- メモリリークを発見!Androidアプリのメモリ解析手法 OQL (Object Query Language)利用方法 | Bescottee
参考メモリンク)
- Android のメモリ管理 #1 メモリ使用量の分析・解析ツールを知る | Developers.IO
- Android のメモリ管理 #2 Allocation Tracker でメモリに割り当てられたオブジェクトを調べる | Developers.IO
- Android のメモリ管理 #3 Heap dump でメモリリークの原因を解析する | Developers.IO
- Android のメモリ管理 #4 SoftReference と WeakReference を活用する | Developers.IO
メモリリーク用テストツール)
読んでる。 kyorohiro: KyoroStressの技術 -1- Low Memory Killer を意図的に発生させたい URL
- kyorohiro: KyoroStressの技術 -1- Low Memory Killer を意図的に発生させたい
- GitHub - kyorohiro/KyoroStressV2: android test tool. this tool create situation low memory killer is run
- https://play.google.com/store/apps/details?id=info.kyorohiro.helloworld.stressv2
サーバーのレスポンスタイムアウトのテストってどーやるんだ(;´Д`)
@sakura_bird1 JMeterで負荷掛けてエラーレート出せるんじゃないかな
@yusuke これでサーバーにめちゃめちゃ負荷かけたらテスト自体はできそうですね。怒られるからやらないけどw
2013-03-08 11:27:29 via YoruFukurou to @yusuke
@sakura_bird1 Android側ではプロキシサーバーを設定して、プロキシサーバーのhostsを書き換えてエラーが発生するスタブサーバーに接続させるとか
@yusuke すぐ理解できなくて申し訳ございませんm(__)m もう一個サーバーが必要そうですね。
2013-03-08 11:31:44 via YoruFukurou to @yusuke