Android导出带签名的Apk

来源:互联网 发布:湖南步步高 知乎 编辑:程序博客网 时间:2024/05/22 05:25

命令行模拟Eclipse->Android Tools->Export Signed Application Package


0_InitConfig.bat

set project=E:\Game\Client\Android\QiuMo_Small
set projectName=QiuMo_Small
set BIN=%project%\bin
set ResPath=%project%\bin\%projectName%
rem -----依赖工程-----
set AndroidTool=E:\Game\Client\Android\AndroidTool
set PushNotificationTool=E:\Game\Client\Android\PushNotificationTool
rem -----------
set JarPath=%AndroidTool%\libs\android-support-v4.jar;%project%\libs\Game_Analytics_SDK_Android_3.1.68.jar;%project%\libs\gotyeapi.jar;%project%\libs\Msc.jar;%project%\libs\Sunflower.jar;%project%\libs\unity-classes.jar;%project%\libs\Xg_sdk_v2.42_20160111_1539.jar
set AllJar=%AndroidTool%\libs\android-support-v4.jar %project%\libs\Game_Analytics_SDK_Android_3.1.68.jar %project%\libs\gotyeapi.jar %project%\libs\Msc.jar %project%\libs\Sunflower.jar %project%\libs\unity-classes.jar %project%\libs\Xg_sdk_v2.42_20160111_1539.jar


set UnsignedAPK=%project%\bin\%projectName%_unsigned.apk
set SignedAPK=%project%\bin\%projectName%_signed.apk
set KeyStore=E:\KeyStore\QiuMo.keystore


rem 安卓工具
set aapt=E:\ProgramFiles\Android\sdk\build-tools\22.0.0\aapt
set apkbuilder=E:\ProgramFiles\Android\sdk\tools\apkbuilder
set dx=E:\ProgramFiles\Android\sdk\build-tools\22.0.0\dx
set ANDROID_JAR=E:\ProgramFiles\Android\sdk\platforms\android-22\android.jar
set zipalign=E:\ProgramFiles\Android\sdk\build-tools\22.0.0\zipalign


1_genR.bat

rem 生成R.java
%aapt% package -f -m -J %project%\gen -S %project%\res -I %ANDROID_JAR% -M %project%\AndroidManifest.xml


2_compile.bat

rem 编译*.java
if exist %BIN% rd /s /q %BIN%
mkdir %BIN%
mkdir %BIN%\classes
javac -encoding UTF8 -target 1.7 -bootclasspath %ANDROID_JAR% -d %BIN%\classes %AndroidTool%\gen\com\example\androidtools\*.java %AndroidTool%\src\com\example\androidtools\*.java  %PushNotificationTool%\gen\com\teamtop\pushnotifiaction\*.java %PushNotificationTool%\src\com\crystal\geart3d\*.java %project%\gen\com\NcSpeedLight\QiuMo\*.java %project%\src\com\NcSpeedLight\QiuMo\*.java %project%\src\com\NcSpeedLight\util\*.java -classpath %JarPath%


3_dex.bat

rem 把class文件和所用到的jar包打包生成classes.dex
if exist %BIN%\classes.dex del /q/f %BIN%\classes.dex
%dx% --dex --output=%BIN%\classes.dex %BIN%\classes %AllJar%


4_package.bat

rem 将assets、res打包
if exist %ResPath% del /q/f %ResPath%
%aapt% package -f -A %project%\assets -S %project%\res -I %ANDROID_JAR% -M %project%\AndroidManifest.xml -F %ResPath%


5_unsigned.bat

rem 生成未签名的apk
if exist %UnsignedAPK% del /q/f %UnsignedAPK%
%apkbuilder% %UnsignedAPK% -v -u -z %ResPath% -f %project%\bin\classes.dex -rf %project%\src -nf %project%\libs


6_signed.bat

rem 将apk签名
if exist %SignedAPK% del /q/f %SignedAPK%
jarsigner -keystore %KeyStore% -storepass 123456 -keypass 123456 -signedjar %SignedAPK% %UnsignedAPK% ant_test


7_AlignApk.bat

rem 对齐apk(以名字加下划线加年月日时分命名), 然后移除临时apk
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set hour=%time:~0,2%
set miute=%time:~3,2%
rem echo %year%%month%%day%%hour%%miute%
%zipalign% -v 4 %SignedAPK%  %project%\bin\%projectName%_%year%%month%%day%%hour%%miute%.apk
del /q/f %UnsignedAPK% %SignedAPK%


建立8个bat文件,按顺序一步一步执行即可生成apk

最后再写一个bat文件,一键完成上述所有操作


Export_Signed_Apk.bat

set BatPath=G:\小工具\一键出包
call %BatPath%\0_InitConfig
call %BatPath%\1_genR
call %BatPath%\2_compile
call %BatPath%\3_dex
call %BatPath%\4_package
call %BatPath%\5_unsigned
call %BatPath%\6_signed
call %BatPath%\7_AlignApk






0 0
原创粉丝点击