lecture: How to bring compute intensive C++ based apps to Android
You already have some C++ code for the desktop and you ever wanted to port this to Android? Then you should not wait to come to this talk. We'll guide you through the typical steps and pitfalls in this porting process using a demo application and our open source geometry app TiGL Viewer.
The TiGL Viewer desktop application is used at the German Aerospace Center for aircraft design. It is mainly used to display 3D aircraft geometries, which are computed from a parametric description. The core components of the application are the CAD kernel OpenCASCADE for 3D geometry computation and the OpenGL based rendering engine OpenSceneGraph – both written in C++. Due to its relatively large tested code base and the use of the third party libraries, a reimplementation in Java was not reasonable.
In this talk, we present the required steps in porting the program to Android by reusing the native C and C++ Code. These steps include cross-compiling the CMake based libraries for Android (arm, x86) using a standalone tool chain from the Native Development Kit (NDK), setting up the NDK build system for the native parts of the TiGLViewer app, integrating the NDK build into the Gradle build system, using the Java Native Interface (JNI) to communicate with the native code. Further, we present the differences in the Android lifecycle for native code compared to Java code. Finally, we show how even CPU and GPU hungry apps can be tested efficiently with the x86 based Android emulator using Intel’s HAXM acceleration. All these steps will be executed live during presentation on a small tutorial app.
Start time: 10:00
- Moderne Web-Anwendungen mit AngularJS
- Workshop (C115)
- Learning Platform eDiViDe
- Linux im interaktiven Funkstreifenwagen
- Database Federation mit PostgreSQL
- Mehr als E-Mails
- HS6 (PHP)
- A CouchDB replication endpoint in PHP
- RedFrogConf (C118)
- Not being an asshole is not enough
- Java / Django (C116)
- Neue Features in JavaFX 8
- Archlinux (C125)
- The community of Arch Linux