adb shell로 target 또는 emulator의 shell을 실행 한 다음, shell에서 실행할 수 있는 바이너리를 생성할 필요가 있다.
이러한 경우 아래와 같이 Makefile을 만들어 컴파일 할 수 있다. (단, android 전체 소스가 빌드되어 있어야 함)
NDK_PATH = /home/user/android-ndk-r7b
NDK_ARCH = $(NDK_PATH)/platforms/android-14/arch-arm
SRC_ROOT = .
REF_ROOT = /home/user/source/android/out/target/product/generic/obj/
CC = $(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
CFLAGS = -I$(REF_ROOT)/KERNEL_OBJ/usr/include -I$(NDK_ARCH)/usr/include/
LDFLAGS = -Wl,-rpath-link=$(REF_ROOT)/lib -L$(REF_ROOT)/lib -nostdlib $(REF_ROOT)/lib/crtbegin_dynamic.o -lc
all:
$(CC) -o abinary abinary.c $(CFLAGS) $(LDFLAGS)