studio和Eclipse分别生成jar包并混淆jar包

来源:互联网 发布:qq三国79js 79xs 编辑:程序博客网 时间:2024/05/29 16:41

       开发者有时在开发项目需要提供SDK给别人调用,这就需要开发者把自己代码做个jar或者lib或者aar形式提供给出去,在eclipse中往往需要把代码生成jar编译混淆下后和资源文件一并提供,还有一种是做成library形式提供出去,而在studio中我们可以借助gradle生成aar(可包含资源)和jar两种方式去生成我们需要提供的SDK。

Eclipse

  1. 创建一个新项目并编写SDK代码,可以是java项目或者Android项目。如图
  2. 项目
  3. 导入jar包(一般为src整个文件)步骤:右键src->Export…->选择java中JAR file 接着next,选择导入路径,点击finish,完成.这里写图片描述这里写图片描述 
    1. 进行混淆,我们使用Android sdk自带的混淆工具proguard来进行混淆,打开sdk目录下tools的proguard的bin(sdk\tools\proguard\bin)下proguardgui.bat这里写图片描述双击打开。出现如下界面这里写图片描述图中1可以导入你自己书写的混淆代码文件,之后next进行配置修改,如果你们混淆文件,也可以手工next去添加。点击next出现:这里写图片描述,图中add input添加要混淆jar包路径,图中out input添加生成混淆jar路径,图中add添加java所需和你引用代码用到的第三方jar、android包。之后next next next 最后process!生成成功这里写图片描述,混淆资料详情可以查看

studio

  1. 也是新建一个项目,并且创建新的module,添加这个module依赖到住项目中,如图:这里写图片描述在这个module来敲写SDK代码。这个就是生成jar的module。如图:这里写图片描述
  2. 添加编译jar导出jar代码,在module的build.gradle文件最后添加这里写图片描述,并且在proguard-rules.pro配置混淆代码:demo比较简单混淆代码如下:这里写图片描述代码如下: 
    task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
    delete 'build/outputs/jar/jar2.jar'//删除之前编译混淆jar包
    injars 'build/intermediates/bundles/release/classes.jar'//项目编译但未混淆的jar
    outjars 'build/outputs/jar/jar2.jar'//混淆后的jar路径
    configuration 'proguard-rules.pro'// 混淆配置文件
    }
  3. 在Terminal控制台输入gradlew makeJar这里写图片描述最后编译混淆完这里写图片描述
  4. 在jarlibrary/build/outputs/jar/jar2.jar获取编译混淆的jar包了这里写图片描述

mac下执行gradlew命令时,提示-bash :gradlew command not found,主要原因是Android Project根目录下地gradlew文件没有执行权限。打开终端,执行以下命令:

sudo chmod +x gradlew
  • 1
  • 1

为gradlew增加可执行权限。

值得一提的是,mac下执行当前目录下的命令需要在前面加上“./”,否则会到环境变量下找相应命令。例如

./gradlew javadocJar

原创粉丝点击