質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

414閲覧

Android Studio 自動import時にでてくる言葉の意味

a-san

総合スコア12

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/03/15 16:38

Android Studio でPackageを自動importする際、選択できるPackageの横に<Android API 26 Platform> とかでてくるんですが、これは何を表しているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下の画像はToolbarクラスを利用しようとしたときに表示されたものですが、このようなものを指した質問でしょうか。

Android SDKには、このToolbarのようにSupport Libraryが提供するものとそうではないもので同じクラス名になっているものがいくつもあります。そういうクラスのimport文をIDEの機能で挿入しようとするとき、IDEはどちらを選択すれば良いか自動的に判断ができないので、ユーザーに選択を求めているためにこのようなものを表示しています。

Toolbar (android.support.v7.widget) - Support Libraryによって提供されるToolbarを利用
Toolbar (android.widget) - SDK Platformによって提供されるToolbarを利用

という違いです。


(2018/03/17 14:36 追記)

SDK Platformとは、APIレベルごとに提供されているコンパイルのためのパッケージ一式と考えれば良いかと思います。SDK Managerを開いて右下にあるShow Package Detailsにチェックを入れると、各項目の詳細が見られるようになりますが、それで各APIレベルの項目を開いてみると、それぞれにAndroid SDK Platform xx(xxはAPIレベルの数値)という項目があるのが確認できます。

アプリの開発のときに、ここで導入したどのSDK Platformを利用するかは、build.gradleに記述されているcompileSdkVersionの値によって決まります。

そして、質問の主題であるクラスの選択のときに出てくる小窓に表示されている<Android API 26 Platform>というのは、このプロジェクト(正確には「プロジェクトに属するモジュール」)のcompileSdkVersionによって選択されているSDK Platformを表示しているに過ぎません。compileSdkVersionを27にしたならば、<Android API 27 Platform>と表示されます。それ以上の深い意味はありません。「こちらを選択するとそのAPIレベル未満では動かせない」などということはありません。

ただし、この例で挙げているToolbarクラスはAPI 21で追加された機能です。minSdkVersionを21未満にする(API 21未満の端末でも動作するアプリにしたい)必要があるならば、Support Libraryによって提供されるToolbar(上側)を選ばなければ正常に動作させることはできません。ですから、Support Libraryを選ぶ必要があるか否かは、用いようとしている機能が導入されたAPIレベルとminSdkVersionの兼ね合いによって決まるものだということです。

投稿2018/03/16 04:08

編集2018/03/17 05:41
keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a-san

2018/03/16 14:01

ご回答ありがとうございます。 その画像についてのご質問でした。 Toolbar (android.widget)の横にある「API 26 Platform」の表していることを知りたいです。
y_waiwai

2018/03/16 14:14

単にそのクラスが対応しているAndroidプラットフォームを表示しているだけでしょ
a-san

2018/03/16 15:07

では、この画像でいう Toolbar (android.widget) <API 26 Platform>のクラスを実装したアプリをAPI 25以下のスマホで使うと、正常に起動しない感じなんでしょうか。 多分すごく初歩的な質問ですみません。
y_waiwai

2018/03/16 15:15

そういうことでしょうね。API26以降でサポートと言う意味かと
keicha_hrs

2018/03/16 15:18

嘘コメントはやめて欲しいなあ。y_waiwaiさんはこの内容をちゃんと理解されているのですか?ていうか、理解していたらこんなコメントにはならないはずだけど・・・。 改めてコメントしますが、ちょっと待ってください。
keicha_hrs

2018/03/17 05:29

回答欄に追記する形で詳細を記しました。
a-san

2018/03/17 06:10

わかりやすくありがとうございます。 例えばAPIレベル26のSDK Platformには、APIレベル25のSDK Platformにはなかったパッケージが追加されていて、導入・利用するなら前者にすべきという認識であっていますか?
a-san

2018/03/17 06:25

あと、どんな端末でも使えるアプリにするため、とりあえず最小APIを1にして、Support Libraryを使いまくるデメリットってあるんですか?
keicha_hrs

2018/03/17 07:15 編集

>例えばAPIレベル26のSDK Platformには、APIレベル25のSDK Platformにはなかったパッケージが追加されていて、導入・利用するなら前者にすべきという認識であっていますか? 「API 26で新規追加されたクラスや機能をAPI 25未満の端末で使えるようにしたい」という意味ならば、Support Libraryの利用が必要になります。 >とりあえず最小APIを1 Support Libraryは後方互換性のためのライブラリーではありますが、どんな機能もAPI 1までサポートされるわけではありません。それはLibraryの仕様を参照する必要があります(機能によってどこまでサポートされるかは異なります)。 >Support Libraryを使いまくるデメリットってあるんですか? apkファイルのサイズが肥大化します。少々のアプリであれば大したデメリットにはならないでしょうが、大きなアプリになると影響も出てくるでしょう。 もうそろそろ、当初の質問のテーマからはかなり逸脱していると思います。ここらで区切って、追加で知りたいことがあれば、それを主題とした新規質問を立てた方が良いでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問