win下eclipse一键打包cocos2dx的apk 命令

一、简介
1. cocos2dx3.0以上版本已提供python解决方案,不赘述。
2. cocos2dx打包是件麻烦,容易出错,消耗体力的硕大工程。经过多次摸索,终于可以抛弃各种中间工具,比如cygwin\eclipse,现提供一个最小化工具,方便使用。并在结尾给出多平台一键打包解决方案。
二、需要工具
1. ndk
2. ant
3.android-sdk
4.将vc工程提取cpp信息到mk文件,楼主不熟脚本,做了一个vc2mk的小工具.
三、开始组建脚本,内容比较简单,直接贴出,放到工程的proj.android目录
rd bin /s/q   // 多平台打包时有时会有bug,需要删除bin

@echo off
call setenvironment.cmd   // 设定环境变量
@echo on

vc2mk.exe   // 修改mk文件

call common_run.cmd   // 多平台打包使用,后面介绍

goto build_native 

:build_error
pause // 文件出错后,方便修改后继续执行打包,不需要重新开始

:build_native
call %NDK_ROOT%/ndk-build.cmd   // 打包so文件

if errorlevel 1 goto build_error

call %ANT_HOME%/bin/ant release   // ant打包apk,可另外建立一个debug脚本,ant debug替换

四、几点说明
1. assets\res\libs目录需要win下手动创建,否则可能会有访问权限的问题  
2.  setenvironment.cmd  
::envionment 设置环境变量

set ANT_HOME=E:\eclipse\plugins\org.apache.ant_1.8.3.v201301120609
set NDK_ROOT=E:\android\android-ndk-r9c
set sdk.dir=E:\android\adt-bundle-windows-x86-20131030\sdk
set NDK_MODULE_PATH=%~dp0..\..\..\cocos2d;%~dp0..\..\..\cocos2d\cocos2dx\platform\third_party\android\prebuilt
3.  common_run.cmd
@echo del assets
@echo off
del assets /Q //win7下删除目录有时不能马上访问,导致创建出问题,循环递归删除
for /f "delims=" %%i in ('dir /b /ad assets') do rd /s/q "assets\%%i"

@echo on
@echo copy resource
@echo off

xcopy ..\Resources assets /s/i/y/Q   // 拷贝resources
xcopy common\weixin src\com /s/i/y
@echo on
五、自动签名
1. 生成签名文件android-release-key.keystore,存放在 proj.android下
2.  proj.android下 创建project.properties文件,内容如下
target=android-19
key.store=android-release-key.keystore
key.alias=androidreleasekey
key.store.password=123456
key.alias.password=123456
六、多平台打包
1. 解决平台差异化问题:
每个平台分别创建一个目录,存放需要变动的差异文件。每个平台需要一个一键执行的批处理文件。
2. 保持原始目录不变
通过两个cmd实现,一个save、一个restore。
3. 各平台实现不同功能
所有差异化的实现由java文件完成,c++只做抽象调用逻辑,保持统一。
4. 平台的一键批处理文件
cd ..\
rd bin /s/q

::@echo off
call save.cmd  // 保存原始目录
::@echo off

@echo off
call setenvironment.cmd
@echo on

call common_run.cmd
call %~dp0\override.cmd // 覆盖平台的差异化文件

// so文件不需要编译,故不调用ndk
:build_ant
call %ANT_HOME%/bin/ant release
if errorlevel 1 goto build_ant

call restore.cmd // 恢复原始目录
5. save.cmd
@echo off
del backup /Q
for /f "delims=" %%i in ('dir /b /ad backup') do rd /s/q "backup\%%i"

copy .classpath backup\ /y
copy AndroidManifest.xml backup\ /y
copy .project backup\ /y
xcopy res backup\res /e/i/y
xcopy src backup\src /e/i/y
xcopy libs backup\libs /e/i/y
@echo on
七、优化多平台打包
1.以上脚本,已基本实现每个平台一键打包,但是还还可以进一步提升
2.制作一个ui,提供组件勾选功能(比如微信、微博),apk版本号等修改信息。
3.改ui可以做vs工程目录的md5校验,检查vs工程是否发生变动,如果发生变动更新mk(不需要每次重新编译so文件)
4.so文件一次编译,各平台根据自己的脚本执行差异化ant

http://blog.sina.com.cn/s/blog_73d3d20b0102v1cs.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值