gaan (shor for Google Analytics Android NDK) is an Android NDK wrapper for the Google Analytics API V2
Why?
This wrapper is intended for Android NDK apps that needs to invoke the Google Analytics API. More notably are games written in C++ / Cocos2d-x as was my case when I started this project ;)
I've just started this project. Currently, only supports:
I asumme that you are familiar with Google Analytics API and Android NDK. If not, please read first:
- https://developers.google.com/analytics/devguides/collection/android/v2/ (1)
- http://developer.android.com/tools/sdk/ndk/index.html
Your project must integrate the Google Analytics SDK as explained in (1).
Then add the JNI wrapper as follows:
- Copy
<thisrepo>/srcto<yourproject>/srcand update your project to compile those new source files - Copy
<thisrepo>/jni/gaanto<yourproject>/jni - Edit or create
<yourproject>/jni/Application.mkand add:
APP_STL += gnustl_static
4. Edit <yourproject>/jni/Android.mk and add two lines:
LOCAL_WHOLE_STATIC_LIBRARIES += gaan
include $(BUILD_SHARED_LIBRARY) # this line *already* exists in your file
$(call import-module, gaan)
Yes, the order is important!
5. Initialize the gaan::JniHelper singleton by adding this to your main.cpp or equivalent file.
#include "gaan/JniHelper.h"
extern "C"
{
jint JNI_OnLoad(JavaVM *jvm, void */*reserved*/)
{
gaan::JniHelper::setJvm(jvm);
return JNI_VERSION_1_4;
}
} // extern "C"
If you already have a JNI_OnLoad() function just add gaan::JniHelper::setJvm(jvm);
The example/ directory contains an Eclipse project with a fully working example.
NOTE: To compile it needs the ndk-build command to be in your PATH enviroment variable.