私は、歌詞を画面に表示している曲を再生するアプリを持っています。例によるAndroidサービスの理解
2つの状況:
- 曲はローカルmp3ファイルからロードされます。 インターネットを経由して
- 曲は離れた場所からロードされ
私の理解では、Androidのサービスは歌がインターネット経由で遠隔地からストリーミングされたときに救助に来るということです。 i/oのオーバーヘッドが原因でAndroidサービスがここで役立ちます。最初のケースでは、曲が地元の場所から演奏される場合、サービスはおそらく過剰なものです。私は単にアクティビティでそれをロードする音楽を再生し、MediaPlayer APIを使ってそれを再生することができます。
この理解は正しいですか?私は何か不足していますか?
更新日:曲のサイズが10MBを超えています。だから、あなたが電話でゆっくりとしたインターネット経由でそれをストリーミングするときには、より良いユーザーエクスペリエンスのために調整されたバッファリングやものがあるかもしれません。
ありがとうございます。
「この理解は正しいですか?」 - あんまり。 「サービスは恐らく過度のものです」 - 同じ曲では、どちらのシナリオでもほぼ同じ量のI/Oがあります。この場合にサービスを使用するかどうかは、音楽の再生中にユーザーがUIを離れた場合に起こりたいことに基づいて大部分が決定されます。 – CommonsWare
@CommonsWare私は、ユースケースとしてファイルサイズとインターネット接続速度のコンテキストで質問を更新しました。私は、ローカルで再生されるファイルが、インターネット経由でストリーミングされる必要があるファイルよりも高速であると見なすことができます。 I/Oは実際には同じではありません。インターネットを介して何かをストリーミングするときに考慮するいくつかの要素がありますか? – karthiks
「I/Oは実際には同じではありません」 - 曲がローカルに保存されているかストリームに保存されているかにかかわらず、3分の曲には3分かかります。ソングがローカルに保存されている場合は、帯域幅の使用量が大幅に少なくなります。私は曲がローカルに格納されている場合は、CPUの使用量が少し少なくなると思います。曲がローカルに保存されている場合は、バッテリーの使用量が少なくなります。サービスが関連しているかどうかは重要ではありません。 – CommonsWare