編輯:關於Android編程
默認情況下,Android Studio設置新的項目並且部署到模擬器或者真機設備上,只需要點擊幾下。使用即時運行,你並不需要構建一個新的APK即可將改變後的方法和現有的應用資源應用到一個正在運行的應用程序中,所以代碼的改變是即時可見的。
點擊Run來構建並運行你的APP。Android Studio通過Gradle構建你的App,選擇一個部署的設備(模擬器或連接的設備),然後把你的APP部署上去。你也可以自定義這些默認的設置,例如你可以通過 changing the run configuration 選擇自動部署到目標設備。
如果你希望使用模擬器(use the Android Emulator)來運行你的APP,你需要准備好一個Android虛擬設備(AVD)。如果你還沒有創建一個模擬器,點擊Run之後,在Select Deployment Target對話框中點擊Create New Emulator。按照虛擬設備配置向導來定義創建你需要的模擬器。更多詳細信息,請查看Create and edit virtual devices。
如果你正在使用Android真機,你需要在設備上開啟USB調試模式。更多詳細信息,請查看Using hardware devices。
Note:你也可以通過點擊Debugvc/CxOO/ydLU1NrE47XEtPrC69bQyejWw7bPteOjrNTa1MvQ0MqxvOyy6bHkwb+6zbHttO/KvbXE1rWjrLKi1MvQ0LX3ytS5pL7foaO4/Lbgz+rPuNDFz6KjrMfrsum/tDxhIGhyZWY9"https://developer.android.com/studio/debug/index.html">Debugging with Android Studio.
如果你的項目中除了默認的應用模塊之外還有多個模塊,你可以按照下面的步驟來構建一個特定的模塊:
在 Project 面板中選擇模塊,然後點擊 Build > Make Module module-name。Android Studio通過Gradle構建模塊。一旦模塊構建完成,如果你為一個新的APP或者新的設備構建了一個模塊,你可以運行或者調試它,或者如果你構建了一個library或者Google Cloud 模塊,可以作為依賴來使用它。
運行APP的一個模塊:
點擊 Run>Run ,然後在運行對話框中選擇模塊。run/debug配置指定了要運行的模塊,封裝部署,啟動頁面,目標設備,模擬器設置,logcat選項等等。默認的run/debug配置啟動項目默認的Activity並且使用Select Deployment Target對話框選擇部署目標。如果默認的設置不適合你的項目或者模塊,你可以自定義設置run.debug配置,或者你可以在項目級、默認級或者模塊級創建一個新的配置。編輯run/debug配置,選擇Run > Edit Configurations。更多詳細情況,參照Create and Edit Run/Debug Configurations。
默認情況下,當你點擊Run的時候,Android Studio構建debug版本的APP,它只用於測試,你需要構建release版本來准備對外發布(prepare your app for public release)。
Android Studio更改構建版本,點擊Build > Select Build Variant,然後在下拉列表中選擇另一個選項。默認情況下,會生成一個debug和build版本。
根據product flavors,你可以為你的不同版本的APP創建額外的構建版本,每個版本都有不同的功能或者設備需求。關於build variants和 product flavors,詳見Configure your build.
點擊 Gradle Console 你可以查看構建進度詳情。控制面板顯示了構建你的APP時Gradle執行的每個任務,如下圖所示:
如果你的構建版本使用了產品特色,它調用任務來構建這些產品特色。點擊IDE右側窗口的Gradle來查看所有可用的構建任務列表。
如果在構建進程中出現了一個錯誤,Messages窗口會顯示出來描述這個問題。Gradle可能會推薦幾個命令行選項來幫助你姐姐這個問題,例如 –stacktrace 或者 –debug。使用命令行選項幫助你構建過程。
1.打開 Settings 或者 Preferences 對話框:
在Windows或者Linux上,在菜單欄上選擇 File > Settings 。
在 Mac OSX 上,在菜單欄上選擇 Android Studio > Preferences 。
2.定位到 Build,Execution,Deployment > Compiler。
3.在 Command-line Options 旁邊的文本輸入框內,輸入你的命令行選項。
4.點擊 OK 保存並退出。
Gradle 下次嘗試構建你的APP的時候將會嘗試這些命令。
當你點擊 Run 時,Android Studio 生成一個 debug 的 APK 並且部署到你的目標設備。在你生成一個 release 版本的 app 發布之前,然而,你首先必須學習如何簽名你的APP(sign your app)。然後你可以構建多個簽名後的 debug 或者 release 構建版本的APKs。找到生成的APK文件,點擊彈出的對話框中的鏈接,如下圖所示:
點擊鏈接找到生成的APK文件。
在 Android Studio 2.0版本中提到過,Instant Run 是 Run 和 Debug 命令的一種行為,顯著的減少更新你的應用的時間。盡管第一次構建可能需要更多的時間去完成,Instant Run 並不需要構建一個新的APK即可把隨後的更新推送的你的APP,所以展示的更快了。
Instant Run 支持只有你構建 debug 版本並且使用 Android Plugin Gradle2.0版本或者更高,並且在你的APP模塊級 build.gradle 文件中設置 minSdeVersion 為15或者更高。為了獲得更好的性能,設置 minSdeVersion 為21或者更高。
部署APP之後,一個非常小的、黃色的雷電圖標在 Run 按鈕(或者 Debug 按鈕)中顯示了,指示著當你下次點擊按鈕的時候 Instant Run 已經准備好推送更新。它只推送那些新的變化代替構建一個新的APK,在某種情況下,APP並不需要重新啟動但卻能即時的展示代碼更新後的結果。
Instant Run 通過運行 hot swap,warm swap,or cold swap 推送更新後的代碼和資源文件到連接著的設備或者模擬器,它會基於你所做的更改類型自動確定swap的類型。上面的視頻提供了一個有趣的細節,關於這一切是如何工作的。然而當你推送確定的代碼改變到一個目標設備,關於Instant Run表現的一個快速總結,見下表:
Note:當你的APP崩潰之後,你需要重啟,不要從你的目標設備啟動它。在你的目標設備重啟你的App的時候,不要應用任何代碼的改變自從上次cold swap 或者增量構建(incremental build)。保持最近的變化來啟動你的App,點擊Android Studio上的 Run (或者 Debug )。
當我們推送更新的代碼影響特定的初始化的時候,例如onCreate()方法改變的時候,你需要重新啟動APP使改變生效,點擊Rerun進行增量構建並重啟APP。
如果你需要構建一個clean build,在菜單欄上點擊Run > Clean and Rerun,或者按住Shift鍵點擊Rerun。這樣即可停止正在運行的APP,執行一個完整的,clean之後的構建,然後將新APK部署到你的目標設備。
當執行hot swap時,你的app保持運行狀態但是Android Studio自動重啟當前的Activity,按照以下步驟禁用:
1.打開Settings或者Preference對話框:
在Windows或Linux上,在菜單欄選擇File > Settings 。
在Mac OSX上,在主菜單上選擇Android Studio > Preferences
2.展開Build,Execution,Deployment > Instant Run.
3.取消選中Restart activity on code changes
如果禁用了Activity自動重啟,你可以手動選擇菜單欄中的Run > Restart Activity重啟當前Activity。
Android Studio構建項目時使用Android Plugin Gradle2.0或者更高的時候默認啟用Instant Run。
將已經存在的項目插件更新到最新版本:
1.打開Settings或者Preference對話框:
2.展開Build,Execution,Deployment > Instant Run並且點擊Update Project,如下圖所示。如果這個選項沒有顯示出來,這個項目的Gradle插件已經更新到最新版本了。
為已經存在的項目更新Gradle插件。
同時你需要將構建版本改為debug版(change the build variant)才可以使用Instant Run。
當你部署一個Clean後的構建,Android Studio促使你的APP允許Instant Run將代碼和資源更新。雖然更新App更加迅速,第一次構建完成可能需要更長的時間。你可以通過配置一些DexOptions設置提高狗屎速度:
maxProcessCount
設置DEX允許同時運行的進程的最大數量,如果Gradle進程正在運行,你需要在初始化一個新的maximun進程數量之前停止正在運行的程序,你可以在終端窗口調用如下命令來終止Gradle進程:
在Windows上輸入 gradlew --stop
在Linux/Mac OSC上輸入 ./gradlew --stop
javaMaxHeapSize
設置DEX運行時內存最大值,當改變一個值時,你可以添加“k”表示字節,“m”表示兆字節,或者“g”表示千兆字節。
下面的示例在模塊級build.gradle文件中設置maxProcessCount為4並且設置javaMaxHeapSize為“2g”:
...
dexOptions {
maxProcessCount 4 // this is the default value
javaMaxHeapSize "2g"
}
}
你應該嘗試這些設置,遞增這些值並且注意觀察這些對構建時間的影響。如果你給DEX分配太多資源,可能會導致構建時間更長。
Android Plugin for Gradle version 2.1.0或者更高版本提供了額外的構建進程改進,包含Java增量編譯和dexing-in-process,默認啟用了Java增量編譯,在開發期間只重新編譯資源改變的部分或者需要被編譯的部分提高了編譯效率。
Dexing-in-process執行dex構建過程中,而不是在一個單獨的外包VM進程。這不僅使得增量構建更加快速,而且全面構建也有明顯的加速。要啟用這個特性,需要設置Gradle守護進程maximun大小至少2048MB。你可以按照如下步驟更改你項目的gradle.properties文件:
org.gradle.jvmargs = -Xmx2048m
如果你在模塊級build.gradle文件中定義了javaMaxHeapSize一個值,你需要將守護進程的最大值設置為javaMaxHeapSize + 1024 MB。例如,如何你設置了javaMaxHeapSize 大小為“2g”,你需要在項目的gradle.properties文件中進行如下設置:
org.gradle.jvmargs = -Xmx3072m
在Windows系統中,Windows Defender可能導致使用Instant Run變慢。如果你在使用Windows Defender,你應該使Windows Defender不再掃描Android Studio項目文件夾exclude your Android Studio project folder from Windows Defender malware scans。
如果你的Fabric Gradle插件版本低於1.21.6,Crashlytics可能導致構建時間變長。為了提高開發app的構建性能,你可以更新你的插件到最新版本(update the plugin to the latest version)或者在debug版本時禁用Crashlytics(disable Crashlytics for your debug build variant)。
在大多數情況下,Instant Run被開發的目的是加快構建和部署的速度。然而,在使用Instant Run時也有一些方面可能會影響其行為和與程序的兼容性。當你使用Instant Run時出現了任何問題,請提交這個bug(file a bug)。
Instant Run在不同的API級別的目標設備上使用不同的技術來執行熱、暖、冷交換。為此,在部署一個應用到多個設備的時候,Android Studio暫時關閉Instant Run。
當你的項目為Legacy Multidex進行了配置,換句話說,當build.gradle配置multidexenabled為true並且minSdkVersion為20或者更低,並將項目部署到的設備運行Android4.4(API level 20)或者更低的時候,Android Studio會禁用Instant Run。
如果minSdkVersion設置為21或更高,Instant Run自動配置你的程序的multidex,因為Instant Run只是在debug版本的時候工作,當部署release版本的時候你可以需要配置你程序的multidex(configure your app for multidex)。
檢測測試將debug APK和test APK在一個進程中部署到一個測試設備上,允許控制方法覆蓋正常的app生命周期和執行測試。但運行或者debug測試時,Android Studio不注入Instant Run所需的附加方法,並將該功能關閉。
在分析一個app的時候,你應該禁用Instant Run,當使用Instant Run時對性能有一些影響,當使用hot swap重寫方法時有略微大點的影響。這個性能的影響可能會干擾性能分析工具提供的信息。此外,此外,每一個hot swap產生的存根方法可以使堆棧跟蹤復雜化。
當使用Instant Run時Android Studio會暫時禁用Java Code Coverage Library (JaCoCo)和ProGuard,因為Instant Run只在調試版本中運行,這不會影響你的發布版本。
某些第三方插件執行字節碼增強可能導致運行你的應用程序Instant Run問題。如果你遇到這些問題,但仍希望使用Instant Run,你應該在debu版本的時候禁用這些插件。你也可以通過提交一個bug(filing a bug)來幫助改善兼容第三方插件的問題。
Instant Run只通過你的app的主進程為了執行hot swap 和warm swap,當推送改變到app其他的進程,例如更改方法的實現方式,或者現有的資源,Instant Run執行cold swap。
禁用Instant Run:
1.打開Settings或者Preferences對話框。
2.展開Build,Execution,Deployment > Instant Run
3.取消選中Enable Instant Run選擇框
本文實例講述了Android獲取手機屏幕大小的方法。分享給大家供大家參考,具體如下:這裡主要用了三個對象TextView ,Button ,以及DisplayMetric
GPS簡介 GPS是英文Global Positioning System(全球定位系統)的簡稱。GPS是20世紀70年代由美國陸海空三軍聯合研制的 新一代空間衛星導航定
首先說一下canvas類:Class OverviewThe Canvas class holds the "draw" calls. To draw
解決 INSTALL FAILED CONFLICTING PROVIDER的問題方法 在安裝Android應用時出現INSTALL FAILED