利用可能メモリの制限

アプリキャストプログラミングにはJavaScriptとXMLを使います。 そのため、Webプログラミング時と同様に、あまりメモリを気にせずにコードを書いてしまう可能性もあります。

しかし、アプリキャストはテレビという機器に組み込むためのものです。 テレビはPCと異なり、低価格化のために必要最小限のメモリしか積んでいません。 そのため、アプリキャストウィジェットが利用できるメモリには限りがあります。

状態で異なる利用制限

エミュレータには、メモリ消費量メータがあります。 そのメータを満タンにするのに利用するデータ量を調べてみると、ノーマルモードとフォーカスモードで約300kB、アクティブモードで1.3MBのメモリが利用できると思われます。

これは、恐らくウィジェットの表示個数が違うのでメモリ利用制限値が違うと予想できます。 ノーマルモードやフォーカスモードでは、同時に複数のウィジェットが表示されています。 各ウィジェットは表示時点で動作しているため、メモリを消費します。

一方、アクティブモードになったときには、表示されるウィジェットは一つだけになります。 そのため、アプリキャストウィジェット用に確保されている全メモリを使えるのだろうと予想できます。

なお、実機とエミュレータでは若干メモリ利用可能量が違うなどの違いはありそうです。

情報がクリアされてしまうので注意

利用可能メモリ量を見ても解る通り、アクティブモードからノーマルモードに切り替わる時には、メモリに書いてある内容が全てフラッシュされてしまいます。

そのため、アクティブモード時の処理をそのままノーマルモードで維持するのは難しいかも知れません。

YouTubeチャンネルやってます!