Density値と対応機種の関係

この間GalaxyNoteをroot化した時に、画面を広く使いたくてDensity値を320→260に変更したのだが、このせいでマーケット上のアプリの多くが「お使いの端末はこのアイテムに対応していません」と表示されるようになってしまった・・・
実際には「最近突然非対応機種ではじかれるケースが増えたな・・・」とのんきに思ってたくらいだったが、AcrobatReaderや4sqを更新しようとしたら軒並み「非対応機種」呼ばわりされたのでやっと自分のGalaxyNoteがオカシイことに気付いた次第・・・

で、ググってみたところDensity値を変更した場合、アプリの対応機種から外れてしまうることが起きるらしいことが判明。
とりあえず対処療法は以下でなんとかなることがわかった。
(参考サイトはAndroid Hackingさん、Life is Jackovさん及びXDAなど)

  • Density値を初期値に戻し再起動(LCD DensityやLCD Resolutionなら自動で高速再起動するハズ)
  • 設定→Applications(アプリケーション)→Manage applications(アプリケーションの管理)からマーケットを選び「Clear data(データを消去)」
  • マーケットを起動して必要なアプリのインストールや更新を行う
  • Density値を元にに戻し再起動

これでしのぐことはできるが、これを毎回やるのもどうにも手間だ・・・
いろいろなサイトにある方法でマーケットの置き換えなどしてDensity変更後も非対応にならないようにできないかなどいろいろ試したがどうにもうまくいかない・・・
で、確か001HT(DesireHD)ではDensity値を替えてもこんなことにならなかったとのになんで・・・と思いつつ試しにその001HTのデフォルト値だった240にしてみたらなんと「非対応」は殆どなくなった・・・
(殆どというのは全部見たわけじゃないという意味だけ・・・ホントは全部OKかも・・・)
やや文字など細かくなりすぎたキライはあるがこれなら問題なさそう・・・
偶然この値を見つけられてラッキーだったかも・・・


結局いろいろ試したり調べてみた結果どうやら、

  • Density値を替えたからといってアプリの機種チェックにひっかかる訳ではなく、AndroidOSが規定する規定値以外のDensityにした場合のみ引っかかる
    • 但しアプリ側が解像度縛りをしてない場合はどんな値でもOK
    • とりあえず大丈夫なDensity値は320,240,200(もちろん他にもあるだろうが未確認)

ということらしい・・・
しかし画面が狭くてアプリの画面が入らないならともかく、広い方ならアプリのデザインが若干崩れるくらいなのだから「非対応」にしなくてもなぁ・・・
まぁ解決方法がみつかったからいいけど・・・