• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android NDK 教程一(初识JNI--hello world)

android NDK 教程一(初识JNI--hello world)

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android ndk,android ndk下载,android ndk官网,android ndk是什么,android ndk开发等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android NDK 教程一(初识JNI--hello world)


前言

android的知识太过庞杂了,自己如果学过了,但过一段时间不用了又会忘记。写android NDK系列的博客呢,其一是为了锻炼自己的写作水平,其二是为自己所学过所掌握的一些知识做一下梳理、记录,方便以后自己查阅。废话不多说,先写个hello world开始吧。

 

JDK安装和配置路径就不用说吧,为了能在命令行中使用ndk指令,需配置下系统环境,在系统变量path中添加ndk r10e的路径。我的是安装在:;D:\soft\android-ndk-r10e

\

 

JNI---hello world

创建android 工程hello world.

\

 

 

新建JniNative.java类作为jni的java层接口

\

 

 

通过javah指令生成.h头文件

 

在命令行,进入到--<项目路径>/bin/classes,执行如下指令:

javah-classpath . com.example.hellojni.JniNative

执行成功后,将在当前目录下生成com_example_hellojni_JniNative.h的头文件

\

 

在项目中新建jni目录(JNI工程)

 

将生成的com_example_hellojni_JniNative.h拷到jni目录下,创建Android.mk; AndroidAppliction.mk ; hellojni.c这三个文件。

Android.mk

LOCAL_PATH := $(call my-dir)
MY_LOCAL_PATH := $(LOCAL_PATH)
include $(CLEAR_VARS)
#要编译的c文件
LOCAL_SRC_FILES := hellojni.c
#日志库引用,相当于java中的import log日志类
LOCAL_LDLIBS += -llog
#目标模组,要编译的so库名称
LOCAL_MODULE := hellojni
#创建动态链接库
include $(BUILD_SHARED_LIBRARY)

AndroidAppliction.mk

#目标平台,即在libs目录下生产3个文件夹
APP_ABI := armeabi armeabi-v7a x86

hellojni.c

#include "string.h"
#include 
#include 
#include "android/log.h"
static const char *TAG="helloJNI";

//日志
#define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_INFO,  TAG, fmt, ##args)
#define LOGD(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, TAG, fmt, ##args)
#define LOGE(fmt, args...) __android_log_print(ANDROID_LOG_ERROR, TAG, fmt, ##args)

/**
 *C函数,函数名为com_example_hellojni_JniNative.h中生成的函数名
 */
JNIEXPORT void JNICALL Java_com_example_hellojni_JniNative_testJni
  (JNIEnv *env, jobject thiz){
	//打印hello jni
	LOGE("hello jni");
}

命令行编译JNI

进入项目的jni目录,执行ndk-build,注意:如果没配置环境变量是不能这么使用的。编译成功后,会生成3个libhellojni.so

\

\

 

运行项目,检验成果

\

 

\

\

 

总结

 

对于一些新接触NDK编程的初学者来说,最好还是先从hello world做起。至少这样能把整体的流程跑起来,知识是一点一点积累的。后续的章节将会更深入研究NDK,欢迎大家批评指正。

 

 

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android环境的搭建,Android环境搭建
  • android ndk开发(二)实现一个官方demo,androidndk
  • android NDK 教程一(初识JNI--hello world)
  • AS下NDK开发(一),as下ndk开发
  • Android Studio上面使用Ndk JNI 开发工程

相关文章

  • 2017-05-26Android开发学习——画横线竖线,android横线
  • 2017-05-26compileDebugJavaWithJavac,compiledebugjava
  • 2017-05-26Android开发:程序目录结构详解
  • 2017-05-26Android(Linux)实时监测串口数据,android实时监测
  • 2017-05-26android开发环境以及genymotion虚拟机配合HBuilder测试(自总结),genymotionhbuilder
  • 2017-05-26android浏览器 源码共享,android浏览器源码
  • 2017-05-26六款值得推荐的android(安卓)开源框架简介(转),android安卓
  • 2017-11-15TODO的使用以及自定义
  • 2017-05-26Android DEX 基础,androiddex基础
  • 2017-05-26Activity生命周期,activity生命周期图

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何处理 android 方法总数超过 65536 . the number of method references in a .dex file exceed 64k,android.dex
    • PigeonCall:一款Android VoIP网络电话App架构的介绍
    • go 常用命令扼要说明
    • Android开发艺术探索学习笔记(十一),android艺术探索
    • AlertDialog创建6种对话框的用法
    • Android中View实现弹性滑动的方法——Android开发艺术探索笔记
    • Android设备上获取照片、裁剪图片、压缩图片
    • cordova开发自定义插件
    • Android自定义控件
    • Android 隐藏状态栏 标题栏

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有