[Android初级]NDK之HelloWorld简单入门
2015-02-08 15:10
302 查看
本文属于自我复习
主要介绍ndk的使用入门,也就是最简单的helloworld!程序员最爱HelloWorld了!
在练手之前,确保你已经下载并配置好了android ndk开发的环境了,这里就不描述了。
一、简单练习项目结构
(1).如要求在项目根目录下创建jni文件夹,在创建我们的c文件:hellNDK.c
LOCAL_PATH指定源码的目录,$(call my-dir),学过Linux Shell再熟悉不过了
LOCAL_MODULE编译生成的.so库
LOCAL_SRC_FILES指定加入编译的源文件
LOCAL_LALIBS指定其他库,-l + 库名
(3).在项目路径下,执行命令:ndk-build
编译出已经命名的helloNDK.so
(4)在我们的程序里面,要求加载并调用jni的方法helloFromJNI()
效果如下
主要介绍ndk的使用入门,也就是最简单的helloworld!程序员最爱HelloWorld了!
在练手之前,确保你已经下载并配置好了android ndk开发的环境了,这里就不描述了。
一、简单练习项目结构
(1).如要求在项目根目录下创建jni文件夹,在创建我们的c文件:hellNDK.c
#include <jni.h> /* * 方法名称规定 : Java_完整包名类名_方法名() * JNIEnv 指针 * * 参数介绍 : * env : 代表Java环境, 通过这个环境可以调用Java中的方法 * thiz : 代表调用JNI方法的对象, 即MainActivity对象 */ jstring Java_org_jan_android_ndk_MainActivity_helloFromJNI(JNIEnv *env, jobject thiz) { /* * 调用 android-ndk-r9c\platforms\android-8\arch-arm\usr\include 中jni.h中的方法 * jni.h 中定义的方法 jstring (*NewStringUTF)(JNIEnv*, const char*); */ return (*env)->NewStringUTF(env, "hello world ndk!你好!"); }(2).编写Android.mk文件,这是个Makefile,我们需要了解一些常用的环境变量如下
LOCAL_PATH指定源码的目录,$(call my-dir),学过Linux Shell再熟悉不过了
LOCAL_MODULE编译生成的.so库
LOCAL_SRC_FILES指定加入编译的源文件
LOCAL_LALIBS指定其他库,-l + 库名
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := helloNDK LOCAL_SRC_FILES := helloNDK.c include $(BUILD_SHARED_LIBRARY)
(3).在项目路径下,执行命令:ndk-build
编译出已经命名的helloNDK.so
(4)在我们的程序里面,要求加载并调用jni的方法helloFromJNI()
public class MainActivity extends Activity { static{ //加载静态库文件 System.loadLibrary("helloNDK"); } /* * 声明一个native方法 * 这个方法在Java中是没有实现的, 没有方法体 * 该方法需要使用C语言编写 */ public native String helloFromJNI(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println(helloFromJNI()); } public void onClick(View view) { //点击按钮显示从jni调用得到的字符串信息 Toast.makeText(getApplicationContext(), helloFromJNI(), Toast.LENGTH_SHORT).show(); }
效果如下
相关文章推荐
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android的NDK开发(2)——利用Android NDK编写一个简单的HelloWorld
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android开发初级(三)——程序员的入门礼—属于你的HelloWorld小程序
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- [Android初级]NDK入门体验の方法调用
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android Studio NDK开发简单入门
- Android Studio NDK 入门教程(2)--Java与C++之间的简单数据转换与传递
- Android的NDK开发(2)——利用Android NDK编写一个简单的HelloWorld
- Android之eclipse简单NDK入门 推荐
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android嵌入式开发之NDK初级入门 粘贴可用阅读可懂
- Android入门之简单GPS定位实例
- Android 中的 OpenGL 简单入门 (下)
- Android 中的 OpenGL 简单入门(上)
- 【Android学习之旅3】HelloWorld入门之旅