Android Studio导出Jar包并混淆

在Android Studio中,自带反编译查看class文件,如果没有混淆的话,class文件跟java文件基本没有区别了,为了保护,还是混淆的好。

网上看了不少资料,都是直接下载proguard额外jar,直接生成,觉得不方便,既然apk都能混淆,为什么不直接通过Android Studio来混淆jar包呢。

做法其实很简单,一个build文件,一个proguard文件就可以了。

首先要明白jar从哪里来,以前在Eclipse中是一个project设置为library,然后另外一个主project依赖它。build一下,在library中就会生成jar文件了。

在Android Studio是module的概念,其实也相当于project。主app module依赖其它子module,在打包时,会将其它module打成aar,赋给主app。所以jar是针对整个module来make的。

如果module内仅仅是java代码,生成jar是没问题的,但如果还有resource文件,那就得打aar文件了。

在你要打jar包的module build文件中,加上一个生成jar包的task。其实即使不添加,在整个工程build时也会生成jar文件的。在build/intermediates/bundles/release/classes.jar可以找到。只是没混淆罢了。

task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
// 未混淆的jar
injars ‘build/intermediates/bundles/release/classes.jar‘
// 混淆后的jar路径
outjars ‘build/http.jar‘
// 具体需要keep住的类
configuration ‘proguard-rules.pro‘
}

这个时候,在Termial中就输入./gradlew makeJar就能将classes.jar复制倒http.jar了。这个时候还是没混淆的,因为混淆根本没写。

如果module中同时也依赖其它libs,那需要在proguard中声明那些libs。比如:#-libraryjars libs\gson-2.2.2.jar,大部分都跟apk混淆类似的,只不过是局限于某个module而已。

附送一个proguard供大家参考,也是网上找的。最后混淆效果并不是很好,只是简单的将部分变量改成了abcd这样,不过也够了。总不能将方法也混淆,这样外部调用就麻烦了。

proguard-rules.pro

时间: 2024-12-19 12:59:36

Android Studio导出Jar包并混淆的相关文章

Android studio 导出jar包并混淆和aar

前些天写个了android library工程,要同时支持aar和jar两种方式,在这里分享一下自己写的gradle自动构建的脚本 命令行执行./gradlew makeJar在build/intermediates/libs/下生成jar包 在命令行执行./gradlew uploadArchives在gradle.properties中指定aar.deployPath目录下生成aar

关于Android Studio导出jar包的问题

之所以说这个问题,还是因为最开始以为Unity开发要用 再说一下我的环境 Win7 x64 VS2015 Unity5.2.2 Android Studio 2.3.2 JDK1.8 我现在Unity与Android相结合是把Android项目导出aar包,具体方法百度就有,不赘述 现在说说导出Jar包的问题 看了网上说的在Gradle里加Task然后就可以exportJar,再把此jar包与AndroidManifest.xml一同考到 Unity的Assets/Plugins/Android

Android Studio导出jar包

Android Studio中对于library类型的Moudle,所以,要导出jar包,首先需要将我们要导出的代码放进一个Moudle中. 1.在当前工程下,File--New--New Module 2.在该module中加入要导出的功能代码 3.在app中引入该module 在app的build.gradle中加入此module的dependency,如下: dependencies  {     compile 'com.android.support:appcompat-v7:21.0

Android实战技巧之十九:android studio导出jar包(Module)并获得手机信息

AS中并没有独立的Module 工程,但是可以在普通的Project中加入Module.所谓的Module就是我们通常所指的模块化的一个单元,并常常以jar包的形式存在.下面以一个获取手机信息的例子演示AS中的模块化. 一.项目中新建Module File->New Module,详细见下图. 二.新建Java类 新建一个PhoneInfo类,内容如下: package com.linc.mylibrary; import android.content.Context; import andr

Android studio导出AAR包问题整理。

最近因为项目需求开始整理一个SDK 以AAR的方式提供出去.在整理的过程中遇到了很多坑. 以下是一些总结希望能帮助遇到同样问题的人. 1.怎么导出AAR,这种文章太多了,我贴一个大家可以做参考. http://blog.csdn.net/g777520/article/details/53331797 如果不关心 怎么生成jar包就直接往下滑,看第二节.基本操作就在这儿了. 2. 第一步的操作导出的AAR只是当前lib的代码内容,当前lib所依赖的其他lib或者依赖(jar包除外)都不会被打进A

用Android Studio导出jar给Unity3D用

1.新建一个Android Studio工程,选择空Activity 2.创建一个Module 3.将Unity的依赖jar包拷贝到工程的libs下 4.增加Java代码 内容修改如下 package com.example.mylibrary; /** * Created by Bruce on 2017/7/11. */ import com.unity3d.player.UnityPlayerActivity; import android.app.Activity; import and

android studio导jar包找不到类的解决方法

今天更新了universal-image-loader-1.9.5.jar文件,studio死活找不到其中相关的类,上网百度试了很多办法,总算解决了,具体方法跟一篇老外的帖子的差不多,这里分享下. 解决步骤: Something went wrong in incremental build system. One of this should help: Menu Build -> Rebuild project Delete folder /build Close Android Studi

Android studio导入jar包及Library包

在Android Studio里导入jar包及so包步骤如下: 1.在src同一级目录下建一个libs的文件夹 2.将jar包或so包拷贝到新建的libs文件夹下 3.jar包的话,右击选择add as library 4.如果是so包的话,找到跟src同级目录下的build.gradle ,添加如下标红信息,然后build->rebuild project即可 在Android Studio里导入library步骤如下: 1.在项目根目录下建立一个libraries文件夹,移动你要使用的lib

PhoneGap学习笔记-----phone3.4之Android搭建--导出jar包(处处可用)--并导出插件或加入第三方插件

http://blog.csdn.net/klx502/article/details/40617497 该链接已经说明如何从命令行创建一个phonegap项目了 这次的主题是基于上一遍[PhoneGap学习笔记-----phone3.4之Android搭建]延伸出来的 1.创建项目: 2.为创建的目录添加平台支持: 3.build 这个项目,之后就可以在Eclipse里导入android项目了: 4.到Eclipse里,import导入项目: 5.找到第一步创建时想要的目录路径,可以看回第一张