1、Make Project:編譯Project下所有Module,一般是自上次編譯后Project下有更新的文件,不生成apk。

創(chuàng)新互聯(lián)建站成立于2013年,我們提供高端成都網(wǎng)站建設、成都網(wǎng)站制作公司、網(wǎng)站設計、網(wǎng)站定制、全網(wǎng)營銷推廣、微信平臺小程序開發(fā)、微信公眾號開發(fā)、成都網(wǎng)站營銷服務,提供專業(yè)營銷思路、內(nèi)容策劃、視覺設計、程序開發(fā)來完成項目落地,為咖啡廳設計企業(yè)提供源源不斷的流量和訂單咨詢。
2、Make Selected Modules:編譯指定的Module,一般是自上次編譯后Module下有更新的文件,不生成apk。
3、Clean Project:刪除之前編譯后的編譯文件,并重新編譯整個Project,比較花費時間,不生成apk。
4、Rebuild Project:先執(zhí)行Clean操作,刪除之前編譯的編譯文件和可執(zhí)行文件,然后重新編譯新的編譯文件,不生成apk,這里效果其實跟Clean Project一樣。
5、Build APK:前面4個選項都是編譯,沒有生成apk文件,如果想生成apk,需要點擊Build APK。6、Generate Signed APK:生成有簽名的apk。
為了更清楚的知道clean和rebuild到底有什么區(qū)別,我把自己的一個小項目執(zhí)行了一下這兩個操作,并用對比軟件對比了一下,紅色部分是執(zhí)行build操作的時候多出來的步驟。
大概意思:
:app:incrementalDebugJavaCompilationSafeguard
在incremental-safeguard目錄下生成tag.txt,標識已經(jīng)執(zhí)行過task
:app:compileDebugJavaWithJavac
intermediates下生成classes文件夾,以及對應的dependency-cache文件夾,classes文件夾中包含之前已經(jīng)解壓的各個aar文件中的類,但是不包含libs下的jar包中的內(nèi)容;同時還會生成一個tmp文件夾,內(nèi)容為空;目錄下不包括libs下的jar包內(nèi)容
compile Debug Ndk UP-TO-DATE
編譯調(diào)試NDK更新
:app:compileDebugSources
:app:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE
編譯調(diào)試單元測試的更新
:app:compileDebugUnitTestJavaWithJavac
:app:processDebugJavaRes UP-TO-DATE
res資源更新
:app:processDebugUnitTestJavaRes UP-TO-DATE
單元測試中res資源的更新
:app:compileDebugUnitTestSources
:app:incrementalDebugAndroidTestJavaCompilationSafeguard
:app:compileDebugAndroidTestJavaWithJavac
:app:compileDebugAndroidTestNdk UP-TO-DATE
單元測試NDK更新
:app:compileDebugAndroidTestSources
基本上build比clean多的就是會把NDK重新編譯一遍,有更新的話就更新。以及一些資源文件的更新。基本上差不多。
這樣看來,clean項目一般已經(jīng)夠用了,如果NDK以及資源文件有更改的話建議rebuild。
說的不對的地方,還希望大家包含。(不服來打)
首先說一下Android studio如何進行打包:
博主測試新建了一個packaging的工程
還是先看一下目錄結構,因為打包的時候和Eclipse不一樣,可以自選的,最好不要用默認的目錄結構
好,下面來看看如何進行打包
簽名文件所要放的位置,帳號密碼,以及別名
這里說一下,簽名最好放在工程的根目錄下,一個人開發(fā)的話,或者不是很保密的,其他的按照實際情況來
這里因為是新建的key,不能進行第二個選項
下面附圖說明
沒有的話是ok選項是不能點擊的
點擊create,會出現(xiàn)如下界面,英語不難,大家按照相應的填寫就可以了
這里路徑選擇按照上面說的根目錄就可以了
as貌似默認的是jks格式的,但是Eclipse貌似默認的keystore格式的,只是加密方式不一樣,其他的不影響
確認后返回原來界面相應的都會進行自動補充
這里為了以后簡便可以選擇記錄密碼
到了這我要著重說一下,上面是apk包存放的位置,第二個是打包方式,第三個博主沒用過
這個是默認的目錄結構,大家可以對照第一張圖片,就知道這個目錄結構在哪了,它在as中是會進行加載的,不會隱藏,如果少的話還好,要是多的話這個會占目錄結構的很大一部分,所以最好不要選擇這個目錄結構,那么選在哪呢?
其實as早就替你想到了,而且目錄機構都給你構建好了
直接選在apk這就可以可,至于打包方式大家就按照默認的,release就可以,下面說為什么
好,選擇ok,繼續(xù)下一步,看出現(xiàn)的結果
這里出現(xiàn)了兩個安裝包,直接就是英文翻譯就可以,一個是簽名的一個是未簽名的,未簽名的話打包是不能進行使用的,然后就是說上面選擇打包方式release,為什么不選擇debug,debug默認不簽名,而且對一些文件圖片的格式校驗比較松,還有就是一些string.xml文件或其他xml文件命名校驗不是很嚴格,不必進行強制編譯
反過來,看一下現(xiàn)在的目錄結構
因為簽名過了,并且博主記錄了密碼,以后打包就會方便了,來看看as比ec強大的地方
這里面很全,clean,debug,release等等,以后包多的話就知道好處了,現(xiàn)在就一個,但是相對也是比較方便的
雙擊release,打包,build successful打包完成
下面看一下如何獲取簽名,博主為了方便,把簽名文件放在了根目錄下了
這里要輸入密碼,而且沒有光標顯示
所有簽名信息都可以查到了
Android Studio下的編譯工具gradle的安裝路徑在:
磁盤路徑\Android Studio\gradle\m2repository\com\android\tools\build\gradle
而不是:
磁盤路徑\Android Studio\gradle\
項目中配置gradle的位置是:項目目錄下build.gradle文件中:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
}
}
allprojects {
repositories {
jcenter()
}
}
dependencies {
}
為什么要用Gradle?
Gradle是比較先進的構建系統(tǒng),也是一個很好的構建工具,允許通過插件自定義構建邏輯
以下是為什么Android Studio選擇Gradle的主要原因:
使用領域?qū)S谜Z言(Domain Specific Language)來描述和處理構建邏輯。(以下簡稱DSL)
基于Groovy。DSL可以混合各種聲明元素,用代碼操控這些DSL元素達到邏輯自定義。
支持已有的Maven或者Ivy倉庫基礎建設
非常靈活,允許使用best practices,并不強制讓你遵照它的原則來。
其它插件時可以暴露自己的DSL和API來讓Gradle構建文件使用。
允許IDE集成,是很好的API工具
需要準備:
Gradle 1.6 or 1.7
SDK with Build Tools 17.0.0 (released 5/16/2013)
Basic Project
在Gradle項目的根目錄下,有個叫build.gradle的文件,它描述了這個項目的整體構建基礎。
build文件
最基本的java程序,它的build.gradle文件就一句話:
apply plugin: 'java'
最基本的Android項目,它的build.gradle如下:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.6'
}
}
apply plugin: 'android'
android {
compileSdkVersion 17
}
我們一步步來分析一下上面三部分的內(nèi)容。
buildscript{...} 配置了驅(qū)動build的代碼,它聲明將在Maven中央倉庫,取一個classpath dependency,也就是Android plugin for Gradle v0.5.6
apply plugin 指明了用到的plugin是android,就像前面java程序中,用的plugin是java一樣
android{...} 中配置了所有android構建的參數(shù),這里也就是Android DSL的入口點。
默認的,只有目標編譯環(huán)境是必要的,也就是compileSdkVersion這個屬性。這和以前在project.properties中的target屬性類似。
值得注意的是,如果你在Android項目中寫 apply plugin:java 而不是apply plugin:android的話,將會build失敗。
分享題目:androidbuild,android build system
文章位置:http://chinadenli.net/article40/dsehdeo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、定制開發(fā)、做網(wǎng)站、外貿(mào)建站、云服務器、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)