Android
This guide explains the process involved in creating projects when using Tier 2 for the Android platform. As the requirement is for Android 2.3.3 and above, you are able to code in native C/C++, rather than Java. Please note this guide focuses on the process for targeting Android on Microsoft Windows.
You will need to download the following files and packages. This assumes you have a 64-bit computer, if you have a 32-bit computer then download the 32-bit (x86) versions instead.
Java JDK
Go to http://www.oracle.com/technetwork/java/javase/downloads/index.html and download the latest version of the JDK. Click the download button next to the JDK, accept the license, and download the Windows x64 package. Once the download is complete proceed to install the software.
Android NDK
Go to https://developer.android.com/ndk/downloads/index.html and download the 64-bit package for Windows. Install these files to a location that does not contain spaces e.g. d:\AGKSTUDIO\NDK is acceptable whereas d:\my software\AGKSTUDIO\NDK is not.
Android Studio
Go to http://developer.android.com/sdk/index.html and download the latest version of Android Studio for your platform. Once downloaded run the installer and follow the on screen prompts.
Note that the AGK Tier 2 files must be installed in a path with no spaces, otherwise the NDK will fail to compile the necessary files.
Running Android Studio
Launch Android Studio and follow these instructions -
- Android Studio should automatically detect your Java installation, if not you will get an error message saying that Android Studio can't find it and ask you to set a JAVA_HOME variable. Double check your Java installation and set up a JAVA_HOME variable if necessary.
- When Android Studio first runs it will present an SDK Components Setup dialog, click Next or Finish and let it install the default components.
- When completed you should see a list of options such as Start a new Android Studio Project and Open and existing Android Studio Project, select Configure and then SDK Manager.
- In the SDK Platforms tab Android Studio will have automatically installed the latest SDK Platform, but we need to install a specific version. If the latest version is not 8.0 (API 26) then tick the box next to Android 8.0 (API 26). You only need the Platform option, not the Google APIs or any of the others.
- Now switch to the SDK Tools tab and tick Android Support Repository, Google Play Services, and Google USB driver, then click OK and let it install.
- Come back out of the Configure option and choose Open an existing Android Studio Project, browse to your AGK Tier 2 folder, then apps, select the template_android_google folder and click ok.
- When the project first loads, Gradle will attempt to sync and build the project, Grade is the build manager that ships with Android Studio. You will likely get some messages from Grade Sync saying it failed to find the correct Build Tools version, click the provided link to install the missing version
- Now Android Studio should be working without error, however it will not produce a valid application until we compile the NDK libraries for our project.
- Minimize Android Studio and browse to the location you installed the AGK Tier 2 files, then go to apps\template_android_google\AGK2Template\src\main
- In here you will see a file named jniCompile.bat, right click on it and choose Edit
- Change the line that starts set NDKBUILDCMD= to point to your NDK location, for example set NDKBUILDCMD="C:\AndroidDev\android-ndk-r16b\ndk-build", save this file and close it, then double click it to run the NDK compile process for this project. The NDK folder name may vary based on which version of the NDK you downloaded. The folder name itself is not important as long as it points to the NDK you downloaded.
- It will compile three libraries, one for arm64-v8a, one for armeabi-v7a, and one for x86, these cover the three most popular architectures that run Android. The libraries will be placed in the appropriate folders for Android Studio to pick up next time it builds an APK of your project.
- When it is done it should end with a line starting [x86] Install, if not then there was an error and you should check the log.txt file in the same folder as the jniCompile.bat file for details
- Now return to Android Studio and choose Build->Make Project it should display the Grade Console window with its progress and end with a BUILD SUCCESSFUL message. You can attempt to run this project on your device if you have already enabled it for USB Debugging, if not continue to the next section, or you can create a virtual device to test the project in an emulator.
- The template_android_google app should display a pale blue screen with the framerate displayed near the top left. It is not recommended that you make changes to this project as it can serve as the template for future projects. The recommended approach is to copy the template project and make changes to the copy, see the Creating a New Game Project for details.
Running on a device
The following steps will show you how to setup your device for testing your apps. Connect your Android device (your phone or tablet) to your PC by USB and turn on USB Debugging in Android's settings. To turn on USB Debugging:
- Plug in your device.
- Open Settings, scroll down to and tap on Developer Options, and tap the on-off switch at the top-right.
- Tap USB Debugging and accept the warning to enable it.
- This should trigger windows to re-detect your device with additional device components, this is where the Google USB Driver comes in that we downloaded earlier. Windows may automatically detect the debug portion of your device successfully, or it may require you install the Google USB Driver to detect it correctly.
More detailed instructions on USB Debugging and how to install the USB debug driver vary by device, and are outside the scope of this guide, but there are plenty of tutorials online. You will also need to enable the Unknown Sources option in the security section so that apps can be installed that have not been downloaded through Google Play.
Once your device is setup to receive debug apps you can click the Run icon in Android Studio and it should automatically detect your connected device and upload your newly compiled app to it.
Creating a new project
The following steps will show you how to set up a new project. Once you've completed all the preparation sections of this guide, this is where you should start from each time you want to make a new project.
- Navigate to your AGK Tier 2 files folder, open the apps folder and make a copy of the template_android_google folder. This will be your new project folder, and you can rename it as you wish as long as you don't use spaces.
- Note that for simplicity your new folder should remain within the apps folder as it contains relative paths to other areas of the AGK Tier 2 folder, notably the platform/android/jni folder. Moving it to another location will require project settings to be updated.
- When you open Android Studio it will default to opening the last project you had open, go to File->Close Project to return to the main menu if you no longer want to work with it, you can then open your new project with Open an existing Android Studio Project and browsing to the new project folder you created.
- NDK support in Android Studio is still experimental so we use the jniCompile.bat file mentioned earlier, but you can still edit the C++ files (those with the .cpp or .h extensions) inside Android Studio. Be sure to call the jniCompile.bat file after you make any changes to those files.
- To change the package name for your app open the AndroidManifest.xml file and edit the package field from its default of com.mycompany.mytemplate. Note that when you do this you will need to go through the other files and change any instance of com.mycompany.mytemplate to your new package name, you will get an error if you forget to do this.
- Leave any instances of com.thegamecreators.agk_player as they are, it does not affect the final app and is used to tie together lots of parts of the app, so handle with care.
- Open the build.gradle file for the AGK2Template module and edit the applicationId field from its default of com.mycompany.mytemplate to your chosen package name.
- To change the name of the app, open the res/values/strings.xml file and edit the app_name field.
- To write your app code you only need to modify the template.h and template.cpp files, these files are only read by the Android NDK when you run jniCompile.bat (or compile manually using the command line)
- If you wish to add more .cpp files you will need to edit the AGK2Template\src\main\jni\Android.mk file in notepad, look for the LOCAL_SRC_FILES := line and add additional .cpp files there, save it, and run jniCompile.bat again to recompile.
- To add media to your project, create an assets folder at [project_folder_name]\AGK2Template\src\main\assets replacing [project_folder_name] with your renamed folder. Note that in Tier 2 a folder named media is not required and you can place images, sounds, etc, directly in the assets folder. If you do use a media folder then remember to use agk::SetFolder("/media") near the start of your program to make it behave more like Tier 1.