zoukankan      html  css  js  c++  java
  • android代码生成jar包并混淆

    前沿:有时候我们的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文件;

    这样就算完成了,也许不太详细,但希望能给大家带来帮助,如有不正确的地方,还望不吝赐教,共同进步!

  • 相关阅读:
    PageObject小结
    python函数默认参数坑
    编译Android 8.0系统 并刷入pixel
    CF 289 F. Progress Monitoring DP计数
    EDU 61 F. Clear the String 区间dp
    Educational Codeforces Round 55 G 最小割
    Educational Codeforces Round 55 E 分治
    hdu 6430 bitset暴力
    AC自动机+DP codeforces86C
    CF895C dp/线性基
  • 原文地址:https://www.cnblogs.com/Sailsail/p/8605216.html
Copyright © 2011-2022 走看看