Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自動化構建之Ant多渠道打包實踐分析(下)

Android自動化構建之Ant多渠道打包實踐分析(下)

編輯:關於Android編程

前言

上一篇(Android自動化構建之Ant多渠道打包實踐分析(上))已經介紹了Android的apk是如何構建的,本篇博客繼續Ant打包的實踐過程。

集成友盟統計SDK

這裡以友盟統計為例,對各個渠道進行統計,我們需要先集成它的SDK

配置權限

    
    
    
    
    
    
    
    

渠道配置

 
        
        
        

使用Ant打包的時候替換的渠道號就是 將Umeng替換為具體的渠道,比如將Umeng替換為xiaomi。

定義build.properties文件

這個文件定義了Ant腳本要用到的一些參數值,我們的渠道也是定義在這裡,具體看代碼:


#project name and version
    project.name=AntBuild
    project.version=4.1.4

#android platform version
    android-platform=android-19

#keysore file  
    ketstore.file=release.keystore
    key.alias=release.keystore
    key.alias.password=123456
    key.store.password=123456

#publish channel
    channelname=Umeng
    channelkey=360,QQ,xiaomi,liangxiang
    key=360,QQ,xiaomi,liangxiang

#library project
    library-dir=../Library
    library-dir2=../Library2
# generate R.java for libraries. Separate libraries with ':'.
    extra-library-packages=

#filnal out dir
    out.dir=publish

完整的Ant腳本




    
    

     
    

    
    

    
    

    
    

    
    

    
    

    
    

    
    

      
    
    


    
    
    
    
    
    
    


    
    
    

    
    

    
    

    
    
    

    
    
    

    
    
    

    
    


    
    



    
    
        
            
        
    

    
    

    
    
    

    
    
        
        
    


    
        
        
        
        
        
        
            
            
            
        
        
    

    
    
        目錄初始化....

        
        

        
        

        
        
        


        
        
        
        


        
        
        


        
        
        


        
        
        
        
        
        

        
        
        
        
        
        
    


    
    
        生成R.java文件....
        
            
            
              
            

            
            

            
            
            

            
            
            

            
            


            
            

            
            
            
        
    


    
    
        編譯aidl文件....
        
            
            
            
            
            
            
            
            
                
            
        
    


    
    
        java源文件編譯成class文件....

        
        
            
            
            
                
            
        


          
        
            
            
            
                
            
        

         
        
            
            
              
              

             
            
                
                
            
        
    

    



    
    
        將.class文件轉化成.dex文件....
        
            

            
            

            
                   
            
        
        
     


    
    
        將資源文件放進輸出目錄....
        
            
            
            
            

            
            

            
            

            
            

            
            
            
            
            
            
            
        
    

    
    
        打包成未簽證的apk....
          

            
            
            
            

            
            
            

            
            

            
            

            
            
            
        
    


    
    
        Packaging signed apk for release...
        
            
            
            
            
            
            
            
            
            
            
            
        
    


    
    
        
        
        APK is released. path:${out-signed-package-ospath}
         刪除其他文件,最後只保留apk  
        
        
        
        生成apk完成
    

    
    
        
            
            
            
            
        
    

上面就是完整的Ant腳本,實現了自動化構建和多渠道的打包,筆者在實踐的過程踩過不少坑才最終把apk包成功打出。

這裡總結下可能遇到的坑:
- 生成R.java文件,一定要注意先後順序,主項目之後才到關聯項目
- 編譯生成class文件,可能會遇到找不到類,一定要按照添加庫的順序來編譯class文件
- 替換渠道號的時候,Ant中pattern裡的內容要與mainfest文件的內容一致,包括順序,空格),筆者試過格式化後代碼之後就不能寫入成功

build.bat腳本


@echo off
call ant -buildfile "build.xml" deploy
echo done
pause
exit

測試結果

我們可以在項目中的publish目錄下生成不同渠道的apk文件:

這裡寫圖片描述

安裝apk到設備,啟動之後在友盟後台集成測試,看app發布的渠道:
歷史紀錄

總結

實現Ant多渠道打包整個過程還是比較繁瑣的,主要在Ant腳本上,比較容易出錯,需要對命令比較了解,但確實能夠縮短我們打渠道包的時間,基於本次實踐是基於Eclipse,目前Android Studio使用gradle來實現多渠道打包,以後會把gradle進行多渠道打包的實現分享給大家,大家可以對比下這兩種打包方式的區別,主要目的是更加深入的了解apk的構建過程。


 

   
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved