ant自动打包apk(详细),引用到第三方工程类库以及里面的资源,修改包名和工程名

实现ant自动打包流程

1.进入项目的目录中,打开命令行窗口

android update project --name 项目名称 --path 项目的绝对路径

 

local.properties里面设置的是引用的参数,比如工具的路径、目录的路径、等等,

build.xml这里面是最主要的,通过引用local.properties中的参数来完成我们需求的操作。

我这里有现成的local.propertiesbuild.xml,可以直接复制,但是要使用的话还需要自己看代码,修改local.properties中的路径,设置成自己环境下的,也可以根据自己需求修改build.xml中的标签。

2.实现自动打包

我实现的打包流程:a.解压一个zip的压缩包,b.将压缩包中的图片、视频、Json数据、icon.png复制到指定的项目目录中c、修改项目的包名和app的名称d、打包成apk

下面是我的  local.properties   build.xml

Local.properties中的内容

#项目的路径

project.home=E:\\hoga_news\\holga-book

#

resource-dir=E:\\hoga_news\\holga-book\\res

#引用到第三方的工程类库

library-dir=E:\\hoga_news\\library_SlidingMenu

library-dir2=E:\\hoga_news\\FacebookSDK

#

delete-dir=E:\\hoga_news\\holga-book\\assets

#

values-dir=E:\\hoga_news\\holga-book\\res\\values

#生成的apk的名称的一部分

appName=offline-package

#

version=1.0.0

#生成的有签名的apk的路径

project.outdir=E:\\hoga_news\\offlineapks

#android.jar工具的路径

android-jar=E:\\sdk\\platforms\\android-22\\android.jar

#aapt.exe工具的路径

android-aapt=E:\\sdk\\platform-tools\\aapt.exe

#dx.bat工具的路径

android-dx=E:\\sdk\\platform-tools\\dx.bat

#sdklib.jar工具的路径

sdklib=E:\\sdk\\tools\\lib\\sdklib.jar

#jarsigner.exe工具路径

android-jarsigner=E:\\jdk\\bin\\jarsigner

#使用的key的路径

keystore-file=C:\\Users\\qingdong\\Desktop\\key\\lixianbao.key

#对齐工具路径

android-zipalign=E:\\sdk\\tools\\zipalign.exe

#生成优化后的apk的路径

success_apk_out_dir=C:\\Users\\qingdong\\Desktop\\offline_apks

#需要解压的压缩包的路径

zip-dir=C:\\Users\\qingdong\\Desktop\\ZIP

#SDK的路径

sdk.dir=E:\\sdk



build.xml 中的内容


 

    

    

    

    

    

    

    

    

    

        

 

 

 

 

 

 

 

 

 

复制图片新闻的数据

  

复制视频的数据

复制纯新闻数据

 

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

        Initializing all output directories...

        

        

        

        

        

    

        

             

                

             

        

        

             

                

             

        

    

    

    

    

 

   

   

   

   

   

     

    

    

        Generating R.java / Manifest.java from the resources...

        

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

        

        

        

            

            

            

            

            

            

            

            

            

            

            

            

            

        

        

        

            

            

            

            

            

            

            

            

            

            

            

            

            

        

    

    

    

        Compiling java source code...

        

            

            

            

                

            

        

        

            

            

            

                

            

        

        

            

            

            

                

            

        

    

    

    

        Converting compiled files and external libraries into ${outdir-dx}test.dex...

        

            

            

            

            

        

    

    

    

        打包资源文件。。。

        

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

        

    

          

          

            打包成未签证的apk....  

                

                  

                 

              

              

              

              

              

              

              

              

              

              

              

              

              

              

              

              

            

             

              

          

    

    

        Packaging signed apk for release...

        

            

            

            

            

            

            

            

            

            

            

            

        

    

    

    

       optimizing the application...

      

        

        

        

        

        

     

    

    

    

        

        

        APK is released. path:${out-signed-package-ospath}

        

        APK is copy to path:${outdir-package}

    

3.命令行调用

我实现的是打包一个apk就要修改包名和项目名,所以必须知道当前项目中的包名和项目名

查看的方法:

a.查看配置文件AndroidManifest中的包名和定义的项目名

b.如果打包过apk后,使用命令行解析apk

aapt d badging   apk的路径

 

 

接下来就是更换包名、项目名、打包的命令,首先进入项目目录中,运行命令

ant -f build.xml -Doldpac=旧的包名 -Dnewpac=新的包名 -Doldpro=旧的项目名-Dnewpro=新的项目名

生成的apk就会到指定的目录中。

 

遇到的问题:1.资源图片的格式问题  图片的格式被修改了后缀名,本来是.jpg  被修改里后缀名.png  编译报错,需要使用图片格式转换器转换图片格式,替换原来的图片。

 

你可能感兴趣的:(android)