radikoアプリがPlayストアのアップデートで表示されていました。
しかし、「更新する」を押しても、アップデートが始まりません。「詳細」をみると、「このアプリはお使いのデバイスに対応しなくなりました」と表示されています。
このスマホでは、もう使えないということでしょうか?
アプリが更新すると、古いスマホが動作対象から外れてしまうことがあります。
通常は、更新されていないアプリは使わない方がよいのですが、radikoの最近の更新内容を よく調べてみると (しばらくは)そのまま利用しても大丈夫そうです。
今回は、radikoアプリの更新をもとに、それぞれのアプリがAndroidシステムのバージョンに依存する、「API」の仕組みについて見てみましょう。
1. アプリには推奨環境がある
Androidスマートフォンのアプリは、Google Play ストアで配信されています。
しかし、Playストアで配信されているすべてのアプリをインストールできるわけではありません。
アプリ毎に、端末の解像度やOSバージョン、言語、利用地域、機種、メーカーなど、動作に必要条件が指定されているからです。つまり、条件を満たしていないスマートフォンでは、そのアプリをインストールやアップデートができないません。
radikoアプリの更新が開始しないのも、スマートフォンが必要な条件を満たしていないからです。Playストアで radikoアプリの詳細情報を見てみましょう。
1-1. Android OS 4.4(2013年10月〜)が動作環境から外れた
過去のradikoの推奨環境を調べてみました。Wayback Machineに2020年7月時点の記載情報が残っていました。
これをみると、更新前は最低動作環境に「Android OS 4.4以降」が含まれていたことがわかります。
ちなみに、Android OS 4.4は2013年10月公開なので、2021年3月時点では 8年前のバージョンということになります。
ほとんどのアプリは、約6年前までの過去バージョンまで対応するのが一般的です。radiko はかなり長く対応していたことになります。
2. 過去のバージョンの対応が外れる理由はAPIレベル
なんで、古いスマホだと使えなくなるの?
もしかして、買い替えさせるため?
利用者としては、古いスマホでも使い続けたいものですが、アプリ開発者にとっては、過去のすべてのスマートフォンに対応するのは現実的ではありません。古いスマートフォンには、使用できない機能があるからです。
特に 基本システムであるAndroidのバージョンは重要です。Androidは、「API」としてアプリ共通の機能を提供しています。アプリは、AndroidシステムのAPIに依存しているのです。
API(Application Programming Interface)は、システムがアプリケーションに公開・提供している機能・操作。
アプリ開発者は、アプリが対応する最も古いバージョンを「API レベル」というAndroidのバージョンごとの数字(たとえば、Android 1.0 は API レベル 1、Android 4.4 は API レベル 19 )で指定します。「API レベル」は、そのアプリがどんな API を利用しているかによって決まります。
また、アプリを更新して、新しい API を利用するようになると、API レベルは上がります。
つまり、アプリの要求する API レベルを低く抑えれば、幅広いスマートフォンで利用できる反面、より高機能なアプリを開発するには APIレベルを高くする必要があるのです。
デバイスの適合性の概要 | Android デベロッパー | Android Developers
2-1. Android 5.0で変更されたAPI
radikoは、Android 4.4までが廃止になり、Android 5.0が必要になっている、ということなので、Android 5.0 で追加されたAPIを利用していることになります。
なぜ Android 5.0 が必要になったのか、調べてみました。
Android 5.0(Lollipop)は大規模なアップグレードで、通知の改善(ロック画面の表示など)やバッテリーセーバーなど、たくさんの変更がありました。
Android 5.0 API を見てみると、ずらっとこんなにあります。
2-2. radikoの設定にオフタイマーとバッファ時間が追加された
ここで、radikoの更新内容を見てみます。
「オフタイマー」機能と「バッファ時間の調整」ができるようになっています。
「オフタイマー設定」は、時間経過で自動的に停止する機能です。
「バッファ時間」は、回線状態に合わせて、遅延や途切れやすさを調整する機能です。
Android 5.0 API の項目を見てみると、たしかに 音声の再生や制御の API があります。
音声の再生
今回のリリースでは AudioTrack に次の変更が加えられています。
アプリから音声データを浮動小数点形式(ENCODING_PCM_FLOAT)で提供できるようになりました。これにより、優れたダイナミック レンジ、より安定した精度、ヘッドルームの向上が実現します。
アプリから音声データを ByteBuffer として、MediaCodec で提供されるものと同じ形式で提供できるようになりました。
一部のアプリでは、WRITE_NON_BLOCKING オプションを使用することでバッファ処理とマルチスレッド処理を簡素化できます。Android 5.0 API | Android デベロッパー | Android Developers
メディア再生の制御
新しい通知 API とメディア API を使用して、メディアの再生についての情報をシステム UI に知らせ、アルバムアートの抽出と表示ができるようにしてください。UI とサービスにまたがるメディアの再生の制御が、新しい MediaSession クラスと MediaController クラスを使用して、より簡単に行えるようになりました。
3. 結論:今インストールされているradikoアプリを利用してもよい
radikoアプリは、最近の更新によって新しい機能が追加され、Android 5.0より前の古いスマートフォンは動作対象から外れました。
しかし、追加された機能を利用しないのであれば、そのまま radikoアプリを利用し続けることができます。
ただ、一度 radikoアプリをアンインストールすると、再度 インストールできないので注意してください。
また、「システムアップデート」で Androidバージョンを更新できる場合は、アップデートするのも一つの方法です。
こちらもどうぞ。