このサイトでは、分析、カスタマイズされたコンテンツ、および広告に Cookie を使用します。このサイトを引き続き閲覧すると、Cookie の使用に同意するものと見なされます。
Hi, Developers,
straightapps.com ロゴ
最終更新 August 19, 2022
トップページ > Android 開発トップ
line
Android 開発
line

ここでは、Android アプリ開発情報を発信しています。

Android アプリ開発時に調べたり試したりした、C++ によるネイティブアプリ開発情報を中心に発信しています。 また、Android Studio で Java によるアプリ開発情報も、同時に発信しています。

このページに、Android 開発に関するトピック一覧をまとめています。

ご利用に際しては、必ずプライバシーポリシー(免責事項等)をご参照ください。

まずは、重要なお知らせ

投稿 December 12, 2017、更新 May 27, 2022

Windows 10 + Visual C++ で Android アプリを開発できるようになり、 手元に古い Android 端末も用意できたので、いろいろ試し始めました。 私はもともと Windows + Visual C++(主に MFC 使用)でデスクトップアプリを開発していましたので、 何から何まで何でも自由にできる Android ネイティブアプリを作ろうとしました。

ところが、書籍やネットには、ネイティブアプリに関する情報があまりありませんでした。

そこで、このページでは、Android ネイティブアプリを開発するときに調べたり試したりした内容、コードについて、 勉強しながら書いた内容をまとめて、記録・紹介しています。 ですので、内容的には完全でなかったり、よりよい方法があったりするかもしれませんが、 とにかくやってみた結果を記述しています。

トピックごとにページを用意しています。 内容・コードについては手元で動作しているものをもとにしていますが、改めて、十分に精査されていない可能性もありますので、ご注意をお願いします。

▼ 新しい開発環境のお知らせ February 20, 2020

当初は Visual C++ 2015 を Win10 32 ビットで動作させ、Android 4.4.2 の実機を接続して試していました。

詳細を表示

実機を Android 8 や Android 9 にしたところ、Visual C++ 2015 では使用可能な Android 開発環境が制限され、 実機にてデバッグできませんでしたので、マイクロソフト・アカウントがある個人なら無償で利用可能な Visual Studio Community 2019 をインストールし、Android 9 端末でデバッグもできるようにしています。

Visual Studio Community 2019 のインストールについては、 Visual Studio 2015 がインストール済みのノート PC に、すべての機能を既定のCドライブにインストールしている 「VS Community 2019 を共存インストールする」、 同じく Visual Studio 2015 がインストール済みのデスクトップ機で、 Cドライブが SSD のため Cドライブには最小限に、なるべく HDD のDドライブにインストールされるように工夫した 「VS Community 2019 を共存インストールする(デスクトップ)」 に書いています。 これからインストールされる方は参考にしていただけると思います。

なお、現時点では、特に注釈のない限りは VC++ 2015 を用いたコードですが、基本的にはそのままで VC++ 2019 でも動作すると思われます。

▲ページ先頭へ

Android Studio(Java)による開発

更新 August 19, 2022

Android Studio の Java 開発環境で、独自のビューを作成して設定し、アプリを作成できるまでを目標にしています。

Canvas だけでもアプリはできる! (項目を隠す)

#1  Android Studio で文字を自由に描画する(6/23/2022) 概略 ( 独自のビューを作成して、描画関数 onDraw で受け取る Canvas に自由に文字を描画する方法と、関連する基本コード、実機によるテストについて書いています。 )

#2  Android Studio で画像を自由に描画する(6/29/2022) 概略 ( あらかじめ用意した透過ありの PNG 画像を Canvas に描画する方法と、タッチイベントの処理について書いています。 )

#3  Android Studio でタイマーによる自動画面更新(7/4/2022) 概略 ( MainActivity でタイマーをインストールし、一定時間ごとに独自のビューを更新する処理について書いています。 )

#4  Android Studio で効果音を鳴らす(7/4/2022) 概略 ( 画面にタッチされたときに、raw リソースに追加した wav や mp3 の短い効果音を鳴らす処理について書いています。 )

#5  Android Studio で画面を準備する(7/18/2022) new 概略 ( アクションバーの消去、画面の縦固定指定、背景画像描画、そしてタッチでウェブサイトを開くコードを作成しています。 )

#6  Android Studio でボタン表示&入力(7/23/2022) new 概略 ( 座標管理クラスを作成して画面に適切なサイズのボタンを表示し、どれが押されたか判断するタッチ処理、およびトースト表示や独自クラスを実装しています。 )

#7  Android Studio でゲームクラスを更新(7/30/2022) new 概略 ( 正解の選択肢をタッチしたときに正解音を鳴らし、赤い丸を表示し、自動的に次の問題に進む処理を実装しています。 )

#8  Android Studio でゲームとして整える(8/18/2022) new 概略 ( スタートボタンを押すとゲームが始まり、規定の問題数が解答されれば終了と判断します。 また、開始から終了まで時間を測り、ゲーム中画面に進行状況と使用タイムを表示するようにします。 )

▲ページ先頭へ

現在あるトピックへのリンク一覧

更新 July 7, 2022

開発環境のインストール (項目を隠す)

VS Community 2022 をインストールする(5/12/2022) 概略 ( 個人開発に無償で使える Visual Studio Community 2022 を、モバイル開発できる設定でインストールしています。 )

Android Studio をインストールする(5/21/2022) 概略 ( ネイティブアプリ開発のようにハードルが高くない Java による開発が可能な Android Studio を新規インストールしています。 )


Android Studio の初期テスト (項目を隠す)

Android Studio で新規プロジェクトを作成する(5/19/2022) 概略 ( Android Studio で SDK を整え、新規に Empty Activity を作成して実機で動作を確認しています。 )

Android Studio で全画面プロジェクトを作成する(5/24/2022) 概略 ( Android Studio で新規に Fullscreen Activity を作成して実機で動作を確認しています。 )

Android Studio で Native C++ プロジェクトを作成する(5/31/2022) 概略 ( Android Studio で JNI を使う Native C++ プロジェクトを作成して実機で動作を確認しています。 )

Android Studio で AdMob プロジェクトを作成する(5/28/2022) 概略 ( Android Studio で新規に AdMob Activity を作成して実機でインタースティシャル広告の動作を確認しています。 )

Android Studio で ActionBar を非表示にする(6/3/2022) new 概略 ( Android Studio で新規に Empty Activity などを作成したときに画面上部に表示されるアプリ名の部分「アクションバー」を非表示とする方法について書いています。 )


【ネイティブ・VC++】Android フレームワーク (項目を隠す)

android_main 関数(ループ前)(1/12/2018) 概略 ( main.cpp ファイルの android_main 関数の冒頭、struct engine の初期化部分を検討しています。 )

android_main 関数(ループ前2)(1/29/2018) 概略 ( main.cpp ファイルの android_main 関数のメインループ前の処理(センサー初期化部)を検討しています。 )

android_main 関数(メインループ)(6/8/2019) 概略 ( main.cpp ファイルの android_main 関数のメインループ処理を検討しています。 )


【ネイティブ・VC++】Android アプリ開発 (項目を隠す)

APP_CMD_*** メッセージ(9/18/2018) 概略 ( Android ネイティブアプリは Windows と同じように、システムからのメッセージを処理して進む構成となっています。 )

VC++ 2019/2015 で新規プロジェクトを作成する(3/5/2021) VC++2019 概略 ( Visual Studio 2019 で Android アプリのプロジェクトを新規作成する手順について書いています。VS2015 も残してあります。 )

アプリ固有のファイルへのアクセス(12/20/2017) 概略 ( アクティビティの internalDataPath サブフォルダに格納するアプリ固有のファイルへのアクセスについて書いています。 )

タッチ入力の取得(基本編)(4/9/2021) VC++2019 概略 ( Android ネイティブアプリでタッチイベントを取得し、その座標をもとに画面にラインを引いてみます。 )

Backボタンを処理する(2/15/2018) 概略 ( スマホ画面の下に表示されている Back(左向き三角)ボタンを処理するためのコードについて、書いています。 )

アプリケーション名を指定する(12/28/2017) 概略 ( AndroidManifest などでアプリ名を指定する方法について、書いています。 )


【ネイティブ・VC++】OpenGL (項目を隠す)

OpenGL ES で 2D テクスチャを描画する(3/13/2021) VC++2019 概略 ( OpenGL ES で、BMP 画像を画面全体に描画してみます。 )

OpenGLES で 2D テクスチャを作成する(3/13/2021) VC++2019 概略 ( 画面に自由に描画を行うために、BMP 画像から 2D テクスチャを作成する方法について、書いています。 )

24 ビット BMP 画像を読み込む(3/6/2021) VC++2019 概略 ( OpenGL ES の 2D テクスチャ作成に使用するため、24 ビット BMP 画像を読み込む手順について、書いています。 )

OpenGLES での色指定(3/6/2021) VC++2019 概略 ( OpenGL ES で、色を指定する方法について、記録しています。 )


【ネイティブ・VC++】JNI (項目を隠す)

動的にパーミッションを取得する(6/15/2020) VC++2019 概略 ( ネイティブアプリで動的にストレージ書き込み権限を得る方法について、書いています。 )

Java クラス関数の作成と呼び出し(2/17/2020) VC++2019 概略 ( ネイティブアプリから Java 関数を呼び出す方法について、書いています。 )

JNI によるパブリックなパスの取得(1/11/2018) 概略 ( JNI により、SD カードや Downloads などのパブリックなパスを取得する方法について、書いています。 )

JNI によるスタティックな定数の取得(1/11/2018) 概略 ( JNI により、DIRECTORY_DOWNLOADS や DIRECTORY_PICTURES のようなスタティックな定数の値の取得方法について、書いています。 )

JNI でウェブサイトを開く(4/5/2021) VC++2019 概略 ( ネイティブアプリでは、画面にテキストを表示するのが非常に難しいようですので、とりあえずウェブサイトで説明等を開けるようにします。 )


【ネイティブ・VC++】C/C++ (項目を隠す)

C/C++ による文字列操作 CString を代用(10/12/2018) 概略 ( 自由に文字列操作できる MFC の CString を代用するクラス(最低限の機能のみ)を C/C++ で作成します。 )

C/C++ によるログ出力(3/6/2021) VC++2019 概略 ( ネイティブアプリ開発中に動作確認できるよう、途中経過をログに出力できるようにしています。 )

C/C++ による数値のフォーマット(2/16/2018) 概略 ( sprintf 関数では入らない、数値(整数)を 3 桁ごとにカンマを入れた文字列に変換します。 )

C/C++ による経過時間の検査(12/25/2017) 概略 ( 処理時間を計測する目的で、処理開始などの時点からの経過時間を計測する方法について、書いています。 )

C/C++ による現在日時の取得(12/25/2017) 概略 ( 現在日時を取得するため、clock_gettime 関数で得た timespec 値から変換する方法について検討しています。 )


【Android アプリ開発】その他 (項目を隠す)

Play Console の新規約を受け入れる(5/6/2020) 概略 ( 2020 年前半に Android 開発者メールに届いた新規約について、書いています。 )

▲ページ先頭へ

まずはログファイルを作成したかった

更新 February 16, 2018

ここにあった記述は「C/C++ によるログ出力」に移動されました。

▲ページ先頭へ

<はじめに> 開発の背景(運営者情報(プロフィール))

更新 December 11, 2017

筆者は Windows、Visual C++/MFC で主にコーディングをしています。 GUI の OS としては、 Windows 3.11 for Workgroups ( 英語版でした。 ) 、Visual C++ 1.0 でコーディングを始めました。 もちろん、それ以前に、BASIC や MS-C といった経験はありましたが。

(続きを表示)

参考にしたのは Windows の基本動作を理解可能な Programming Windows、WindowProc 関数でメッセージを処理するものです。 WM_ で始まる Windows メッセージを受信し、必要なものを処理します。 この構成の理解は、Android でも役に立つ、理解の基本になると思います。

そして自然に MFC に移行していったわけですが、Windows API と組み合わせると、かなり何でも自由にできてしまいます。 ポインタやメモリリークなどの危険は常にありますが、コモンコントロールも自由に使えて、画面の構成も自由、 他人のウィンドウにメッセージを出して制御するなんてことも可能で、大変魅力的に感じました。

Android でも自由に何でもやりたい、それにそもそも今から普通に Android アプリに参入しても仕方ないので、 ネイティブアプリを書こうと思ったのですが、ネット上にも本屋にも、ネイティブアプリの情報は多くありませんでした。 かなり基本的なところから調べ、勉強しなければなりませんでしたが、やっと形になってきましたので、 Google Play に最初のアプリを提出するにあたり、情報をまとめておこうと、本サイトを立ち上げました。

それぞれの項目でかなり苦労していますので、正直、環境の構築などは忘れていますが・・・ Windows 10 Pro(32 ビット版)、Visual Studio 2015 で、クロスプラットフォーム開発を行っています。

(December 12, 2019)
開発環境は Windows 10 Pro(64 ビット版)に移行しつつあります。

▲ページ先頭へ

line
関連トピックス
line

Android 端末の設置や操作については、「Android 操作トップ」にまとめています。
登録した Google アカウントの変更、端末のロック設定、端末を探すアプリの操作などを書いています。

line
その他のおすすめ
line

おすすめ記事はありません。



© 2017-2022 StraightApps.com 無断転載を禁じます。No reproduction without permission.