jni基础--Android studio与NDK开发jni
文章平均质量分 63
WuRuiF
一件简单的事情,重复的去做,反复的思考,不断的改进,会发生奇迹。
展开
-
JNI基础(二)Android Studio 配置NDK
上一次随随便便的写了一些Android Studio如何配置NDK,但是其实也并不能对新手起到一定的指导作用,因为只是作为个人用来记录大概如何配置的笔记,但是经过我的大量实践发现,Android Studio配置NDK并运行起来第一个JNI程序,真是坑太多了,数不甚数,我用同样的方法,在家里面的电脑一次配置成功,并且运行很舒畅,但是在公司的电脑就出现了各种各样的问题,导致最后我把AS升级了最新的,原创 2017-01-07 16:25:33 · 438 阅读 · 0 评论 -
JNI基础(一)Android Studio 配置NDK
Android Stduio配置NDK步骤: 一:下载NDK工具包,网上很多,自行在下。 二:解压工具包,获得ndk-bundle文件夹,一般会将此文件夹放入SDK的根目录下,方便寻找(放哪不影响使用,但路径不能有空格和中文)。 三:配置NDK环境变量,在Path环境变量添加ndk-bundle路径。 四:新建项目在local.properites文件中加入ndk-bundle的路原创 2016-12-23 10:53:59 · 532 阅读 · 0 评论 -
JNI基础(三)第一个小程序,java调C
配置好jni运行环境,就可以写程序了,记录一下第一个小程序,java native方法调用c方法,并且返回值: java代码: public class JNI { /** * 加载动态链接库 * 也就是c代码编译好的so文件 */ static { System.loadLibrary("app"); } pu原创 2017-01-07 16:34:36 · 424 阅读 · 0 评论 -
JNI基础(四)小程序,java调C,并且传递参数
java中的方法需要给c语言中的方法传参数,该怎么办呢。。? 其实一样,直接写一就行了,然后将编译好的.h文件中对应的方法进行实现就可以了。 java代码: public class JNI { /** * 加载动态链接库 * 也就是c代码编译好的so文件 */ static { System.loadLibrary("app"原创 2017-01-07 16:47:09 · 637 阅读 · 0 评论 -
JNI基础(五)java调C,并且传递数组
java调用C代码,传递数组并且操作,是如何进行的? java代码: public class JNI { /** * 加载动态链接库 * 也就是c代码编译好的so文件 */ static { System.loadLibrary("app"); } public native int[] changeArrVa原创 2017-01-07 18:28:27 · 2076 阅读 · 2 评论 -
JNI基础(六)C调java代码
java如何调用C代码,大概已经了解了,通过是先本地方法来调用。那么C代码如何代用java代码 套路与思路:通过反射 java代码: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) {原创 2017-01-07 19:34:32 · 3473 阅读 · 0 评论 -
JNI基础(七)C调java静态方法代码
上次记录了一下如何调用java代码,但是java方法有静态与非静态之分,所以调用方式也是不一样的。 java代码: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.原创 2017-01-07 19:58:25 · 977 阅读 · 0 评论 -
JNI基础(八)开辟C进程
这样慢慢的就体现出了jni的强大,它可以通过C做到许多java做不到的事情,比如开辟一个C进程,我们知道java进程随时都有可能被系统杀死,并且在java进程中开辟出的任何线程也会随之被杀死,所以有时候我们需要开辟一个独立于java进程的进程来做一些事情,这个时候就需要用jni来做到。 java代码: public class MainActivity extends AppCompatAct原创 2017-01-07 21:48:47 · 1456 阅读 · 0 评论 -
JNI基础(九)android如何监控到应用被卸载?
我们经常会有一些需求,当应用被卸载的时候,发起一个问卷调查,或者清楚推送标识,避免应用都被卸载了还能收到推送(我们公司的项目就这样。。当初可郁闷了) 网上流行的答案: 注册一个receiver.....监听应用被卸载。 我对这个回答的看法与实践:纯属扯淡! 难道就没人去验证一下。。?网上都抄来抄去的。。。应用都被卸载了,你的java代码都被清除了,你些的java代码还能起作用吗。? 思路:开原创 2017-01-07 22:54:44 · 737 阅读 · 0 评论