位置: 编程技术 - 正文
推荐整理分享Android jni 应用初探 (MAC 环境)(androidapplication),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:android jna,android jna,android应用程序,android:initorder,new android application,android:initorder,android jni使用,android:initorder,内容如对您有帮助,希望把文章链接给更多的朋友!
实践Part:
1.新建android应用JniTest(一路next),然后在根目录(JniTest)下新建jni 文件夹,以备后用
2.修改MainActivity内容
public native String getStringFromeNative(),声明了getStringFromeNative()这个Native方法
3.生成.c
(1)$cd 到项目目录,这个可以直接在AndroidStudio中直接选择terminal。
(2 )cd 到新建的jni目录 执行下面的命令:
$ javah -classpath ../app/src/main/java/ com.example.apple.jnitest.MainActivity
com.example.apple.jnitest.MainActivity 应当替换成你的java文件的 包命.类名。执行完这句话后,会在新建的jni目录下生成com_example_apple_jnitest_MainActivity.h文件。
-classpath 后面跟的路径名 应当是从当前文件夹出发,能够找到你的包做外层的目录的路径。既我的目录结构是/app/src/main/java/com/example/apple/jnitest/MainActivity.java,我的classpath只要能找到com 即可。
(3)编写.c
这个可以把(2)生成的.h import,然后实现方法就好。我是直接把google给的ndk包example中的代码拷贝修改了。
.h 文件内容:
hello.c 文件代码:
3.定义mk
这里在jni 新建两个mk文件 ,Application.mk和 Android.mk内容分别如下:
Application.mk:
Android.mk:
4.在项目根目录下执行命令ndk-build
terminal 输出如下:
执行完命令会生成libs和obj文件夹
4.善后工作
按道理现在应该可以运行了,可是在实验过程中运行报错(可能和androidStudio的文件组织方式有关,没有深究),在网上找到解决方案:
在app/src/main 目录下新建jniLibs文件夹,并将3中生成的libs文件夹下的所有内容拷贝到此文件夹下,完成后的目录结构:
此时就可以运行了!
一直以来就像搞明白到底该怎么去写,每次实验总是出各种各样的问题,现在终于搞定了! 不一样的环境下,操作应该有差异,不过大概流程就是这样了。
Android平台调用WebService详解(二) 上篇文章已经对WebService及其相关知识进行了介绍(Android开发之WebService介绍),相信有的朋友已经忍耐不住想试试在Android应用中调用WebService。本文将通
Android 实现智能机器人聊天 背景:其实,关于实现机器人聊天,是偶然的情况下的,公司需要做一个ios版的机器人,用于自动购买东西,然后ios就研发了一个,我觉得这种机器人
AsyncTask的缺陷和问题 在Android开发中,AsyncTask可以使得用户避免直接使用Thread类和Handler来处理后台操作,适用于需要异步处理数据并将数据更新到界面上的情况。AsyncTask适用
友情链接: 武汉网站建设