闲来无事,开博第一篇,讲一下混淆打包的心得(高手请绕道)。
先申明:以下方案使用于windows系统,linux下要稍作调整,我不累述。
不废话,直接开始
一、准备工作
1、jdk1.6(这个最保险,之前用过8有问题,不知道现在如何)。
2、wtk2.5.2,我用这个,比较保险(预编译用,下载地址:/technetwork/java/javasebusiness/downloads/java-archive-downloads-javame-419430.html#sun_java_wireless_toolkit-2.5.2_01b-oth-JPR)
3、proguard4.5,已经更新了好几个版本了,不过好用就不换了(下载地址:/)。
4、ant工具,一般eclipse中自带(若没有,下载地址:/bindownload.cgi,为了方便记得配置环境变量)。
5、antenna,女神你懂得~~,(下载地址:/projects/antenna/)。
以上地址如果无法下载请自己上度娘
二、配置工作
新建build.env文件 (表示环境配置,我电脑配置如下,各位对号入座就行)。
# build environment, setup according to your computer
jdk.home=C:/Java/jdk1.6.0_10
jdk.bin=${jdk.home}/bin
wtk.home=C:/JavaME_SDK_CLDC/WTK2
android.sdk.home=C:/android_sdk/sdk
android.tools=${android.sdk.home}/tools
android.build-tools=${android.sdk.home}/build-tools/android-4.4.2
android.platform-tools=${android.sdk.home}/platform-tools
android.platform.home=${android.sdk.home}/platforms/${target}
android.version=2.0
proguard.home=D:/proguard4.5
proguard.jar=${proguard.home}/lib/proguard.jar
antenna.lib=d:/antenna-bin-1.2.1-beta.jar
特别提示一下
android.platform.home=${android.sdk.home}/platforms/${target}
以上配置中的target为android的api版本,比如android2.1为android-7,android4.3为android-18
新建build.property文件 (和工程相关的配置,各不相同,按照自己的工程目录配置)
# project properties
build.src.main=src/main
build.src.test=src/test/java
build.src.encoding=UTF-8
build.version.name=1.0.0.0
新建config-default.properties文件 (代码中需要预编译变量常量的默认值)
# default build config, can be overrided by defining new build target in build.xml
sdk.debug.level=none
sdk.channelid=tecent
sdk.author=vailen
sdk.jarname.main=CsdnSdk${build.version.name}.jar
project.properties
这个文件应该是创建android工程的时候自动生成的,内如如下:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-7
该配置中的target就是之前build.env文件中${target}的取值。
三、脚本编写
新建build.xml文件,编写ant相关代码,这边贴出我电脑上的例子
<?xml version="1.0" encoding="UTF-8"?>
<project name="your project name" basedir="../">
<target name="prj.define" description="系统变量定义">
<echo message="Project Define variables" />
<property name="build-dir" value="build" />
<!-- load build config -->
<property file="project.properties" />
<property file="${build-dir}/build.env" />
<property file="${build-dir}/build.properties" />
<property file="${build-dir}/config-default.properties" />
<echo>building ver:${build.version.name},timestamp:${build.version.timestamp}</echo>
<!-- load antenna task def -->
<taskdef resource="antenna.properties">
<classpath location="${antenna.lib}" />
</taskdef>
<!-- Android Environment -->
<property name="android-jar" value="${android.platform.home}/android.jar" />
<property name="android-framework" value="${android.platform.home}/framework.aidl" />
<property name="library-jar" value="libs" />
<!-- project directory definitions -->
<property name="resource-dir" value="res" />
<property name="asset-dir" value="assets" />
<property name="external-libs" value="libs" />
<property name="outdir" value="${build-dir}/output" />
<property name="outdir-src" value="${outdir}/src" />
<property name="outdir-preprocess" value="${outdir}/preprocess" />
<property name="outdir-classes" value="${outdir}/classes" />
<property name="outdir-classes-optimized" value="${outdir}/optimized-classes" />
<property name="outdir-main" value="${outdir}/main" />
<property name="outfile-proguardmap" value="${outdir}/CsdnSdk${build.version.name}_proguard.map" />
<condition property="srcdi