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

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

原文地址:https://www.cnblogs.com/Sailsail/p/8605216.html

时间: 2024-10-10 02:38:07

android代码生成jar包的相关文章

Android - 混淆jar包 ProGuard GUI 使用方法

混淆jar包 ProGuard GUI 使用方法 本文地址:http://blog.csdn.net/caroline_wendy 为了保证java代码可移植性和隐秘性,我们需要把java代码生成jar包,在使用ProGuard进行混淆: 但为了让其可以使用,我们应该保证代码接口的可读性,即保留类名和public方法名: 1. 下载ProGuard工具 http://sourceforge.net/projects/proguard/files/ 2. 使用ProguardGUI工具 进入bin

Eclipse中添加Android系统jar包

这样做的好处是,可以使用Eclipse开发系统应用了,这样可以调用系统中才使用的API. 1.首先在项目中右击->属性.如图所示依次操作 2.添加User Library 3.第一次要新建User Library名字 注:一定要勾选上System library(addedto the boot class path)否则会出现错误1. 4.添加jar包 2.${ANDROID_SOURCE}/out/target/common/obj/JAVA_LIBRARIES/framework_inte

Android导出jar包后的资源使用问题

Android导出jar包后的资源使用问题 - mengweiqi33的专栏 - 博客频道 - CSDN.NET 我们经常遇到一个需求,就是给别人使用我们工程的时候,为了能够屏蔽代码,把代码封装成jar包提供给第三方使用,但是这样我们的资源文件怎么给对方用呢? 网上有很多方法,有用ClassLoader的,有写死id的,如我的另一篇文章 [html] view plaincopyprint? http://blog.csdn.net/mengweiqi33/article/details/199

Android创建jar包的步骤

Android创建jar包的步骤很简单,只需要注意3点即可,顺便把步骤列出以下: 1.右键项目---Export(导出) 2.选择下一步: 注意:此处不要勾选activity包.res和manifest,然后填上自己定义的jar包名字. 3.4步:直接next和finish即可. 如此,一个简单的jar包就生成了,需要调用的时候直接导入即可!

dx工具(android将jar包转成dex格式二进制jar包工具)

博客分类: android 时钟 dx工具二进制jar包 好吧,不得不承认这个工具真心难找,也不知道自己sdk里以前怎么就有了,还好给了师傅一份,现在重装系统从网上找这个工具都找不到. 将platform-tools.zip解压,将其内部资源拷贝到android sdk platform-tools目录下即可使用(window环境). 编译命令,cmd进入到android sdk platform-tools目录 dx --dex --output=target.jar origin.jar 上

Android 导入jar包 so模块--导入放置的目录

Android视图下 app目录下的jniLibs 对应Project 视图app下的libs目录 把jar包或者带so文件的文件夹(一般以处理器型号命名如:arbeabi  arm64-v8a)复制到上面说的目录 jar包 (mylib.jar) 右键 add as Library 即可 (build.gradle 中 dependencies 中会自动添加 compile files('libs/mylib.jar') ) so文件需要在build.gradle 中 增加下面红色部分代码 a

利用jar -cvf *.jar * 和直接islibrary 然后生成的jar包比较(Android中jar包封装及调用)

利用jar  -cvf  *.jar * 和直接islibrary 然后生成的jar包比较 jar  -cvf  *.jar *   会打包资源 即R.java.BuildConfing.java和MainActivity.java is  library只会把包MainActivity.java 百度:(但是还是觉得没有解决我的疑惑) 在android开发过程中,我们经常会有这种需求,自己开发一个类库jar包,提供给别人调用. 即把项目A封装成jar包,供项目B调用,而在项目B中调用项目A的a

Android 中jar包封装及调用-转

在android开发过程中,我们经常会有这种需求,自己开发一个类库jar包,提供给别人调用. 即把项目A封装成jar包,供项目B调用,而在项目B中调用项目A的activity的时候问题就出现了:找不到资源文件(异常:ERROR/AndroidRuntime(3341):Caused by: android.content.res.Resources$NotFoundException: Stringresource ID #0x7f060007).问题是,只能共享src文件夹下的代码,而不能共享

Android Volley.jar包下载

Android Volley下载 Android Volley是Android平台上很好用的第三方开源网络通信框架.使用简答,功能强大. 现在我把Android Volley的库jar包Volley.jar放出来供大家下载使用,下载连接地址:http://download.csdn.net/detail/zhangphil/9053413 使用方法:下载Volley.jar后,直接放到Eclipse工程的libs目录下,刷新,然后就可以调用Android Volley了. 附: Android