Android.mk

See https://developer.android.com/ndk/guides/android_mk

hello

./code/android_mk/hello/jni/foo.cc
1#include <iostream>
2int main() { std::cout << "hello world\n"; }
./code/android_mk/hello/jni/Android.mk
1LOCAL_PATH := $(call my-dir)
2include $(CLEAR_VARS)
3LOCAL_MODULE    := foo
4LOCAL_SRC_FILES := foo.cc
5# include $(BUILD_SHARED_LIBRARY)
6include $(BUILD_EXECUTABLE)
./code/android_mk/hello/jni/Application.mk
1APP_ABI := x86
2APP_STL := c++_shared

APP_STL := c++_shared is to fix the following errors:

ld: error: undefined symbol: std::__ndk1::cout

To compile:

cd code/android_mk/hello
ndk-build

It will generate two directories in hello: libs and obj..

adb push libs/x86/foo /data/local
adb push libs/x86/libc++_shared.so /data/local
adb shell
cd /data/local
export LD_LIBRARY_PATH=.
./foo