作为一名framework工程师,ndk开发是一门必修课,今天则是我入门的最佳时机,打印helloworld是每个编程语言的入门首选,现将成果分享一下,有兴趣的可以多多交流:
一、编写c++头文件及源文件
helloworld.h及helloworld.cpp
#include "helloworld.h"
int main(){
cout<<"hello, world!"<<endl;
return 0;
}
#include <iostream>
using namespace std;
二、编写makefile文件
Android.mk文件如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= helloworld.h
LOCAL_SRC_FILES:= \
helloworld.cpp
LOCAL_MODULE:= libhelloworld
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= helloworld.h
LOCAL_SHARED_LIBRARIES := libhelloworld
LOCAL_SRC_FILES:= \
helloworld.cpp
LOCAL_MODULE:= myhelloworld
LOCAL_MODULE_PATH += $(LOCAL_PATH) //生成文件的位置
include $(BUILD_EXECUTABLE)
Application.mk文件如下:
APP_ABI := armeabi-v7a x86
APP_PLATFORM := android-22
APP_STL := c++_static
编译命令
ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk
运行结果
运行./myhelloworld
执行hello, world!