2011-08-15

Notes on Android NDK

Terms for the day:

JNI - The Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and to be called[1] by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages such as C, C++ and assembly.

Oh really? Well, what the hell does "native" mean in this context?

Native application - An application designed to run in the computer environment (machine language and OS) being referenced. The term is used to contrast a native application with an interpreted one such as a Java application that is not native to a single platform. The term may also be used to contrast a native application with an emulated application, which was originally written for a different platform.

Aha... so being that the code is targeted at a specific operating system (ie. Gingerbread) and hardware (eg. LG Optimus V running Gingerbread), there is speed to be gained! According to many sources, anywhere from 10x to 100x depending on the sitch.

Here's a link on the Android developers site about installing and getting started with the Android Native Development Tools. The NDK is a companion to the Android SDK, so all SDK installation and components should already be installed before moving forward with the NDK.

http://developer.android.com/sdk/ndk/index.html

I downloaded from this link http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2 and then extracted into home/ultramanjones/android folder.

Read the Android NDK Overview (as instructed).

The documentation mentioned ARM CPUs... from Wiki:
"ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings. It was known as the Advanced RISC Machine..."
and...
"The relative simplicity of ARM processors makes them suitable for low power applications. As a result, they have become dominant in the mobile and embedded electronics market..."

So this is why we're talking about this; ARM CPUs are in all the cell phones.

ADT - Android Development Tools is a plugin for the Eclipse IDE that is designed to give you a powerful, integrated environment in which to build Android applications.

Android makefile specification file:
file:///home/ultramanjones/android/android-ndk-r6/docs/ANDROID-MK.html





No comments:

Post a Comment

Let me know what you think!