ノート PC に、Visual Studio Community 2022 の C++ によるモバイル開発機能と、 その時点で最新だった Android Studio をインストールしましたので、 Android アプリの開発環境が整ったということになりました。
過去すでに Android Studio を別のマシンで使用して 「素因数分解トレーニングアプリ」 を開発していますが、改めてちゃんとアプリを作りたいな、と思い、開発環境を再構築しています。
もう「やっつけ」ではありませんから、ちゃんと理解しながら進みたいので、 まずは新規プロジェクトを作成し、スマホを接続して動作するところまで、確認してみます。
なお、使用している Android Studio は、2022 年 5 月上旬に「Android Studio をインストールする」のようにインストールした、 2021.1.1 Patch 3 の Bumblebee です。 このページで行っている AdMob Project のテスト中にアップデートの通知があり、 途中で更新をインストールしましたので、 このあと「Android Studio をアップデートする」に書いています。
この記事を仕上げている今は、すでにより新しいバージョンに更新済みですし、 Android Studio をこれからダウンロードすると新しいバージョンになりますが、 このページでは、テストをしたときの画面イメージのままにしていますので、ご注意ください。 基本的には同じような操作であると思いますが、新バージョンで操作したときには、追記します。
ここでは、最初にテストした「Android Studio で新規プロジェクトを作成する」で選んだ Empty Activity や 「Android Studio で全画面プロジェクトを作成する」で選んだ Fullscreen Activity ではなく、 広告を入れる設定が行われているであろう「Google AdMob Ads Activity」を試してみます。
もしまだ基本となる「エンプティ・アクティビティ」をテストしていない場合は、 「Android Studio で新規プロジェクトを作成する」 からご覧になることをおすすめします。
なお、Google のアプリ内広告のシステム AdMob については、現時点では詳細未調査です。
なお、本サイトの
ご利用に際しては、必ずプライバシーポリシー(免責事項等)をご参照ください。
投稿 May 28, 2022
Android Studio を起動すると、スプラッシュ画面のあと、 特に設定を変更していない場合、最後に開いていたプロジェクトが自動的に開かれるようです。
新しいプロジェクトを作成したい場合は、今開いているプロジェクトを終了する操作が必要です。
編集中のプロジェクトを閉じてウェルカム画面に戻る手順については、 「編集中のプロジェクトを閉じる」に記載してあります。
また、Android Studio 起動時に、最後に開いていたプロジェクトを開かない設定を行うには、 「最後に開いていたプロジェクトを開かない設定」をご覧ください。
さて今回は「Google AdMob Ads Activity」を選択してみます。 どういうコードが生成されるのでしょうか?
ウェルカム画面で「New Project」をクリックして、 新規プロジェクトとして「Google AdMob Ads Activity」を選択します。
「Google AdMob Ads Activity」を選んだ状態で「Next」ボタンをクリックすると、プロジェクトの設定画面に進みます。
一番上の部分の表示が Google AdMob Ads Activity になっている以外は、Empty Activity のときと同じ項目です。
すぐ下には解説として 「AdMob Ad フラグメントでアクティビティを作成します」と書かれていますが、わかりません。
各項目に設定する値については「Empty Activity の情報設定」を参照していただければ詳細を書いていますので、ここでは簡略して残しておきます。 なお、最後に使用したデータが残っているようですので、毎回すべてを再設定しなくていいようです。
Name には、作成するアプリケーション名を入れます。 これは、将来 Google Play に公開するアプリ名というわけではなく、apk ファイル名と考えていいと思います。 この Name を書き換えると、連動して Package name や Save location も書き換えられました。
Name の欄に MyAdMob と入力しただけで、
Package name はパッケージ名で、 世界で唯一の文字列にならなくてはなりません。 基本ルールに基づき、自分だけの文字列になるよう設定します。
Save location には、プロジェクトを保存するパスを指定します。
Language は、Kotlin または Java を選択します。 初期状態で Kotlin が選択されているということは、それが推奨なのでしょう。
Minimum SDK は、アプリが動作する最低限の Android OS 指定です。 Android 5.0 用の API 21 の場合は「Your app will run on approximately 98.0% of devices.」、 この選択なら 98.0 % の Android 端末で動作する、と説明されています。 デバイスの率は 86.7 % に減りますが、Android 8.0 用の API 26 あたりでもいいのではないかと思います。 ところでデバイスの率、数日前は Android 8 だと 82.7 % と表示されていましたが、あっという間にだいぶ増えています・・・。
その下にある「Use legacy android support libraries」のチェックボックスは、 「古いサポートライブラリを使う場合は最新のプレイサービスやジェットパックライブラリは使えません」とある通り、 従来の環境に慣れている開発者以外はチェック不要ですが、AdMob の場合はチェックできません。
希望の設定ができたら、右下の「Finish」をクリックします。 改めて、Package name の欄ですが、テスト目的だけであれば com.example のままでよく、 書き換える場合は既存のアプリとの重複を避け、他人の権利を侵害しないよう、責任ある独自の文字列にする必要があります。
インストール直後の初回 Empty Project 作成時は 30 分ほど時間がかかった準備作業ですが、 Fullscreen Activity は 5 分程度でした。 Native C++ を選んだ時にはまた 30 分弱かかりましたが、 また別のタイプを選択した 4 回目の今回はどうでしょうか?
どういうことになっているのかはよくわかりませんが、意外にも 5 分もかからず終わりました。
初期状態で activity_main.xml が選択されていて、画面イメージのようなものが表示されています。
右側の画面イメージ(画面デザイン?)の上部に横長に配置されているのが app_title という名前のタイトル領域のようです。 左側の白背景のイメージが、実機画面のイメージのようです。
左側の白背景のイメージの最上部、app_title の部分には「Interstitial Ad Sample」と書かれていますので、 このコードはインタースティシャル広告の例であり、 インタースティシャル広告とはページ移動時に表示される広告のことのようです。 どういうものかは 「インタースティシャル広告とは 意味/解説/説明」 が参考になります。
注意ですが、公式情報として、Google AdMob から 「インタースティシャル広告の導入における禁止事項」 が出されています。 アプリの起動時や終了時、過度の表示が禁止となっているようです。
右の画面上部、タイトルの下にある短い横長のものが level という名前で、これが何かはわかりません。 左側の白背景のイメージを見ると、「Level 1」と書かれていますから、ゲームなどに使うパーツの例でしょうか?
画面イメージ中央にあるものは next_level_button というボタンのようです。 これでレベルを進めて画面を書き直す、ということでしょうか?
画面イメージからは何をするものなのか想像がつきませんので、 画面上部のタブで MainActivity.java を選択して、確認してみます。
まずは最初にある import の部分、行番号からのわかるように折りたたまれていますので、クリックして展開してみると、 com.google.android.gms.ads にある AdRequest や MobileAds、interstitial.InterstitialAd などがインポートされています。 もし Google AdMob Ads Activity 以外のプロジェクトを作成して AdMob 広告を入れたい場合は、この部分が参考になりそうです。
AppCompatActivity を継承した MainActivity クラスが定義されています。
定数や変数などの定義のあと、 onCreate 関数で、static 関数の MobileAds.initialize 呼び出しによる初期化や、 loadInterstitialAd 関数によるインタースティシャル広告の読み込みが行われているようです。 リソースの adUnitId で定義された ID がセットされるようです。
左側ペインで、res、values と開くとみつかる strings.xml を開いてみると、どうなっているかわかります。
interstitial_ad_unit_id という名前で、ca-app-pub- で始まる、それらしい値がすでに設定されています。 コメントで、「これはインタースティシャルテスト広告用の広告ユニット ID です。あなたのインタースティシャル広告ユニット ID に置き換えてください。」とあります。
と、コードを確認していると、右下にアップデートのお知らせが表示されました。
投稿 May 28, 2022
Android Studio を開いていると、右下に「Android Studio Chipmunk 2021.2.1」へのアップデート通知が表示されました。 インストールしたのは 2021.1.1 の Bumblebee で、更新版は 2021.2.1 ですから、 2021 年 2 月 1 日のリリース、という意味ではないのでしょう。 あるいは 2022 年 5 月になってやっと安定版リリースとなった、ですが、それは時間がかかりすぎでしょう。
このタイミングでは更新したくなかったので放っておいたのですが、 次回 Android Studio 起動では通知が出ませんでした。 チャンスを失ったのでしょうか?
Help メニューにある Check for Updates... を選択すれば、アップデートの確認を行えました。 画面右上のプロフィールアイコンの左が歯車アイコンではなく上向き矢印なら、そこからもアクセスできそうです。
「Android Studio の最新の安定版のダウンロードが可能になりました」ということです。 Chipmunk という名前で、これは「大きな」新しいリリースで、パフォーマンスの改善、バグの修正や新機能が含まれている、とされています。
箇条書きでどういう更新なのかが書かれていて、更新後は Android Studio を再起動するように書かれています。
今すぐ更新するなら、右下の青いボタン Update and Restart をクリックします。
編集中のプロジェクトは開いたままでもいいようです。 すぐにダウンロードが始まり、画面の下部のステータスバーに状況が表示されているようです。
10 分弱で、右下の表示が変わりました。 かかる時間は通信環境によって左右されるでしょう。
素直に Restart をクリックすると、
Android Studio がいったん閉じられ、
確認済みの発行元 Google LLC の「Part of elevator/launcher UAC InteliJ kit」
なるものによる
また 15 分ほどかかったあと、Android Studio が再起動されました。
ちなみに今、 Android Studio のトップページにアクセスすると、 Android Studio Chipmunk | 2021.2.1 for Windows 64-bit (929 MiB) と書かれていますので、Bumblebee 時代が終わったようです。
そしてこの記事を仕上げている今アクセスすると、もう Patch 1 に変わっていますので、アップデートが頻繁にあるようです。
Android Studio が再起動されると、インストール時のような設定が表示されました。
Android Studio 改善のための協力を求められています。 Android Studio やツールの使用状況等をプライバシーポリシーに従って提供すれば、 Android Studio の改善に役立てられるということです。 私は Don't send、協力しないをクリックしました。
プロジェクトが開かれると、画面右下にプロジェクトのアップデートが推奨されていると表示されました。
あくまで recommended ですので拒否もできるのでしょうが、不具合があると嫌です。 改めて「Gradle のビルド」に時間がかかるのが残念です。
アップグレードが強く推奨されていますので、 Begin Upgrade ボタンで開始します。
画面の下部の表示が変わりました。
Update だけにチェックが入っていますが、よくわかりませんのでこのまま Run selected steps ボタンをクリックし、アップグレードを完了します。
それなりに長い時間かかりました。 まだしばらくは使わない AdMob プロジェクトでやらなければよかったと思いましたが、 コンポーネントは共通で使えそうなので、仕方がない時間であると考えておきます。
リストから Upgrade の表示がなくなり、文字としては Android Gradle Plugin が 7.2.0 になったようですので、問題なさそうです。
Recommended steps、推奨される手順として、 ファイルをビルドするために Android manifest からパッケージを移動する、 が残りましたが、ひとまずはこのまま実行せずに進もうと思います。
投稿 May 28, 2022
すぐにコードを検証し進めるつもりはありませんが、どういう動作をするのかだけ、実機を接続して起動させてみます。
実機の接続について不明な点があるようでしたら、 「実機で動作を確認」を参照してください。
起動すると、このような画面になりました。
画面イメージでは全面白背景でしたが、実際には最上部にアプリ名が表示されました。 Empty Activity でプロジェクトを作成したものと似ています。
「NEXT LEVEL」ボタンをタップすると、 インタースティシャル広告が表示されました。
この広告は時間経過では閉じないようで(時間で閉じるとしたら長すぎます)、 左上の X ボタンで閉じると、元の画面に戻りました。
このとき、Level 2 になるのかと言えば、そうではなく、Level 1 のままでした。
再び「NEXT LEVEL」ボタンをタップすると、 今度はインタースティシャル広告は表示されず、表示が Level 2 になりました。
このあとも何度かタップすると、インタースティシャル広告が表示される時と表示されないで進むときがあるようで、 それは表示されすぎないよう、そういうコードになっているのかな、と想像しました。 画面切り替え時には画面下部に「onAdLoaded()」と表示されますが、 ボタンの処理で、わかりやすいように toast 表示しているようです。
表示されるインタースティシャル広告には、縦長のものもあるようです。
画面の切り替わりがあるアプリなら、これはそれほど邪魔にならなくて良さそうな気もします。 常に画面下、あるいは上に表示されている広告があると、操作可能な領域が減ってしまいますので。
2022 年 5 月に、ノート PC に Android Studio を新規にインストールした様子について書いています。
インストールしたばかりの Android Studio を試すため、Empty Activity を作成し、実機で動作させてみます。
Android Studio で全画面プロジェクトを作成する
インストールしたばかりの Android Studio を試すため、Fullscreen Activity を作成し、実機で動作させてみます。
以降の数学の基本となる素因数分解の基本部分を、ひたすらトレーニングするための JavaScript コードについて書いています。
因数分解の公式の一部について、ひたすらトレーニングするための JavaScript コードについて書いています。
Android 開発に関する記事をまとめた Android 開発トップ もご覧ください。