• 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文件;

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

  • 相关阅读:
    「ROI 2019 Day1」运输 20/19
    「ROI 2018 Day 2」无进位加法
    「ROI 2018 Day 1」量子隐形传态
    「ROI 2018 Day 2」快速排序
    「ROI 2018 Day 1」Innophone (分块+斜率优化)
    「ROI 2017 Day 1」虎 (计算几何)
    [BJ United Round #3] 押韵 [学习笔记]
    「CEOI2020」象棋世界
    CF1375G
    CF1392(div1+div2)
  • 原文地址:https://www.cnblogs.com/Sailsail/p/8605216.html
Copyright © 2020-2023  润新知