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


Mocoゲームブログ

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

Android の targetSdkVersion には何を指定すべきか?

分類: 技術的な話
日付: 2019年08月26日公開

Androidアプリには、targetSdkVersion と言うものを指定しなければなりません。

長らくAndroid開発をしてきて、2019年8月時点でこれがベストと思えるものが個人的にあるので、記載しておきます。

それは、その時のGoogle Playでのアプリ公開で許される最も低い値です。ただし、十分に動作検証ができる端末があってそれがその値より高い場合はその値です。

例えば、今なら 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を呼び出すところで落ちます。条件分けして古い場合は呼び出さないようにすれば落ちません。

さらに追記:十分に動作検証できる端末がある場合の記述などを改善、一部記述追加を行いました。


アプリゲーム紹介
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 には何を指定すべきか?
 2019年08月25日 そういや京都サンガが頑張っている
 2019年08月24日 ポケモンはインフレしない?
より最新のブログ
より以前のブログ
ブログTOP Mocoゲーム 今日は何の日
最新エントリー

2023年04月01日エイプリルフールブログまとめ
2023年03月31日「信長の野望 出陣」位置ゲー?
2023年03月30日Windows 12 が来年に?
2023年03月29日実在するのは? ネッシー vs 宇宙人 vs 雪男
2023年03月28日ChatGPT でプログラマーが不要になるは完全なる誤り
2023年03月27日成金大作戦究極版に委任機能を追加
より以前のブログ

コンテンツ分類

 AI(人工知能)の話 (20)
 DVDの話 (9)
 FLASHの事 (8)
 YouTuberと動画サイト (56)
 いろいろ (361)
 いろいろレビュー (26)
 アプリの事 (447)
 アプリ公開情報 (358)
 アプリ更新/修正情報 (212)
 インターネット全般 (14)
 ガラホの話 (6)
 クイズいろいろ (39)
 ゲーム全般 (604)
 スプラトゥーン (158)
 スポーツの話 (174)
 スマートフォンの話 (648)
 タブレットの話 (89)
 テレビの話 (24)
 ネットの話 (41)
 パソコンの話 (81)
 フォームへの返答 (38)
 プログラミングの話 (80)
 ページの事 (126)
 ページ更新情報 (161)
 ポケモンGO(位置ゲー) (105)
 ミニファミコン (13)
 メルマガの事 (20)
 家電の話 (34)
 開発情報 (333)
 技術的な話 (84)
 携帯の話 (639)
 時事的な話題 (128)
 独り言 (80)

カレンダー

     2023年04月     
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
ブログカレンダー


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