| <html><body><pre>Android NDK MIPS32 instruction set support |
| ------------------------------------------------------ |
| |
| Introduction: |
| ------------- |
| |
| Android NDK r8 added support for the 'mips' ABI, that allows native code to |
| run on Android-based devices running on CPUs supporting the MIPS32 instruction |
| set. |
| |
| The Android 'mips' ABI itself is fully specified in docs/CPU-ARCH-ABIS.html. |
| |
| Overview: |
| --------- |
| |
| Generating mips machine code is simple: just add 'mips' to your APP_ABI |
| definition in your Application.mk file, for example: |
| |
| APP_ABI := armeabi armeabi-v7a mips |
| |
| Alternatively, since NDK r7, you can use: |
| |
| APP_ABI := all |
| |
| will generate machine code for all supported ABIs with this NDK. Doing so |
| will ensure that your application package contains libraries for all target |
| ABIs. Note that this has an impact on package size, since each ABI will |
| correspond to its own set of native libraries built from the same sources. |
| |
| As you would expect, generated libraries will go into $PROJECT/libs/mips/, and |
| will be embedded into your .apk under /lib/mips/. |
| |
| And just like other ABIs, the Android package manager will extract these |
| libraries on a *compatible* mips-based device automatically at install time, |
| to put them under <dataPath>/lib, where <dataPath> is the |
| application's private data directory. |
| |
| Similarly, the Android Market server is capable of filtering applications |
| based on the native libraries they embed and your device's target CPU. |
| |
| Debugging with ndk-gdb should work exactly as described under docs/NDK-GDB.html. |
| |
| Standalone-toolchain: |
| --------------------- |
| |
| It is possible to use the mips toolchain with NDK r8 in stand-alone mode. |
| See docs/STANDALONE-TOOLCHAIN.html for more details. Briefly speaking, |
| it is now possible to run: |
| |
| $NDK/build/tools/make-standalone-toolchain.sh --arch=mips --install-dir=<path> |
| |
| The toolchain binaries have the mipsel-linux-android- prefix. |
| |
| Compatibility: |
| -------------- |
| |
| The minimal native API level provided by official Android mips platform builds |
| is 9, which corresponds to all the native APIs provided by Android 2.3, i.e. |
| Gingerbread (note also that no new native APIs were introduced by Honeycomb). |
| |
| You won't have to change anything to your project files if you target an older |
| API level: the NDK build script will automatically select the right set of |
| native platform headers/libraries for you. For mips, this still corresponds |
| to API level 9 and higher. |
| |
| </pre></body></html> |
| |