<?xml version="1.0" encoding="utf-8"?>
<!-- Changes made to Package Name should also be reflected in the Debugging - Package Name property, in the Property Pages -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.$(ApplicationName)" android:versionCode="1" android:versionName="1.0">
<!-- This is the platform API where NativeActivity was introduced. -->
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19"/>
<!-- This .apk has no Java code itself, so set hasCode to false. -->
<application android:label="@string/app_name" android:hasCode="false"
android:theme="@android:style/Theme.NoTitleBar">
<!-- Our activity is the built-in NativeActivity framework class.
This will take care of integrating with our NDK code. -->
<activity android:name="android.app.NativeActivity" android:label="@string/app_name" android:configChanges="orientation|
screenSize"
android:launchMode="singleInstance">
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name" android:value="$(AndroidAppLibName)"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
変更が完了したらメニューから『ファイル(F)』→『AndroidManifest.xml の保存(S)』を選択して保存します。
プロジェクトの設定は以上です、お疲れ様でした。
4.プログラムを組む
長いプロジェクトの設定が終わったので、漸くプログラムを組めます。
『ソリューションエクスプローラー』と書かれているリストにある『main.cpp』をダブルクリックして内容を表示すると
最初から約300行のプログラムが書かれていますので、まずこれをすべて削除します。
( メニューから『編集(E)』→『すべて選択(A)』を選択した後、再度メニューから『編集(E)』→『削除(D)』を
選択するとすべて削除することができます )
あと、プロジェクト作成後の初期状態では『main.cpp』の文字コード形式は『シフトJIS』なのですが Androidアプリの
コンパイラは『シフトJIS』には対応していないので、以下の手順で文字コードを『UTF-8』に変更します。
@ 『ソリューションエクスプローラー』と書かれているリストにある『main.cpp』をダブルクリックして内容を
表示した状態でメニューから『ファイル(F)』→『保存オプションの詳細設定(V)...』を選択して
『保存オプションの詳細設定』ダイアログを表示します。
A 『保存オプションの詳細設定』ダイアログの『エンコード(E):』の項目を『日本語(シフトJIS) - コードページ 932』から
『Unicode(UTF-8 シグネチャ付き) - コードページ 65001』に変更して『OK』ボタンを押します。
これで『main.cpp』の文字コード形式が『UTF-8』になります。
因みに cppファイルや hファイルを新規作成した場合も、初期状態では『シフトJIS』となっていますので、
ソースファイルを新規作成した際もこの操作を行って文字コード形式を『シフトJIS』から『UTF-8』に変更
するようにしてください。
さて、気を取り直して何もプログラムに書かれていない状態になった main.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エミュレーターでプログラムを実行することになるので、下記の手順を踏んでエミュレーターの準備を行います。
@ Visual Studio Community 2015 のメニューの『ビルド(B)』→『構成マネージャー(O)』を選択して
構成マネージャーダイアログを開きます。
A 構成マネージャーダイアログの右上にある『アクティブ ソリューション プラットフォーム』の項目を
『ARM』に変更したあと、『閉じる』ボタンでダイアログを閉じます。
B ダイアログを閉じた後には、画面上部に『使用可能なデバイスが存在しません。』と表示されている箇所がありますので、
その少し右側にある下向きの小さい三角『▼』をクリックしてプルダウンメニューを表示します。
そしてプルダウンメニューの中にある『Android 仮想デバイス マネージャー...』をクリックして
『Android Virtual Device(AVD) Manager』を起動します。
C 『Android Virtual Device(AVD) Manager』のリストには最初は何も仮想デバイスが登録されていませんので、
まず『Create...』のボタンを押して『Create new Android Virtual Device (AVD)』のダイアログを表示します。
もし最初からリストに『AVD_GalaxyNexus_ToolsForApacheCordova』等の仮想デバイスが登録されていた場合は、
それをクリックして選択した後、ウインドウの右側にある『Edit...』ボタンを押して、仮想デバイスの
設定ダイアログ『Edit Android Virtual Device(AVD)』を開き、沢山ある設定の中の下のほうにある
『Use Host GPU』というチェックボックスにチェックを入れるだけの変更を行った後、『OK』ボタンを押して
設定ダイアログを閉じます。
そしてDは何も仮想デバイスが登録されていなかった場合の解説なので、Eに進んでください。
D 『Create new Android Virtual Device (AVD)』には設定項目が沢山ありますが、それぞれを以下のように入力してください。
AVD Name: | AVD_GalaxyNexus_ToolsForApacheCordova |
Device: | Galaxy Nexus (4.65", 720 x 1280: xhdpi) |
Target: | Android 4.4.2 - API Level 19 |
CPU/ABI: | ARM (armeabi-v7a) |
Keyboard: | (チェックを入れる)Hardware keyboard present |
Skin: | WVGA800 |
Front Camera: | None |
Back Camera: | None |
Memory Options: | RAM: 768 VM Heap: 64 |
Internal Storage: | 200 MiB |
SD Card | 200 MiB |
Emulation Options: | (チェック入れず)SnapShot (チェック入れる)Use Host GPU |
入力が完了したら、『Create new Android Virtual Device (AVD)』ダイアログの下の方にある『OK』ボタンを
押して、仮想デバイスを作成します。
E 次に改めてリストから『AVD_GalaxyNexus_ToolsForApacheCordova』を選択して、今度は『Start...』ボタンを押します。
F すると『Launch Options』というダイアログを表示されますので、特に設定は変更せずに『Launch』ボタンを押して
仮想デバイス( エミュレーター )を起動します。
起動には時間が掛かりますので、仮想デバイス画面上の『android』という文字が光っている表示が消えるまで暫く待ってください。
G 仮想デバイス画面上の『android』という文字が光っている表示が消え、仮想デバイス( エミュレーター )が起動したら
Visual Studio Community 2015 の画面に戻ってみてください、『使用可能なデバイスが存在しません。』と表示されていた箇所が
『AVD_GalaxyNexus_ToolsForApacheCordova(armeabiv7a - emulator-5554)』のような表示に変化していると思います。
これで Androidエミュレーターの準備は完了です。
6.プロジェクトのビルド、実行
エミュレーターの準備が完了したところで早速プログラムを実行してみましょう。実行するためには
@ Visual Studio Community 2015 のメニューから『デバッグ』→『デバッグの開始』
A すると『これらのプロジェクトは変更されています(T): ビルドしますか?』と表示されるので『はい』を押します。
B エラーがなければプログラムが実行されます。エラーがあった場合は画面下のウインドウ
にエラー内容が出てきますので指示にしたがって問題を修正してください。
仮想デバイス( エミュレーター )でのプログラムの実行は時間が掛かるので、数十秒待ってみてください。
…画面の中心に四角形が表示されたでしょうか?
仮想デバイス( エミュレーター )や Visual Studio Community 2015 の Android対応はまだ安定していないのか、
プログラム実行直後にエラーが表示されてプログラムのデバッグ実行が停止してしまったり、
仮想デバイス( エミュレーター )がフリーズして強制終了しなければならなくなったりすることが
ちょくちょく発生しますので、その際は仮想デバイスの再起動や、『デバッグの開始』を再度行うなどしてください。
あと、プログラムを終了する場合は Visual Studio Community 2015 のメニューから
『デバッグ』→『デバッグの停止』を選択します。
さてできあがった Androidアプリのパッケージファイルですが、それはプロジェクトのフォルダの中の
『test\test.Packaging\ARM\Debug』の中に『test.apk』というファイル名で作成されます。
( プロジェクト名を『test』以外にした場合は、『test』の代わりに付けたプロジェクト名となります )
この apk ファイルを Android端末にインストールすれば Visual Studio Community 2015 を介さなくても作成したアプリが動作します。
( Android の Playストアに提出するファイルも、この apk ファイルとなります )
これでDXライブラリを使っての Androidアプリ開発の方法はわかりました。後は好きにプログラムを組んで
ゲームを作るだけです。ですがまだDXライブラリの機能は初期化と終了とドットを描画する関数しかわかっていません。
この他の関数は DXライブラリ関数リファレンスのページ で解説されていますのでそちらを参照して下さい。
あと、Androidアプリの開発に関する基礎的な情報や注意点を Androidアプリ開発の基礎的な情報や注意点など で
解説していますので、こちらも併せてご覧ください。
戻る