Hello C, Run in Android Console

Hello C,Run in Android Console

 http://blog.csdn.net/gocad/article/details/32336831

下面将用一个简单的示例,演示如何用 Android ndk 编译运行一个可运行在 Android Emulator Console 中的控制台程序。

首先,安装 Android sdk 和 Android ndk,然后创建一个 Android Virtual Device,并启动。

:ndkr7之前的版本,必须要安装 Cygwin 才能使用NDK。从 r7开始,Windows版本的NDK提供了一个ndk-build.cmd 脚本,可以直接利用这个脚本编译。

接着,将Android sdk 下的 tools 和 platform-tools,Android ndk 安装目录,添加到 path 运行搜索变量中,便于手工运行命令。

然后,选择一个工作目录(如hello),并在其下建立 jni 子目录,把 c 源文件放入其中(如hello.c)

// hello.c
#include <stdio.h>

int main( int argc, char *argv[] )
{
   puts( "Hello C, Run in Android Console!\n"
       "Compile with android-ndk-r9d\n"
       "Use ndk-build and Android.mk\n" );

   return 0;
}

jni 子目录下创建Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

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

include $(BUILD_EXECUTABLE)

在 hello 工作目录下运行 ndk-build


OK,编译成功。

然后把编译好的程序,推送到 Android Emulator 运行。
adb shell mkdir /data/ndkdemo

adb push./libs/armeabi/hello-dynamic /data/ndkdemo

adbshell chmod 777 /data/ndkdemo/hello-dynamic

adbshell /data/ndkdemo/hello-dynamic

是不是很简单?目前android-ndk-r9d 的 ndk-build 默认采用 arm-linux-androideabi-4.6 编译器。你也可以手动运行 arm-linux-androideabi-4.8 并自己选用 API 版本编译。

arm-linux-androideabi-gcc -O2 -Wall -std=c99 -static-I%AndroidNdk%/platforms/android-9/arch-arm/usr/include --sysroot=%AndroidNdk%/platforms/android-9/arch-arm-o ./jni/hello-static ./jni/hello.c

详细使用说明,请阅读 Android sdk 和 Android ndk 的 docs 文档。

转载请注明,转自 http://blog.csdn.net/gocad/article/details/32336831

参考

使用R7版NDK搭建Android开发环境 http://www.cnblogs.com/xiaomiao/archive/2012/02/20/2360308.html

Android开发手记一NDK编程实例http://blog.chinaunix.net/uid-10008293-id-2972294.html

猜你喜欢

转载自blog.csdn.net/gocad/article/details/32336831