編輯:Android開發環境
默認情況下,Android Studio可以通過簡單的點擊就會將新的項目部署到虛擬機或者物理設備中。在Instant Run的幫助下,你可以將更改的方法或資源文件直接推送到一個運行的app而無需構建一個新的APK,所以看起來像實時的。
構建和運行你的app,點擊Run’app’。Android Studio會讓你選擇一個部署目標(一個虛擬機或者一個連接的設備),使用Gradle進行構建,構建完成後將部署到目標上。
如果你使用Android虛擬機來運行你的app,你需要有一個Android Virtual Device(AVD)。如果沒有可以先創建一個,然後再運行app。點擊Select Deployment Target對話框中的Create New Emulator,跟隨虛擬設備配置向導定義你想要的虛擬機的信息。
如果你使用一個物理Android設備,你需要在設備中開啟USB調試。
選擇和構建不同的模塊
如果你的項目除了默認的app模塊還有多個模塊,你可以通過如下方式構建指定模塊:
在Project視圖中選擇這個模塊,然後點擊Build > Make Module (模塊名稱)
Android Studio使用Gradle對模塊進行構建。一旦構建完成,你可以運行和調試。
改變運行或調試配置
運行和調試配置控制模塊的運行、部署、啟動Activity,目標設備,虛擬機設置,logcat選項等等。默認的運行和調試配置運行項目默認的Activity,使用Select Deployment Target對話框來選擇目標設備。
更改構建變量
默認情況下,在你點擊Run‘app’的時候,Android Studio構建你的app的調試版本,為了調試版本。
改變Android Studio得構建變量,可以在Build > Select Build Variant,在下拉菜單中選擇。默認情況下,新的項目默認有debug和release兩個選項。
監控構建進程
你可以通過點擊Gradle Console來查看構建進程的細節。控制台顯示的是為了構建你的應用Gradle執行的每個任務。
生成APK
當你點擊Run ‘app’,Android Studio生成一個調試APK並且部署到目標設備中。在你生成一個app正式版進行發布之前,你必須學會如何對app進行簽名。
關於Instant Run
Instant Run是Android Studio 2.0引入的,Instan Run可以顯著減少應用的部署時間。雖然第一次部署需要花費很多時間構建完成,但是Instan Run可以將你的更改迅速的應用的app中而無需安裝一個新的APK。
只有你的APK是debug,並且Gradle 的Android插件版本是2.0.0或高於,最小sdk版本是15或更高時,才能使用。
當你部署一個app時,一個黃色閃電圖標出現在Run按鈕上,提示Instant Run會在你下次點擊這個按鈕時會把更新推送到設備或虛擬機,而無需安裝一個新的APK,僅僅是推送更新,在大部分時候,甚至不需要更新就可以立刻顯示效果。
Instant Run通過熱部署,暖部署或者冷部署將最新的代碼和資源,Instant Run會根據你的更改類型來決定部署類型。
使用Rerun
當你的代碼更改會影響初始化,比如應用的onCreate方法的更改。你需要重啟你的應用來使更改生效。點擊Rerun。
如果你需要部署一個干淨的構建,在主菜單中選擇Run > Clean and Rerun ‘app,或者在點擊Rerun時按住Shift鍵。這會停止正在運行的app,部署一個新的APK到你的目標設備中。
禁用Activity自動重啟
當你執行熱部署的時候,你的應用保持運行,但是Android Studio會自動重啟當前的activity。以下可以禁止這個默認設置:
1、 打開Settings或者Preferences對話框
2、 導航到Build、Execution、Deployment>Instant Run
3、 取消Restart activity on code changes 的打鉤。
禁用後,你可以通過選擇Run > Restart Activity手動啟動。
為Instant Run配置和優化你的項目
Android Studio在使用Gradle Android插件2.0.0或更高版本的項目中默認開啟Instant Run。為了更新一個存在的項目的Gradle插件到最新版本,可以執行如下幾步:
1、 打開Settings 或者Preferences對話框
2、 導航到Build、Execution,Execution, Deployment > Instant Run並且選擇Update Project
如果沒有出現,說明已經是最新版本。
通過配置DEX資源來提升構建時間
當你部署了一個應用,Android Studio允許你的app使用Instant Run來推送代碼和資源更新。雖然,在應用運行的時候推送更新更加迅速,但是第一次需要花費一定時間來構建。你可以通過一些DexOptions來提升構建進程:
MaxProcessCount:
設置DEX進程的最大數。
javaMaxHeapSize:
設置最大分配的內存
Instant Run的限制
Instant Run設計成在大部分情形下提升你構建和部署進程的速度。然而,在某些時候可能不適用。
部署到多個設備
Instan Run根據目標設備的API不同使用不同的技術來實現熱部署,冷部署。因為這個原因,當應用同時部署到多個設備,Android Studio會暫時關閉Instant Run。
多個DEX
如果你在build.gradle中設置multiDexEnabled true和minSdkVersion 20或更低,並且你部署的目標設備運行Android4.4或更低,Android Studio禁用Intant Run。
如果你的minSdkVersion為21或更高,Instant Run自動配置你的應用的多dex。
使用第三方插件
Android Studio在使用Instant Run時會暫時禁用Java Code Coverage Library(JaCoco)和ProGuard。這不影響你的構建。
禁用Instant Run
通過如下方式禁用Intant Run:
1、 打開Settings或者Preferences對話框
2、 導航到Build, Execution, Deployment > Instant Run
3、 取消選定Enable Instant Run.