AndroidStudio环境下的jni调用(NDK)的方法

上传人:博****1 文档编号:469229738 上传时间:2022-07-25 格式:DOCX 页数:6 大小:138.38KB
返回 下载 相关 举报
AndroidStudio环境下的jni调用(NDK)的方法_第1页
第1页 / 共6页
AndroidStudio环境下的jni调用(NDK)的方法_第2页
第2页 / 共6页
AndroidStudio环境下的jni调用(NDK)的方法_第3页
第3页 / 共6页
AndroidStudio环境下的jni调用(NDK)的方法_第4页
第4页 / 共6页
AndroidStudio环境下的jni调用(NDK)的方法_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《AndroidStudio环境下的jni调用(NDK)的方法》由会员分享,可在线阅读,更多相关《AndroidStudio环境下的jni调用(NDK)的方法(6页珍藏版)》请在金锄头文库上搜索。

1、注意:如果要在AndroidStudio里面使用terminal (终端)的话,必须先配置环境变量。AS中的terminal其实和windows带的中断是一样的,只 不过内嵌到了 AS上。1、配置java环境变量(可以百度,配置元成必须重启terminal才能运行javac、javah等命令)。2、写好如下HelloNDK.java文件(这个文件演示了 jni的调用)package com.lczj .ndkdiniOZ;卵*! Creoby on 2015/5/3.白*/! public class HelloNDK :/車車t示在5(3毗阿time (载入类的时候)的时候按行卞面的代码:專

2、/支static System. LoodL ibraryt, HelloNDK);6public native String sayHello()3、然后执行在 AndroidStudio 中执行 Build-Make Project,生成 class 文件。生成 class 文件放在了 Project 的目 ndk_demo_2buildintermediatesclassesdebugcomlcjndk_demo_2 中,并且是隐藏的。(不查看这个文件也没 关系,当然前提是执行没有错误)l ndk_demo_2 build intermediates classes debug com

3、lei ndk_demo_20 搜索ndk_. P名称=(Ma电 TO DO * fi: AndroidTerminalI I Close- Terminal Se-ssioni出现如下帮助文档。Terminal+ c:用法:j avah 硬盘Andr oidS tudi oPr oj ects1TDK_MEMO j av ahoptions 其中opticmm一o -d -Ter hose_h -?Ter sion-jniforce-classpath cp -bootclaEEpath 包括:输出文件(只能使用T或-0 Z-) 输出目录启用详细输出输出此消息输出版本信息生成J1TI样式的标

4、头文件(默认值)始终写入输出文件从中加载类的路径从中加载类的路径从中加载引导类的路径TODO m 6: Android S| Terminal这里出现了 javah的使用帮助。我们要用的命令是 javah -d -classpath javah是生成jni头文件的命令;-d是生成的头文件存放的目录(这个目录如果事先没有建立,那么运行成功会自动新建); vdir是前面-d选项的目录名称,如果目录是src的话,不要写成vsrc!,直接写src就好; -classpath从中加载类的路径命令;vpath是需要生成头文件的class文件的目录。4.2、进入到使用cd命令进入HelloNDK.java的

5、文件夹main。NDK_PRJ_DEMO 口 .idea 口 build 口 gradletE ndk_demo_l Eg ndk_demo_2 口 builddiiu 口 src 口 androidTest 口 main D java也 com.lcj.ndk_demo_2 (宙 HelloNDK ;(cj1 宙 MainActivity Eiresp AndoidlVInifesIkxmlRl gitignorebuild.gradleEJI 门dkjd巳mo_2mlRl nm n i j a rd - n j I nmcd 如下的第一行。如果不进入这个目录等会运行javah的时候会提示:

6、错误:找不到com.lcj.ndk_demo_2.HelloNDK的类文件。Terminal+ Mieroeo t WindovE 版血 6.3. 9600冥(c) 2013 Microsoft Corporation1:1所有权利。C: AndroidStudi oWorkSpace 11DK_PRJ_DEWOcd ndJj:_deiiio_2srcmainC: Androi dStudioWorSpaceHIiK_PBJ_IiEW0ndJj:_deiiio_2srciiLainj avah _d jni -classpath . . bui 1 d int erm e di at e s

7、cl as s e s debug com. Icj. ndJj:_deiii.o_2. HellolHiKCAndroi dStudi oW orkSp ac e 1JDK_PEJ_DEWO ndk_dem o_2 sr c mai nt - 4: Run 宅 TODO w 6: Android S Terminal0: MessaqesEvent Loci4.3、运行javah命令:上图第二行。javah -d ni -classpath .buildintermediatesclassesdebugcom.lcj.ndk_demo_2.HelloNDK 如上图第二行。只要什么错误都不提示

8、说明运行成功! ! 这时就可以去查看main目录下是不是多了一个jni文件夹,里面就是生成的头文件了。jni是生成的头文件需要存放的文件夹(一般取名jni才对).buildintermediatesclassesdebug 是 class 所在目录(Build一Make Project 生成的 class 文件都在这里,这是一个相对路径) com.lcj.ndk_demo_2.HelloNDK是class文件的文件名(根据之前的java文件生成的)使用jni作为输出目录后的截图如下:T L- 口 androidTestT 口 main E java 也 com.Icj.ndk_demo_2He

9、lloNDK匚宙 MainActivity团 co mJ q_.nd k_d emo_2_H el I o N DK. h -1 - B res戶 And ro i d M a n ifest.xm IRl ,gitignor已头文件出现了!F图是头文件内容。里面有一个函数声明,它是自动生成的,名字不要改动!K.java X 回 com_l cj_nd k_d emo_2_H el I oN DK. h Xcomcrj_nTk:_cJmc_2_HllciNDICu :/* DO NOT EDIT THIS include 严 Header for cLassFILE -电亡-is mochiD

10、e. generatetJ c c-m_ L c j_n dit_ demo_2_He L LoNDK VRextern C1F flendififndef _Included_coni_lcj_ndk_demo_2_HelliNIDK #define _Included_coni_lcj_ndk_demo_2_HelloNIDK flifdef cplusplusr 匚 tassrcom_ I cj_n dk_ deniG_2_He L L oNDK却科已七hod:sayHelto Sinaturer ()Lqvq/Lang/SiiMng;! */ 一_3NIEXPORT jstring 1

11、NIULL :ava com lcj ndk ldemo 12 HelloNDK sayHello (INIEnv J iobiect);#ifdef cplusplus:#endif:#endif5、编写C源文件com_lcj_ndk_demo_2_HelloNDK.c。注意这里的函数名称一定要从之前生成的h文件里面复制过来,以免出错。6、配置build.gradle文件,加入下图中的语句。moduleName就是将来生成的so文件名称的一部分,修改它可以修改so的文件名。 ldLibs目前不知道是什么abiFilters是生成os文件的平台,这里选择了 3种。apply plugin: c

12、om吕口廿厂0打applicationijiandroid compileSdkVersionbuildToolsVersion2222.0.11default 匚cmfig: applicationld minSdkVersion targetSdkVersion 22 version匚od已 1 yg 厂生 ion M曰mi .0“ndk |module Na me 11 Hel 1 oNDK.IdLibs log z1 mcom.lc j. nd k_d emo_2 15abiFilters armeabi1 ,Barnieabi-v7a,iJA;e:日AA-.0ABbuildTypes

13、 release minifyEnabled falseproguardFiles git De;于 a u It P rogu a 厂d F i 1 已(progu a rd - a nd roi d . t xt) j 1 proguard-rules7、配置ndk路径。打开local.properties,加入NDK的路径(ndk需要单独下载,我在网上下载ndk后放在了和sdk相同的路径下)A ndk_demo_2 X 川 Io匚al.properties X |# This file is automaticaLLy gene口亡己“ by Android Studio.# Do not modify this f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号