ANDROID HELLO WORLD

label
Не знаю что толкнуло меня на написание этой заметки, но сегодня я упорно решил собрать "Hello World" под свой Android девайс. Но не как Android приложение, а как нативный linux бинарник, который можно запустить из консоли. Перед тем как собрать что-то свое я потерпел несколько неудач и в процессе начитался всякого. Вот несколько ссылок, которые возможно будут полезны тем, кто озадачится такой же задачей:


Что-то я почерпнул оттуда, но все оказалось несколько проще. Итак, первое что мы должны сделать это скачать Android NDK. У меня Win 8.1 x64, поэтому я качал версию android-ndk-r10d-windows-x86_64.exe . Далее я не запускал инсталлятор, а просто распковал архив (а это и есть архив) в папку E:\ARM\android-ndk-r10d.

Далее я создал папку с проектом E:\ARM\NDK_PROJECT_PATH, в ней папку jni в которой и разместил следующие файлы:

Application.mk
APP_ABI := armeabi
Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c

#include $(BUILD_SHARED_LIBRARY)
include $(BUILD_EXECUTABLE)
hello-jni.c
#include <stdio.h>

int main(int argc, char** argv) {

printf("--------------------------------\n");
printf("Hello World! Android [decker.su]\n");
printf("--------------------------------\n");
return 0;
}

После чего даем команду set NDK_PROJECT_PATH=E:\ARM\NDK_PROJECT_PATH  , для указания папки с проектом и запускаем ndk-build.cmd в корне NDK:


Как видим проект успешно собрался. Результат забираем в E:\ARM\NDK_PROJECT_PATH\libs\armeabi\ , там будет собранный бинарник hello-jni. Заливаем его в телефон с помощью ADB, например, так:

adb push E:\ARM\NDK_PROJECT_PATH\libs\armeabi\hello-jni /data/local/tmp/hello-jni
adb shell "chmod 777 /data/local/tmp/hello-jni"

И пробуем запустить либо через терминал на телефоне, либо через ADB. Я покажу скриншот из терминала:


Вот собственно и все. В итоге мы научились собирать приложения для ARM и запускать их на реальном устройстве.
Share This :



sentiment_satisfied Emoticon