android studio 2.3 instant run 的变化

5.1的手机查看日志发现instant run是有变化的,安装的时候提示install apks,

$ adb install-multiple -r /Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_6.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_5.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_2.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_1.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_0.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/dep/dependencies.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_3.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_4.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_7.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_8.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/intermediates/split-apk/XIAOMI_CHANNEL/debug/slices/slice_9.apk 

/Users/zhengyongxiang/Documents/gzqiaoqiao/app/build/outputs/apk/SILIAO_XIAOMI_CHANNEL_vc10_v2.6_20170304__debug.apk 
Split APKs installed

由此可见新的instant run是把apk拆成多个了,需要反编译看下各个拆分出来的apk里面是什么样的,通过把slice里面的包拖到studio里面可以发现,依赖包和真正的代码会被分别编译成apk文件,变化的时候直接运行代码包,而依赖包不再运行

$ adb install-multiple -r -p com.example.zhengyongxiang.pullhead /Users/zhengyongxiang/Downloads/tinker-dev/PullHead/
app/build/intermediates/split-apk/debug/slices/slice_2.apk 
Split APKs installed
$ adb shell am startservice com.mofanbaby.qiaotalk/com.android.tools.fd.runtime.InstantRunService
$ adb shell am start -n "com.mofanbaby.qiaotalk/com.mofanbaby.qiaotalk.WelcomeActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

从日志看出新的instant run多了一个InstantRunService,具体变化需要查看源码

2.3的studio多了一个小闪电标志,直接运行,发现日志是

Hot swapped changes, activity restarted

而直接点击绿色的run按钮出来的日志是这样的

03/07 10:30:17: Launching app$ adb install-multiple -r -p ...
$ adb shell am startservice ...com.android.tools.fd.runtime.InstantRunService
$ adb shell am start -n ...
Connected to process 5268 on device huawei-eva_tl00-B2T5T16620000622

由此可见小闪电对应的是之前的hot swap,而run按钮对应的是cold swap,有修改的时候先点小闪电,不生效再点绿色的那个run按钮

未完待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,640评论 25 709
  • 什么是Instant Run? 我们都知道,Android Studio功能非常强大,在各个功能性方面都要优于Ec...
    GB_speak阅读 836评论 0 3
  • 如何编译运行app 我们要编译运行一个AS工程,只需在AndroidStudio上点击几下按钮就行了。Instan...
    EsonJack阅读 2,100评论 0 5
  • 这个世界上根本没有正确的选择,我们只不过是要努力奋斗,使当初的选择变得正确。
    淡淡忘阅读 166评论 0 0
  • 1. 月目标回顾 完成情况 本月共安排任务9项,完成2项, 2. 各领域情境综述 Physical 本月饮食,运动...
    yiling在路上阅读 260评论 0 0