ndk编写android终端hello world

来源:互联网 发布:购买淘宝买家的手机号 编辑:程序博客网 时间:2024/05/16 07:10
在windows下面编译使用ndk,不是一个容易的事情,但是在ndk-r8后,似乎方便了很多。具体方法如下:
1. 下载安装android ndk,解压到一个目录,最好是比较简单的英文路径,防止各种坑。然后将ndk加入到路径中。比如
set path=%paht%;H:\gp\Android\android-ndk-r9
set path=%path%;H:\gp\Android\android-studio\sdk\platform-tools
这两句话就是把ndk-build和adb命令加入到cmd的命令环境中,方便后面的使用。如果常用,建议加入到环境变量path中
2. 编写相关代码
注意,需要在项目目录下面建立一个jni目录,在jni目录下建立文件。
target.c

#include <stdio.h> int flag = 1;int count = 0;int main(){ char* str = "abcdef"; while(flag) { printf("Target is running:%d\n", count); count++; sleep(3); } return 0;}

Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := targetLOCAL_SRC_FILES := target.cinclude $(BUILD_EXECUTABLE)

代码很简单,就是一个循环打印语句。值得注意的是Android.mk,根据需要修改LOCAL_XXX的名字就可以了,如果有多个文件,添加到SRC_FILES后面就可以了
在jni目录运行命令
ndk-build

"Compile thumb : target <= target.cExecutable : targetInstall : target => libs/armeabi/target

会在项目目录的libs/armeabi目录下面生产目标代码
下面的操作方法是将target上传到调试机器上,我一般使用机器,因为模拟器太慢了,折磨人。你的机器需要设置为usb development,并且需要有root权限,否则,只能在模拟器中测试。
adb remount
adb push target /data/local/tmp
adb shell
su
cd /data/local/tmp
chmod 751 target
./target

root@android:/data/local/tmp # ./target./targetTarget is running:0Target is running:1Target is running:2Target is running:3Target is running:4Target is running:5

需要注意的地方是android下面busybox的chmod u+x target不能工作,只能用751这种数字方式来设置程序的可运行。
希望你好运,能够运行一个helloword的ndk程序
0 0