Android Ant 和 Gradle 打包流程和效率對照

一、Ant 打包:(下載ant、配置環境變量就不說了)

1、進入命令行模式,并切換到項目文件夾。運行例如以下命令為ADT創建的項目加入ant build支持:

android update project -p . -t ?"android-17"

2、build腳本默認target是help。所以會顯示如上信息,改動target為debug或release就能夠像無ant時一樣編譯、生成以及調試了。

3、使用release時 ?在local.properties加入簽名信息

#keystore

key.store=xx.p12

key.alias=xxx

key.store.password=xxx

key.alias.password=xxx

4、命令行運行build.xml: ? ?ant -buildfile build.xml


5、error 處理

> BUILD FAILED
> C:\Android\android-sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
> C:\Android\android-sdk\tools\ant\build.xml:653: The following error occurred while executing this line:
> C:\Android\android-sdk\tools\ant\build.xml:698: null returned: 1

Also, if eclipse is set to 'build automatically' then this could keep popping up because eclipse will keep regenerating into the bin folder.
just run 'ant clean release' instead of 'ant release' when you are building this.
rm -fR $(find . -type d -name crunch|xargs)
假設遇到上述error 就運行 ant clean release
能夠參考我的項目:https://github.com/mentor811/Android-Batch-Pack
 

二、gradle 打包

1、下載gradle ?1.10 配置環境變量

2、配置android 環境變量?ANDROID_HOME?

3、導出build文件


4、改動build文件

參考:https://github.com/umeng/umeng-muti-channel-build-tool/tree/master/Gradle

5、運行

gradle clean

gradle build


三、gradle 和 ant 的比較

1、本人用起來感覺 gradle 比較苛刻

a、AndroidManifest.xml里的凝視必須<!-- 前后必需要有空格 -->

b、中文凝視可能會有亂碼

c、各個library project 里的 minsdk 和targetsdk 要和主工程保持一致

d、對png 圖片的格式非常嚴格

e、lint

而 ?使用Ant 時。沒有遇到上述問題,直接就成功了。

2、gradle 會把library project 里Androidmanifest.xml 合并到主工程,ant不會

3、靈活性上 絕對是gradle,配置友盟多渠道、改包名 配置一下就ok。而ant非常費勁。

4、打包效率對照:

第一次運行時 之前沒有build的的項目?

gradle 2min ? 53 ? pk ? ?ant ?2min 54
下圖是 已經運行過一個build后的打包時間:

左邊gradle ?右邊 ant




轉載于:https://www.cnblogs.com/bhlsheji/p/5104360.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375213.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375213.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375213.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

讀軟件工程這本書的感悟(第一次作業)

在還沒上這門課之前&#xff0c;我認為軟件工程是讓我們學會編寫軟件&#xff0c;但是在看到這本書后&#xff0c;我才知道我們學的不是如何的開發軟件&#xff0c;而是在學習開發和維護軟件&#xff0c;以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術…

請大家編譯連接并執行一下

由于是筆記&#xff0c;也許記得有點糟糕&#xff0c;也許班門弄斧沒有獨到見解 &#xff0c;見諒見諒

KVC和KVO

OC中的一個比較有特色的知識點&#xff1a;KVC和KVO一、KVC操作OC中的KVC操作就和Java中使用反射機制去訪問類的private權限的變量&#xff0c;很暴力的&#xff0c;這樣做就會破壞類的封裝性&#xff0c;本來類中的的private權限就是不希望外界去訪問的&#xff0c;但是我們這…

8086加法指令ADD

加法指令ADD(ADDition) ADD OPRD1,OPRD2 ;OPRD1<--OPRD1OPRD2 ;完成OPRD1與OPRD2相加 ,結果保存在OPRD1中CODE SEGMENT MOV AX,1 MOV BX,2 ADD AX,BX ;AX<--AXBX ,結果AX3CODE ENDS參與運算的操作數類型必須保持一致,同為字節或字可組合以下幾種形式&…

Fragment基礎講解

//新建一個碎片public class LeftFragment extends Fragment { Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // 加載一個碎片界面 View view inflater.inflate(R.layout.leftfragment, container, false)…

[bzoj1012](JSOI2008)最大數maxnumber(Fenwick Tree)

Description 現在請求你維護一個數列&#xff0c;要求提供以下兩種操作&#xff1a; 1、 查詢操作。語法&#xff1a;Q L 功能&#xff1a;查詢當前數列中末尾L個數中的最大的數&#xff0c;并輸出這個數的值。限制&#xff1a;L不超過當前數列的長度。 2、 插入操作。語法&…

javaScript轉換日期合格式

javascript如何將時間日期轉換為Date對象:有時候需要講一個字符串型的時間日期轉換為Date時間對象&#xff0c;下面就通過一個簡單的實例提供一種解決方案&#xff0c;當然也是一種思路&#xff0c;可以進行一定的變通&#xff0c;以達到舉一反三的效果。例如這里有一個時間日期…

8086減法指令SUB

減法指令SUB(SUBtraction) SUB OPRD1,OPRD2 ; OPRD1<-- OPRD1-OPRD2 都影響FLAG標志寄存器,同樣的包含兩種含義(有符號減法和無符號減法)

奇怪吸引子---Dadras

奇怪吸引子是混沌學的重要組成理論&#xff0c;用于演化過程的終極狀態&#xff0c;具有如下特征&#xff1a;終極性、穩定性、吸引性。吸引子是一個數學概念&#xff0c;描寫運動的收斂類型。它是指這樣的一個集合&#xff0c;當時間趨于無窮大時&#xff0c;在任何一個有界集…

8086 INC, DEC

INC OPRD ;OPRD<--OPRD1 ;自加1指令code segmentmov ax,0inc ax ;ax<--ax1 ,ax1inc ax ;ax<--ax1 ,ax2code endsDEC OPRD ;OPRD<--OPRD-1 ;自減1指令code segmentmov ax,5dec ax ;ax<--ax-1 ,ax4 code ends

iPhone UITableViewCell如何滾動到視圖頂端。

如何讓UITableViewCell滾動到視圖頂端。 - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;- (void)scrollToNearestSelectedRowAtScrollPosition:(UITableViewScrollPosition)s…

app 一些常用的

發短信 &#xff1a;sms:10086 打電話&#xff1a;tel:10086 1、-webkit-tap-highlight-color:rgba(255,255,255,0)可以同時屏蔽ios和android下點擊元素時出現的陰影。備注&#xff1a;transparent的屬性值在android下無效。 2、-webkit-appearance:none可以同時屏蔽輸入框怪異…

8086乘法指令MUL,IMUL

對于加減指令來說CPU對有符號加減和無符號加減一視同仁,根據我們需要把它作為有符號的結果還是無符號的結果,但是乘除法指令區分有符號乘除和無符號乘除指令 無符號數乘法指令MUL(MULtiply) MUL OPRD(OPRD可以用除立即數以外的任何尋址方式)OPRD是八位一個乘數默認在AL中 則&am…

hdu 4857 逃生 拓撲排序

逃生題目連接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid4857 Description 糟糕的事情發生啦&#xff0c;現在大家都忙著逃命。但是逃命的通道很窄&#xff0c;大家只能排成一行。 現在有n個人&#xff0c;從1標號到n。同時有一些奇怪的約束條件&#xff0c;每個…

指針數組,數組指針,指針函數,函數指針(轉)

int *p[4]; //指針數組。 是個有4個元素的數組&#xff0c; 每個元素的是指向整型的指針。(數組的每個元素都是指針)int (*p)[4]; //數組指針。 它是一個指針&#xff0c;指向有4個整型元素的數組。 (一個指針指向有4個整型元素的數組)int *…

8086除法指令DIV,IDIV

無符號除法指令DIV(DIVision) DIV OPRD ;除數OPRD決定是8位除法還是16位除法;OPRD8位,則被除數默認在AX中,AX除以OPRD的商保存在AL中,余數保存在AH中;OPRD16位,則被除數默認在DX與AX中,結果的商保存在AX中,余數保存到DX中assume cs:code data segmentdb 2,4 data ends code se…

Hibernate 基礎配置及常用功能(二)

本章主要是描述幾種經典映射關系&#xff0c;順帶比較Hibernate4.x和Hibernate5.x之間的區別。 一、建立測試工程目錄 有關實體類之間的相互映射關系&#xff0c;Hibernate官方文檔其實描述的非常詳細&#xff0c;這里只提供幾種常見映射。&#xff08;推薦4.3.11版本的 hibern…

三言兩語

人生中總是在選擇。每當做一件事我們都應該問問我們的內心&#xff0c;或多或少我們都能理解一點人生的真諦。 最近時間很充裕&#xff0c;也就想了好多事情。首先我想明白的第一件事就是做任何事就要勇敢的去面對、去追求。喜歡一個女孩子大概有8年了吧&#xff01;這期間我們…

8086邏輯移位指令SHL和SHR

SHL邏輯左移指令 SHL OPRD M;把操作數OPRD左移M位,M為位移次數,為1或為CL(位移超過1次用CL表示) ;每移動一位右邊用0補足一位,移出的最高位進入CF(最后移出的一位寫入CF) MOV AL,00010011B ;13H 00010011B SHL AL,1 ;把AL左移1位,移出的最高位0進入CF,右邊0補足1位…

YTU 2903: A--A Repeating Characters

2903: A--A Repeating Characters 時間限制: 1 Sec 內存限制: 128 MB提交: 50 解決: 30題目描述 For this problem,you will write a program that takes a string of characters,S,and creates a new string of characters,T,with each character repeated R times.That is,…