前沿:有时候我们的android项目会有核心算法或代码,一般这种情况会把算法(cpp文件等)打成so文件,把代码进行整理打成jar包或aar包;今天我们就来讨论怎样把算法打成so文件,怎样把关键代码打成jar包。
怎样把算法封装成so文件?首先我们知道算法是C语言写的,这里我们用jni来完成项目与算法的传值(后续补充jni用法),用cmake来编译成so文件(后续补充cmake用法),步骤如下:
1.若没有cpp文件夹,自己建一个,把算法文件放在cpp文件下,之后创建cpp文件,写用jni与算法通信的方法;
2.选择此项目,选择菜单栏中的Build——>RebuildProject;
3.查看项目的build——>intermediates——>cmake——>debug——>obj文件夹下的文件,这些便是生成的so库:
怎样把关键代码打成jar包? 首先要搞明白jar和aar的应用场景,这里不做解释,接下来我们讨论打成jar包的方法:
1.利用myeclipse开发软件,新创建java项目,把关键代码copy到src下,关键代码包括包和类;
2.打成jar:项目右键选择export——>JAR file——>Next——>
3.成功打成jar,有时需要混淆,接下来是最最最基础的混淆jar方式,首先下载proguard文件(我用的proguard5.1),双击projuardgui.bat;
双击后:
4.设置参数1:
5.保持哪些类不被混淆,一般不被混淆的类或接口都是要暴露给用户调用的:
如果有接口,再添加interface的配置
6.开始混淆:
混淆成功,去指定位置找jar就ok了
7.查看native方法,获取混淆后的包名和方法名称,在代码jni的cpp文件中修改,最后再重新打包so文件;
这样就算完成了,也许不太详细,但希望能给大家带来帮助,如有不正确的地方,还望不吝赐教,共同进步!