Android Studio による Androidアプリ開発でのDXライブラリの使い方


 Android Studio を使用してDXライブラリを使った Androidアプリを製作するには以下のような手順を踏みます。

1.DXライブラリを使うために必要なものを揃える

2.プロジェクトの作成

3.DXライブラリを使用するためのプロジェクトの設定を行う

4.プログラムを組む

5.Androidエミュレーターの準備

6.プロジェクトのビルド、実行



1.DXライブラリを使うために必要なものを揃える

Android Studio でDXライブラリを使用して Androidアプリを製作するには以下のものが必要です。

    ・Android Studio
    ・DXライブラリ Android版

 まず Android Studio は、プログラムをコンパイルして実行可能な Androidアプリを作成する為のメインとなるソフトです。
 こちらは Google のこちらのページ『Download Android Studio Electric Eel』 と書かれている箇所をクリックすることで無償で入手することができますので、
ありがたくダウンロード&インストールさせてもらって下さい。
インストールや初回起動で色々訊かれますが、初期設定のまま進めればOKです。

 二つ目の DXライブラリ Android版は本サイトのこちらのページからダウンロードすることができます。
これがないとDXライブラリを使うことができませんので、まだダウンロードされていない方は
DXライブラリ Android版』をダウンロードしておいてください。



2.プロジェクトの作成

 Androidアプリを開発するためのソフトの準備ができましたので、早速一つ簡単な Androidアプリを作ってみましょう。
 ここでは『画面の中心に四角形を表示する』という動作をするアプリを作る手順を記したいと思います。
 Android Studio で Androidアプリを作るにはまず『プロジェクト』を作成する必要があるので以下にその方法を記します。

   ① Android Studio の起動メニューで『New Project』をクリックして、
     『New Project』ダイアログを表示します。

   ② ダイアログ左側のタブから『Phone and Tablet』を選択した後、
     右側のプロジェクトの種類の表から『Native C++』を選択してから、
     ダイアログ右下の『Next』をクリックします。

   ③ 次にプロジェクトに関する設定を行う画面が表示されたら、最初にプロジェクトの名前を
     『Name』に入力します。ここでは仮に『test』とします。

   ④ 次にプロジェクトを作成するフォルダパスを『Save location』に入力します。

   ⑤ 次に『Language』を『Kotlin』から『Java』に変更します。

   ⑥ 最後に『Minimum SDK』を『API 26: Android 8.0 (Oreo)』に変更した後、『Next』をクリックします。

   ⑦ 次にC++関係の設定を行う画面が表示されたら特に設定は変更せずに『Finish』をクリックします。

   <ここから先は初めてのプロジェクト作成の場合のみの手順です>

   ⑧ これでプロジェクトは作成され、プロジェクトウィンドウが画面に表示されますが、
     初回起動では暫く( 数分 )待っているとウィンドウの下側に
     『NDK not configured. Download it with SDK manager. Preferred NDK version is '21.0.6113669'.』
     のようなエラーが表示されますので、その下にある『Install NDK '21.0.6113669' and sync project』を
     クリックして NDK( Native Development Kit の略、C++ を使った Androidアプリの開発に必要なもの )
     をインストールしてください。
      因みに、Android Studio はこのように必要なものが無かった場合、その都度『〇〇がありません、
     インストールしますか?』のように訊いてくるので、その場合は素直にインストールします。

   ⑨ NDK のインストールダイアログでは最初に『License Agreement』が表示され、下側の選択項目が『Decline』に
     なっていますので、こちらを『Accept』に変更してから『Next』をクリックするとインストールが開始されます。

   ⑩ インストールが終了したらダイアログ右下の『Finish』をクリックしてダイアログを閉じます。

   ⑪ NDK のインストールが終了するとプロジェクトのビルドが自動で開始されますので、
     終了するまで数分待ちます。

 これでプロジェクトの作成は完了です。



3.DXライブラリを使用するためのプロジェクトの設定を行う

 プロジェクトを作成した後は以下の手順に沿ってプロジェクトでDXライブラリを使うための設定を行います。

  1. まず Android Studio の画面の左側のリストから『app』→『manifests』の中にある『AndroidManifest.xml』を
    ダブルクリックして内容を表示します。
    その内容は以下のようになっていると思いますが、
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Test" tools:targetApi="31"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.lib_name" android:value="" /> </activity> </application> </manifest>

    これを以下のように変更します。( 色が緑の部分が変更箇所や追加箇所で、meta-data の削除も含めて6箇所です )
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="false" android:theme="@style/Theme.Test" android:hasCode="false" tools:targetApi="31"> <activity android:name="android.app.NativeActivity" android:exported="true"> <meta-data android:name="android.app.lib_name" android:value="native-lib" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove" /> </application> </manifest>


  2. 次に画面左側のリストから『app』→『cpp』の中にある『CMakeLists.txt』を
    ダブルクリックして内容を表示します。
    その内容は以下のようになっていると思いますが、
# For more information about using CMake with Android Studio, read the # documentation: https://d.android.com/studio/projects/add-native-code.html # Sets the minimum version of CMake required to build the native library. cmake_minimum_required(VERSION 3.18.1) # Declares and names the project. project("test") # Creates and names a library, sets it as either STATIC # or SHARED, and provides the relative paths to its source code. # You can define multiple libraries, and CMake builds them for you. # Gradle automatically packages shared libraries with your APK. add_library( # Sets the name of the library. test # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). native-lib.cpp) # Searches for a specified prebuilt library and stores the path as a # variable. Because CMake includes system libraries in the search path by # default, you only need to specify the name of the public NDK library # you want to add. CMake verifies that the library exists before # completing its build. find_library( # Sets the name of the path variable. log-lib # Specifies the name of the NDK library that # you want CMake to locate. log) # Specifies libraries CMake should link to your target library. You # can link multiple libraries, such as libraries you define in this # build script, prebuilt third-party libraries, or system libraries. target_link_libraries( # Specifies the target library. test # Links the target library to the log library # included in the NDK. ${log-lib})

    これを以下のように変更します。( 色が緑や赤の部分が変更箇所や追加箇所です )
# For more information about using CMake with Android Studio, read the # documentation: https://d.android.com/studio/projects/add-native-code.html # Sets the minimum version of CMake required to build the native library. cmake_minimum_required(VERSION 3.18.1) # Declares and names the project. include_directories( DXライブラリAndroid版パッケージ内の『Lib_AndroidStudio』のフルパス/${ANDROID_ABI} ) link_directories( DXライブラリAndroid版パッケージ内の『Lib_AndroidStudio』のフルパス/${ANDROID_ABI} ) project("test") # Creates and names a library, sets it as either STATIC # or SHARED, and provides the relative paths to its source code. # You can define multiple libraries, and CMake builds them for you. # Gradle automatically packages shared libraries with your APK. add_library( # Sets the name of the library. native-lib # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). native-lib.cpp) # Searches for a specified prebuilt library and stores the path as a # variable. Because CMake includes system libraries in the search path by # default, you only need to specify the name of the public NDK library # you want to add. CMake verifies that the library exists before # completing its build. find_library( # Sets the name of the path variable. log-lib # Specifies the name of the NDK library that # you want CMake to locate. log) # Specifies libraries CMake should link to your target library. You # can link multiple libraries, such as libraries you define in this # build script, prebuilt third-party libraries, or system libraries. target_link_libraries( # Specifies the target library. native-lib # Links the target library to the log library # included in the NDK. ${log-lib} android GLESv1_CM EGL GLESv2 OpenSLES m DxLib DxUseCLib jpeg png zlib tiff theora_static vorbis_static vorbisfile_static ogg_static bullet opus )
    『DXライブラリAndroid版パッケージ内の『Lib_AndroidStudio』のフルパス』と
    書かれている部分は、DXライブラリAndroid版パッケージ内のフォルダ『Lib_AndroidStudio』のパスに
    置き換えてください。( 更にディレクトリの区切りは \ ではなく / にする必要があります )
    例えばダウンロードした『DXライブラリAndroid版』のパッケージを Cドライブの直下( C:\ )に展開した場合は
              C:\DxLib_Android\Lib_AndroidStudio
    がフルパスとなりますので、その場合は include_directories と link_directories の2行の記述は
include_directories( C:/DxLib_Android/Lib_AndroidStudio/${ANDROID_ABI} ) link_directories( C:/DxLib_Android/Lib_AndroidStudio/${ANDROID_ABI} )

    となります。( \ を / に置き換えるのを忘れないようにしてください )
    尚、DXライブラリをダウンロードフォルダやドキュメントフォルダに入れるとこれらのパス指定が面倒になりますので
    DXライブラリはなるべく浅いフォルダに入れておくことをお勧めします。



  3. 次に画面左側のリストから『Gradle Scripts』の中にある『build.gradle (Module: (プロジェクト名).app)』を
    ダブルクリックして内容を表示します。
    その内容は以下のようなものになっていると思いますが、
plugins { id 'com.android.application' } android { compileSdk 32 defaultConfig { applicationId "com.example.test" minSdk 26 targetSdk 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags '' } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') version '3.18.1' } } buildFeatures { viewBinding true } } dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' }

    こちらの下から 5行目の
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

    こちらの行の下に以下の行を追加します。
implementation "androidx.startup:startup-runtime:1.1.1"

    加えて、下から7行目の
implementation 'androidx.appcompat:appcompat:1.6.1'

    こちらの行の 1.6.1 の箇所を 1.5.1 に変更します。
implementation 'androidx.appcompat:appcompat:1.5.1'

    これらの変更を加えると、画面上部に
   『Gradle files have changed since last project sync. A project sync may be necessary for the IDE to work properly.』
    という表示がされますので、その文章の右側にある『Sync Now』をクリックして、プロジェクトの同期を行います。


 プロジェクトの設定は以上です。



4.プログラムを組む

 Android Studio の画面左側のリストの『app』→『cpp』の中にある『native-lib.cpp』をダブルクリックして内容を表示すると
最初から約10行のプログラムが書かれていますので、まずこれをすべて削除します。

 そして何もプログラムに書かれていない状態になった native-lib.cpp に、以下のプログラムを入力します。

#include "DxLib.h" // プログラムは android_main から始まります int android_main( void ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } DrawBox( 220, 140, 420, 340, GetColor( 255,255,255 ), TRUE ) ; // 四角形を描画する WaitKey() ; // キー入力待ち DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }



 プログラムはこれだけです、どの部分が何をしているのか簡単に説明します。
 まず最初の1行はDXライブラリを使用するために必要なファイル( DxLib.h )をインクルードしています。
 次の『int android_main( void )はDXライブラリを使用した Androidアプリのプログラムのスタート地点となる関数の宣言です。
( 因みにDXライブラリを使用しない Androidアプリのスタート地点も android_main ですが、戻り値や引数が異なります… )
 中括弧内の最初の文『if( DxLib_Init() == -1 ){ return -1 ; }』はDXライブラリを初期化して使える状態にするために必要な関数『DxLib_Init』を呼んでいます。
この関数はDXライブラリを使うプログラムを組む際には例外を除いてまず最初に呼び出す必要があります。
因みに『if(...』と書かれているのは初期化が失敗したらその時点でソフトを終了させるという処理を行うための物です。
 『DrawBox』は関数名そのまま四角形を描画するための関数です。
 その次の『WaitKey』はキーボードのキーが押されるまで処理を止める関数です。( Androidアプリでもキーボードを接続すればキーボードを使うことができます )
 最後の『DxLib_End() ;』は注釈にも書いてある通りDXライブラリの使用を終了する処理を行う関数を呼んでいる文です。
DXライブラリを使用しているプログラムは最後に必ずこの関数を呼ばなくてはなりません。



5.Androidエミュレーターの準備

 プログラムの入力も終わったので、早速実行!
 と、行きたいところですが、その前に『Windows上で動作する Android端末のエミュレーター』を用意する必要があります。
 Android のスマートフォンやタブレットを所持している場合は、その端末上で実行することもできるのですが
開発中は主に Androidエミュレーターでプログラムを実行することになるので、下記の手順を踏んでエミュレーターの準備を行います。

  ① Android Studio のメニューの『Tools』→『Device Manager』を選択して
    『Device Manager』を表示します。

  ② 最初は何もエミュレーターが作成されていない状態ですので、表示内の『Create Device』をクリックします。

  ③ 次に『Select Hardware』の画面が表示されますが、最初から作成するデバイスの設定がされていますので、
    特に変更はせずに『Next』をクリックします。

  ④ 次の『System Image』では作成するデバイスで使用する AndroidOS のイメージを選択するのですが、最初はイメージが一つも
    無い状態なので、リストの『API Level』が『28』となっている行の『Download』をクリックして、少し古めのシステムのイメージをダウンロードします。


  ⑤ システムイメージダウンロードダイアログでは最初に『License Agreement』が表示され、下側の選択項目が『Decline』に
    なっていますので、こちらを『Accept』に変更してから『Next』をクリックするとダウンロード及びインストールが開始されます。

  ⑥ システムイメージのダウンロードとインストールが完了したらダイアログ右下の『Finish』をクリックしてダイアログを閉じます。

  ⑦ すると『System Image』の画面に戻り、且つリストの一番上の行が選択された状態になっていますので、
    そのままダイアログ右下側にある『Next』をクリックします。

  ⑧ 次の『Android Virtual Device (ADV)』の画面では仮想デバイス( エミュレーター )の名前などを変更できますが、
    特に変更せずにダイアログ右下の『Finish』をクリックします。

  ⑨ 次に『Device Manager』の画面になり、作成したエミュレーターが追加されていますので、『Actions』の項目の下に
    表示されている右三角マーク( ▶ )をクリックしてエミュレーターを起動します。

  ⑩ エミュレーターの起動には時間が掛かりますので暫く待ちます。

 これで Androidエミュレーターの準備は完了です。



6.プロジェクトのビルド、実行

 エミュレーターの準備が完了したところで早速プログラムを実行してみましょう。

  ① Android Studio のメニューから『Build』→『Make Project』を選択して、プロジェクトをビルドします。

  ② ビルドが終了したら、次にメニューから『Run』→『Run 'app'』を選択します。

  ③ エラーがなければプログラムが実行されます。

 成功すれば、仮想デバイス( エミュレーター )の画面の中心に四角形が表示されます。
 さてできあがった Androidアプリのパッケージファイルですが、それはプロジェクトのフォルダの中の
『test\app\build\outputs\apk\debug』の中に『app-debug.apk』というファイル名で作成されます。
( プロジェクト名を『test』以外にした場合は、『test』の代わりに付けたプロジェクト名となります )

この apk ファイルを Android端末にインストールすれば Android Studio を介さなくても作成したアプリが動作します。
( Android の Playストアに提出するファイルも、この apk ファイルとなります )

 これでDXライブラリを使っての Androidアプリ開発の方法はわかりました。後は好きにプログラムを組んで
ゲームを作るだけです。ですがまだDXライブラリの機能は初期化と終了とドットを描画する関数しかわかっていません。
 この他の関数は DXライブラリ関数リファレンスのページ で解説されていますのでそちらを参照して下さい。

 あと、Androidアプリの開発に関する基礎的な情報や注意点を Androidアプリ開発の基礎的な情報や注意点など
解説していますので、こちらも併せてご覧ください。




戻る