A compatibility layer for applications packaged as ".apk".
2013-04-22 Two new support modules have now been merged and are ready for testing. Thanks to notaz and liar for their respective modules.
2013-04-10 New work-in-progress module by liar has been announced on TMO. See pull request 9 for more information.
2013-03-03 Coverage of apkenv for Pandora by PandoraLive.
2013-01-09 crowriot has ported apkenv to the OpenPandora games console.
2012-12-23 I've added two incomplete support modules to the repository that still need some work. Also, apkenv 42.3.14 was released.
2012-12-21 Art-O has contributed a new module for FN - again, you'll find it int the Git repository.
2012-12-20 Art-O has contributed a new module for AB - you'll find it in the Git repository.
2012-11-19 apkenv source code released. Happy hacking!
2012-11-16 Wrapper generator scripts source code released.
2012-11-03 The old binaries are outdated and should not be used anymore.
2012-10-21 Project announced, initial proof-of-concept released.
Only use this compatibility layer for applications that you have the rights to use. If you are unsure, DO NOT use this compatibility layer, and use Nitdroid instead, which is also able to run .apk files on the target devices (and all of them, instead of only a very small subset).
This project is a proof-of-concept on how applications targetting one platform can be made compatible with not so much effort as initially thought.
You can find the source code for apkenv on Github:
- Main apkenv repository: github.com/thp/apkenv
- Wrapper generator scripts: github.com/harmattan/apkenv-wrapper-generator
Building from source
You need the Harmattan Platform SDK (or Fremantle Platform SDK) to
build apkenv. On Fremantle, you need
addition to all normal build dependencies. I usually build it like
make clean DEBUG=0 make make strip scp apkenv *.apkenv.so email@example.com:
To build for Maemo 5 (Fremantle), use the following command instead
To build with OpenGL ES 2.0 support (instead of OpenGL ES 1.x), use:
The source code comes with an example module "trg2" supporting That Rabbit Game 2. You can download an .apk of that game here:
Harmattan (N950, N9)
apt-get install libsdl1.2 libsdl-mixer1.2 libgles1-sgx-img
apt-get install libsdl1.2 libsdl-mixer1.2 libgles1-sgx-img libsdl-gles1.2-1
The Bionic libraries that you might need are available in the
libs/ folder in the source repository, and are taken from
Nitdroid Alpha 4.
The following support modules are available:
- generic: Generic JNI_OnLoad module
- trg2: That Rabbit Game 2
If you know of an open source Android game that uses OpenGL ES and the NDK, or if you are the author of a (possibly closed source) game and want to add support for your game, get in touch or submit a patch.
You alone are responsible to check if you have the necessary rights to use this layer with any specific apk file. Please be sure to read the Disclaimer above!
To Be Done
Here's a list of things I'd like to see added to apkenv in the future:
- Support for Unity3D's player/engine using OpenGL ES 2.0
The apkenv code written by me is licensed under a Simplified BSD License.
This application incorporates parts of the Bionic C library, the Bionic linker and libnativehelper under the Apache License 2.0.
This application incorporates parts of Minizip under the zlib license.