extensions
Volodymyr Shymanskyy 5 years ago
parent 47cda5e98d
commit 74673bfe1a

@ -1,19 +1,24 @@
## Build for Android
Install Android SDK Tools, adb.
Install Android SDK Tools, then:
```sh
export ANDROID_HOME=/opt/android-sdk/
export PATH=$ANDROID_HOME/tools/bin:$PATH
./gradlew build
```
```
export SDKMANAGER_OPTS="-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee"
# On my Ubuntu, I had to:
#export SDKMANAGER_OPTS="-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee"
sdkmanager --install ndk-bundle
```
Build:
```sh
./gradlew build
```
Install on device:
```
adb install -r ./app/build/outputs/apk/debug/app-debug.apk

@ -0,0 +1,43 @@
/*
* Override printf, puts, putchar
*/
JNIEnv* jniEnv;
void callOutputText(const char* text) {
JNIEnv *env = jniEnv;
jstring javaMsg = (*env)->NewStringUTF(env, text);
(*env)->CallVoidMethod(env, activityObj, outputTextId, javaMsg);
(*env)->DeleteLocalRef(env, javaMsg);
}
int printf(const char * format, ... )
{
char buff[256] = {};
va_list args;
va_start (args, format);
const int result = vsnprintf(buff, sizeof(buff), format, args);
va_end (args);
if (result > 0) {
callOutputText(buff);
}
return result;
}
int puts(const char *s)
{
callOutputText(s);
callOutputText("\n");
return strlen(s);
}
int putchar(int c)
{
char buff[2] = { c, '\0' };
callOutputText(buff);
return c;
}
Loading…
Cancel
Save