Android Remo-con - 8
Android Remo-con, PC & Software No Comments »
やっぱり全楽曲情報をオンメモリで維持すると、メモリ負荷のためかAndroidが勝手に開放してしまうようです。
Androidでは、アプリが大量のメモリを維持するのはその思想に反するようで、いろいろ試してみても確実に維持できる方法は見つかりませんでした。多分サービスの仕組みを使えばできると思いますが、思想に反する事を無理に行っても良いことはありません。この辺はPCと違ってAndroidのプログラムは書きにくいですね。
仕方ないので、ダウンロードした楽曲情報をAndroid内のSQLデータベースに記録する事にしました。メモリ上には最大で、アーティスト情報の全て、注目しているアーティストのアルバム情報、さらに注目しているアルバムのトラック情報だけとなるので、今までの全情報に比べれば300分の1ぐらいのメモリ使用量になります。
しかし、今度は最初にデータベースを構成するときに時間がかかるようになってしまいました。
今までは起動のたびに全データをダウンロードしてもメモリ上に置くだけだったので2-3秒ぐらいでしたが、データベースではそうは行きません。かと言って、必要な部分をいちいちPCプレーヤから持ってきては今までの軽快な操作性が失われます。
で、前回ダウンロードしたときからの差分だけを転送するように変更する事にしました。

こんな感じのデータを受け取ります。
先頭行のdate="20110530154304"がPCプレーヤ内の最後に更新された楽曲情報のタイムスタンプです。
新しいリッピングデータがないときは先頭の行だけなので、起動時の同期処理は一瞬で終わります。
これで、今までよりも軽快になりました。削除された楽曲の同期はできませんけどね。

