Ant脚本封装ndk-build命令并执行打包启动-升级版

经过修改的ant,实现ndk-build,打包和启动。

第一步:进入android工程目录,执行以下命令,生成build.xml

android updateproject -p . –s

第二步:在build.xml根节点<project>的最后添加上以下命令:

当然,你要配好相关的android环境变量才能正常build

  

<!-- ==================以下为新增加的内容==================  -->  
<target name="easy">  
 <!-- 编译生成最新的so文件 -->  
    <antcall target="ndk_build"/>  
    <!-- 编译apk工程 -->  
    <antcall target="debug"/>  
    <!-- 执行安装 -->  
    <antcall target="install" />  
    <!-- 启动主界面 -->  
    <antcall target="startActivity" />  
</target>  
  
<!-- target<description>可通过ant -p命令查看 -->  
<target name="ndk_build"  
    description="Compile c/c++ code to so file."> 
<!--这里是和原版有区别的地方,这里修复一下没进入jni目录就执行build的bug-->
<exec executable="ndk-build${bat}">
        <arg value="-C"/> 
        <arg value="jni"/> 
    </exec>  
    <echo message="out.final.file----${out.final.file}"></echo>  
</target>  
  
<target name="install"  
    description="install debug.apk">  
    <!-- target:debug调用过后,out.filal.file才会作为常量被初始化。所以单独调用install是无效的 -->  
    <echo message="adb install -r  ${out.absolute.dir}/${ant.project.name}-debug.apk"/>  
      
    <apply executable="${adb}" failοnerrοr="true">  
        <arg value="install" />     
        <arg value="-r" />  
            <file file="${out.absolute.dir}/${ant.project.name}-debug.apk"/>  
    </apply>  
</target>  
<target name="startActivity"  
    description="Start Activity: app_package/app_launch_activity">  

<!-- 这里是和原版有区别的地方,之前楼主的是在local.properties里面定义的app_package 及app_launch_activity,这里实现了自动从manifest里面读取--> 
    <xpath input="AndroidManifest.xml"
                    expression="/manifest/@package" output="app_package" />
    <xpath input="AndroidManifest.xml"
                    expression="/manifest/application/activity[intent-filter/action[@android:name='android.intent.action.MAIN']  and intent-filter/category[@android:name='android.intent.category.LAUNCHER'] ]/@android:name" output="app_launch_activity" />


    <echo message="adb shell am start -n ${app_package}/${app_launch_activity}"/>  
           <exec executable="${adb}">  
               <arg value="shell"/>  
               <arg value="am"/>  
              <arg value="start"/>  
              <arg value="-n"/>  
               <arg value="${app_package}/${app_launch_activity}"/>  
          </exec>  
</target>


第三步:执行构建命令

ant easy

搞定!


过程请参考:http://blog.csdn.net/sodino/article/details/39526731

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值