1. Mocoゲーム >
  2. Mocoゲームブログ >
  3. Android の targetSdkVersion には何を指定すべきか?(2023年更新)


Mocoゲームブログ

ゲーム作成の悲喜こもごも… 開発状況やアプリ(無料ゲーム多数)に関すること、携帯電話やスマホのこと、公式ストア(Google Play, App Store)でのアプリ公開のこと、プログラミングのこと、更新情報などをアップしています。ガラケー時代からかれこれ15年以上継続しているブログです。Android(java)や iPhone開発(Xcode, Objective-C, C++ によるiOSアプリ開発)に関する技術的なことも時々アップしています。
ツイートする

Android の targetSdkVersion には何を指定すべきか?(2023年更新)

分類: 技術的な話
日付: 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 でダウンロード可能です。



関連ブログ

 Android 9 で Op.REPLACE でエラーとなったり、キーイベント取得方法が異なったり
 ポリシー違反に関して、Google Playでアプリ公開している場合に知っておいた方が良いこと
 新しいMacに開発環境を整える際に手間取ったのでその備忘録
 がちんこシリーズを対戦可能にしたいのですが・・

前後のブログ

 2019年08月29日 がちんこラグビーに「ワールドモード」追加
 2019年08月28日 Appleの審査次第で明日のブログ内容が変わる
 2019年08月27日 ドラクエ10の冒険者のおでかけ超便利ツールのレーティング変更について
 2019年08月26日 Android の targetSdkVersion には何を指定すべきか?(2023年更新)
 2019年08月25日 そういや京都サンガが頑張っている
 2019年08月24日 ポケモンはインフレしない?
より最新のブログ
より以前のブログ
ブログTOP Mocoゲーム 今日は何の日
最新エントリー

2024年03月01日どんぴこ闘技場難易度
2024年02月29日iOS 18は大幅アップデート?
2024年02月28日ハイキューと言う漫画
2024年02月27日AIがコードを書くのでもうプログラミングを学ぶ必要はない?
2024年02月26日iPhoneもAndroidも「アプリ閉じると電池長持ち」は嘘は本当?
2024年02月25日サイドオーダー遊びました(感想?)
より以前のブログ

コンテンツ分類

 AI(人工知能)の話 (31)
 YouTuberと動画サイト (65)
 いろいろ (357)
 いろいろレビュー (26)
 アプリの事 (357)
 アプリストアの話 (257)
 アプリ公開情報 (364)
 アプリ更新/修正情報 (227)
 クイズいろいろ (40)
 ゲーム全般 (648)
 スプラトゥーン (185)
 スポーツの話 (188)
 スマートフォンの話 (551)
 タブレットの話 (95)
 テレビの話 (25)
 ネットの話 (73)
 パソコンの話 (88)
 フォームへの返答 (39)
 プログラミングの話 (89)
 ページの事 (133)
 ページ更新情報 (171)
 ポケモンGO(位置ゲー) (113)
 メルマガの事 (20)
 家電の話 (44)
 開発情報 (334)
 技術的な話 (89)
 携帯の話 (644)
 時事的な話題 (137)
 将棋の話 (32)
 独り言 (83)

カレンダー

     2024年03月     
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
ブログカレンダー


Follow @MocoGames
ツイッターフォローお願いします。
(C)Mocoゲーム 2005-