日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初识instantRun

發布時間:2023/12/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识instantRun 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

公司安卓測試機vivo z1手機 ,apk debug安裝時彈對話框“解析錯誤,解析軟件包時出問題”

1、 解決方案

1、關閉安卓studio的 instant run(如下圖 對號勾掉)
2、項目工程gradle.properties 下添加 android.injected.testOnly = false(如下圖)

初識instant run

那么這個instant run到底是啥呢???

如下圖(我關閉了instant run)

如果你需要開啟,按照背景中的步驟開啟即可(開啟后你運行app后如下圖)

1、認識

1、安卓studio2.0編譯器新添加的功能,目的是為了提高安裝apk的速度。
2、傳統情況下,我們修改程序后重新運行一次程序需要經歷 :代碼重新編譯 -> 停止程序 -> 重新安裝 -> 重新啟動 這樣一個過程,而Instant Run則嘗試只將程序變更的部分部署到手機上,盡量避免重新安裝或重新啟動程序,以此大大提升調試程序的效率。

對instant run 的了解

instant run的分類

instant run 分為三種類型(如下)

  • hot swap(熱交換)
  • warm swap(溫暖交換)
  • cold swap(冷交換)

三種類型詳解

1、hot swap

優點:
1、hot swap是所有swap方式中效率最高的一種
2、應用程序不需要重新安裝,也不需要重啟就可以完成程序變更。
缺點:
hot swap不會對程序中的對象進行重新初始化,也就是說可能某些場景下需要重啟Activity才能看出具體的變更內容。
ps:
Android Studio對于hot swap這種情況默認是重啟Activity的,當然你也可以到設置中去改變這一默認行為,具體路徑是 Settings -> Build, Execution, Deployment -> Instant Run -> Restart activity on code changes。
適用場景:
hot swap的適用條件比較少,只有一種情況會被Android Studio視為hot swap類型,就是修改一個現有方法中的代碼(參考下面栗子)

栗子:

程序如上,我們點擊運行時:
1、log: onCreate
2、點擊按鈕彈吐司內容為:“點擊事件”

我們修改如上程序,修改吐司內容為“點擊事件,hello”然后再次點擊運行程序:

log:
2019-06-07 19:27:26.208 15069-15069/? I/aaa: onCreate:
2019-06-07 19:28:29.426 15619-15619/? I/aaa: onCreate:
吐司內容為:點擊事件hello

我們發現:
1、 onCreate 走了兩遍(其實你在instant run中關閉重啟activity就打印一次onCreate)
2、安裝速度很快(這是因為這種情況觸發hot swap)

2 warm swap

warm swap也非常快,這種swap類型同樣不需要重新安裝或重啟程序就可以完成程序變更,但是warm swap要求必須重啟Activity。你會在界面上看到屏幕很快地閃一下,同時Activity的生命周期會重新執行。
warm swap的觸發條件:
只有一種情況會被Android Studio視為warm swap類型,就是修改或刪除一個現有的資源文件(res下的資源文件發生改變)

3、cold Swap

cold swap相對而言就要更慢一些了,Android Studio會自動記錄我們項目的每次修改,然后將修改的這部分內容打成一個dex文件發送到手機上,盡管這種swap類型仍然不需要去安裝一個全新的APK,但是為了加載這個新的dex文件,整個應用程序必須進行重啟才行。另外,cold swap的工作原理是基于multidex機制來實現的,在不引入外部library的情況下,只有5.0及以上的設備才支持multidex,因此,如果你使用了5.0以下的設備,那么cold swap就無法工作了,這種情況會執行最原始的完整APK安裝過程。

觸發機制(如下很多):

添加、刪除或修改一個注解
添加、刪除或修改一個字段
添加、刪除或修改一個方法
添加一個類
修改一個類的繼承結構
修改一個類的接口實現
修改一個類的static修飾符
涉及資源文件id的改動

小結

自己動手豐衣足食 動手總結一遍就算了解了哈哈。。。。。

感謝郭神文章分享:https://blog.csdn.net/guolin_blog/article/details/51271369

總結

以上是生活随笔為你收集整理的初识instantRun的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。