![]() 分類: 技術的な話 日付: 2019年08月26日公開 最終更新日: 2023年08月30日 Androidアプリには、targetSdkVersion と言うものを指定しなければなりません。 長らくAndroid開発をしてきて、2019年8月時点でこれがベストと思えるものが個人的にあるので、記載しておきます。 それは、その時のGoogle Playでのアプリ公開で許される最も低い値です。ただし、十分に動作検証ができる端末があってそれがその値より高い場合はその値です。 2023年追記:2023年現在では、Google Play は公開後1年以内にその OS に対応することを求められます。なので、常に最新の OS をターゲットにする方が良いです。検証端末がない場合はエミュレーターで動作確認します。そのため以下の情報は該当しない情報のものもありますが、参考のために残しておきます。 例えば、今なら 28 つまり Android 9.0 を対象にしなければなりません。この値は十分に大きな値ではありますが、昔の Google Play ではここまで大きな値、すなわち最新OSに近い数値を要求することはありませんでした。 Android 9.0 を対象にしたからと言って、Android 9.0以降にしかないAPIを使わない限りは古い機種でも全く問題なく動作します。 また、Android 10.0 が出た場合には、targetSdkVersion が 28 の場合、Android 9.0 の機種のように動作します。 この点が重要で、もし targetSdkVersion を 29 にしていた場合、Android 10.0 での動作になるので、最新OSへの動向や変化に気を尖らせる必要があります。 Android 10.0 からAPIの挙動が変わったりしたら落ちたりする可能性があります。 しかし、前述したように Android 10.0 をすでに持っている場合は 29 にすべきだと思います。targetSdkVersion は OS のセキュリティなどに関連して引き上げられていくと思われ、後々を考えるとその方が効率も良くなるからです。 ついでにですが、minSdkVersion と compileSdkVersion に何を指定すべきかですが、minSdkVersion はこのバージョン以上のAndroidにはインストールさせてOKということなので、許す限り低い値にしておくのが良いと思います。許すと言ってもセキュリティ的に問題があるけど動作するというバージョンはもう切るべきです(これはつまり許されないということですね)。 compileSdkVersion は実際にビルドするバージョンを指定することになります。 このバージョンは新しいAPIを使わない場合は必ずしも targetSdkVersion より高い必要はないですが、同じくらいか高い方が良いとは思います。 ところで、今回の targetSdkVersion の指定については、迷った場合の指針くらいでお願いします。 追記:最後のtargetSdkVersion を 29 にすることに限らずですが、Android はユーザーが使用しているバージョンが広いので、Android 6.0 くらいの古いバージョンでも動作することは確認した方が良いです。前述していますが、例えば、9.0以降で設けられたAPIを使っていた場合、Android 6.0 だとそのAPIを呼び出すところで落ちます。条件分けして古い場合は呼び出さないようにすれば落ちません。 さらに追記:十分に動作検証できる端末がある場合の記述などを改善、一部記述追加を行いました。 2023年追記:Google Play は公開後1年以内にその OS に対応することを求めている旨の追記を行いました。 アプリゲーム紹介 Mocoゲーム作成で比較的人気の無料ゲーム 剣闘士伝説 を公開中です。Google Play 及び App Store でダウンロード可能です。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ⇒ より最新のブログ ⇒ より以前のブログ
|
最新エントリー![]()
⇒ より以前のブログ コンテンツ分類 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() カレンダー ![]() 2025年02月 ⇒ ブログカレンダー |