[Android] Hello, Android Linux!
Hello, Androidを書いてみる。
作成するディレクトリーは、mydroidのexternalのディレクトリの下に以下のファイルを作る。
- mydroid/external/hello/hello.c
/* File: hello.c */ #includeint main(int argc, char *argv[]) { printf("Hello, Android Linux!\n"); return 0; }
- mydroid/external/hello/Android.mk
# Android.mk LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= hello.c LOCAL_MODULE := hello include $(BUILD_EXECUTABLE)
まずは、エミュレータを実行しておく。
$ ~/mydroid/out/host/linux-x86/sdk/android-sdk_eng.kinami_linux-x86/tools/emulator &
hello.cから実行ファイルであるhelloを作成する。helloディレクトリでmmコマンドで実行。もしくは、トップディレクトからmmm ~/mydroid/external/helloでもOK。
$ cd ~/mydroid/external/hello $ mm make: ディレクトリ `/home/kinami/mydroid' に入ります build/core/product_config.mk:229: WARNING: adding test OTA key build/core/main.mk:177: implicitly installing apns-conf_sdk.xml ============================================ TARGET_PRODUCT=generic TARGET_SIMULATOR= TARGET_BUILD_TYPE=release TARGET_ARCH=arm TARGET_OS=linux HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=TC3 ============================================ target thumb C: hello <= /home/kinami/mydroid/external/hello/hello.c target Executable: hello (out/target/product/generic/obj/EXECUTABLES/hello_intermediates/LINKED/hello) target Non-prelinked: hello (out/target/product/generic/symbols/system/bin/hello) target Strip: hello (out/target/product/generic/obj/EXECUTABLES/hello_intermediates/hello) Install: out/target/product/generic/system/bin/hello Finding NOTICE files: out/target/product/generic/obj/NOTICE_FILES/hash-timestamp Combining NOTICE files: out/target/product/generic/obj/NOTICE.html make: ディレクトリ `/home/kinami/mydroid' から出ます
出来上がったファイルをエミュレータに転送する。
$ adb push ~/mydroid/out/target/product/generic/system/bin/hello /data/hello 79 KB/s (5288 bytes in 0.065s)
ファイルを実行する。
$ adb shell /data/hello Hello, Android Linux!
できた!