关于 android sdk开发 生成.so文件的一点小心得!

       对于开发人员来说,自己写SDK和用SDK是天壤之别。机缘巧合公司开发了一个款app,但是用的人比较少,老板就开始外面谈业务,推销自己app里的功能,别的公司有意向合作,就需要将我们的功能开放给对方,所以对于只做过app应用层开发,对于底层   Framework 开发就一头雾水了。
      其实在我理解做SDK在业务方面就是一点:安全。别人拿不到我们敏感数据,类似url 一些密钥等。接下来就是解决技术问题了。

      第一步: NDK这个就是我主要攻克的难题。开发前最搞的就是配置环境,网上有很多我就不多啰嗦了,下载ndk,配置环境变量。我是在MAC上操作的,其实在这期间配置花了一段时间。主要是ndk-build 这个命令老是报错,贴一下我的环境变量 (参考)


其实我最后ndk-build这个命令是在AndroidStudio 项目里的Terminal里使用的。但是前提你要在环境变量里设置你的项目位置。

   第二步:JNI使用,最关键的部分。

    1.在build-gradle里添加ndk 

ndk {

    moduleName"myNativeLib"

    ldLibs "log", "z", "m"

    abiFilters "armeabi", "armeabi-v7a", "x86"

}

  2.在库里src/main下新建一个jni文件夹


3.新建一个class 文件用户加载jni里的方法


4.Terminal生成.h头文件 ,生成的头文件拷贝到jni文件夹里。


扫描二维码关注公众号,回复: 1092376 查看本文章


5.生成.c文件,native方法红色可以自动生成。c文件要incloud .h文件头 里面就是写C码了 这个就是要自行学习了。


6.编写android.mk和application.mk  注意$前加空格

android.mk

application.mk:

7.生成.so文件,2种方法。

第一种 :直接项目运行,把native方法直接使用在Activity里。so文件存放地点build/intermediates/ndk/debug/lib下


第二种:命令生成在Terminal cd到jni目录下 ndk-build  如果不行就需要在环境变量里配置项目地址 见上面图片。


完工!

使用就很简单了 把生成的so文件放在新项目里 新建jniLibs


还要配置build-gradle 在android{}里


就可以直接调用了。


猜你喜欢

转载自blog.csdn.net/mrpanda87/article/details/79623099