android编译脚本详解,无聊的时候写的make脚本, 编译android项目

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

PROJECT_NAME=prj_name

ANDROID_JAR=${ANDROID_SDK_HOME}/platforms/android-17/android.jar

GEN_DIR=gen

BIN_DIR=bin

SRC_DIR=src:json:codec:compress:io:support/v4

RES_DIR=res

EXTEND_LIBS_DIR=libs

ASSETS_DIR=assets

MAIN_XML=AndroidManifest.xml

CLASSES_DIR=${BIN_DIR}/classes

CLASSES_ZIP_NAME=classes.jar

DEX_NAME=classes.dex

RES_ZIP_NAME=res.jar

#sign

KEY_STORE=sign.keystore

KEY_ALISE=test

KEY_STORE_PASS=12345678

ALISE_PASS=12345678

UNSIGNED_APK_NAME=${PROJECT_NAME}.apk

SIGNED_APK_NAME=${PROJECT_NAME}-singed.apk

#build class

BUILD_CLASSPATH=./sdk/classes-8.jar:${ANDROID_JAR}:./${GEN_DIR}:${SRC_DIR}:./libs/android-support-v4.jar:./libs/umeng_sdk.jar

#proguard

PROGUARD_INJARS=${BIN_DIR}/${CLASSES_ZIP_NAME}:libs/umeng_sdk.jar:libs/android-support-v4.jar

PROGUARD_OUTJAR=${BIN_DIR}/classes_proguard.jar

PROGUARD_SCRIPT=proguard-project.txt

PROGUARD_LIB_JARS=${ANDROID_JAR}:sdk/classes-8.jar

PROGUARD_LOG_DIR=proguard

#build tools

AAPT=aapt

DX=dx

APKBUILDER=apkbuilder

JAR_SINGER=jarsigner

PROGUARD=proguard.sh

ZIP=zip

JAVAC=javac -target 1.6 -J-Dfile.encoding=UTF-8

signed-apk:apk

${JAR_SINGER} -verbose -keystore ${KEY_STORE} -keypass ${KEY_STORE_PASS} -storepass ${ALISE_PASS} -signedjar ${BIN_DIR}/${SIGNED_APK_NAME} ${BIN_DIR}/${UNSIGNED_APK_NAME} ${KEY_ALISE}

apk:res_zip dex

${APKBUILDER} ${BIN_DIR}/${UNSIGNED_APK_NAME} -u -z ${BIN_DIR}/${RES_ZIP_NAME} -f ${BIN_DIR}/${DEX_NAME} -rf ${SRC_DIR} -nf ${EXTEND_LIBS_DIR}

res_zip:

${AAPT} package -f -M ${MAIN_XML} -S ${RES_DIR} -A ${ASSETS_DIR} -I ${ANDROID_JAR} -F ${BIN_DIR}/${RES_ZIP_NAME} --auto-add-overlay

dex:proguard_jar

${DX} --dex --output=${BIN_DIR}/${DEX_NAME} ${PROGUARD_OUTJAR}

proguard_jar:classes_jar

${PROGUARD} -printmapping ${PROGUARD_LOG_DIR}/mapping.txt -printseeds ${PROGUARD_LOG_DIR}/seeds.txt -printusage ${PROGUARD_LOG_DIR}/usage.txt -dump ${PROGUARD_LOG_DIR}/dump.txt -libraryjars ${PROGUARD_LIB_JARS} -injars ${PROGUARD_INJARS} -outjar ${PROGUARD_OUTJAR} @${PROGUARD_SCRIPT}

#Makefile 中, cd 只对当前行有用

classes_jar:classes

cd ${CLASSES_DIR};${ZIP} -r ../${CLASSES_ZIP_NAME} *

classes:aidl R

find . -name *.java | xargs -t -I {} ${JAVAC} -cp ${BUILD_CLASSPATH} -d ${CLASSES_DIR} {}

find ${CLASSES_DIR} -name *.aidl | xargs -t -I {} rm {}

aidl:

find . -name *.aidl | xargs ls -lta | xargs -t -I {} aidl -I${SRC_DIR} -o${GEN_DIR} {}

R:

${AAPT} p -f -m -J ${GEN_DIR} -S ${RES_DIR} -I ${ANDROID_JAR} -M ${MAIN_XML}

clean:

@rm -rf ${GEN_DIR}/*

@rm -rf ${BIN_DIR}/*

@rm -rf ${PROGUARD_LOG_DIR}/*

@mkdir -p ${CLASSES_DIR}

@mkdir -p ${PROGUARD_LOG_DIR}

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值