天天看点

跟着鬼哥学so修改,一,准备篇

图/文 听鬼哥说故事

闲话少说,so的修改,重要性大家都知道,这里从头编写so文件,分析so文件,修改so文件,打算做一个系列的教程,当然,主要是看时间允许。

android的sdk配置以及ndk环境下载,请同学们自行google即可。

翻墙也不会,工具也不会用,搜索也懒得搞,请直接略过本文即可。

0x1:新建立一个安卓工程

跟着鬼哥学so修改,一,准备篇

0x2:编写调用so代码和方法定义

在MainActivity.java同目录下创建一个JniGg.java文件,用于调用so

跟着鬼哥学so修改,一,准备篇

0x3:生成文件头.h文件

在这个目录可以看到我们编写好并且已经编译的class文件,eclipse是自动编译的。

跟着鬼哥学so修改,一,准备篇

一切正常编译,那么现在我们回到工程根目录下:

跟着鬼哥学so修改,一,准备篇

然后在命令行切换到此目录:

跟着鬼哥学so修改,一,准备篇

现在我们使用下面的命令:javah -classpath bin/classes -d jni com.ggndktest1.JniGg

跟着鬼哥学so修改,一,准备篇

不报错,并且成功编译出.h文件,才算成功的。

上面需要注意的是那个bin/classes,因为我的电脑上编译完的classes目录是这个样子的,参照上文那个文件目录的截图图片,个别电脑上不需要/classes。然后在Eclipse,右击工程,进行刷新,可以看到如下截图:

跟着鬼哥学so修改,一,准备篇

0x4:编写c代码

跟着鬼哥学so修改,一,准备篇

在jni目录下新建file,gg-jni.c自己看看代码,也就知道啥意思了

跟着鬼哥学so修改,一,准备篇

然后就是Android.mk文件的编写了

跟着鬼哥学so修改,一,准备篇

0x5:生成so文件

跟着鬼哥学so修改,一,准备篇

切换到工程根目录,然后直接ndk-build即可。这里需要注意,ndk-build需要配置环境变量,自行搜索配置方法即可。

0x6:android调用代码

跟着鬼哥学so修改,一,准备篇

新建一个TextView,然后显示so里面的字符串。然后运行我们的测试代码:

跟着鬼哥学so修改,一,准备篇

相关附件和文档:

http://pan.baidu.com/s/1pJ2Y047

文章同时也交由www.pd521.com 首发,转载请注明出处。

继续阅读