最近一直在补一些 C/C++的知识,导致 Android 相关知识看的少了,导致每日一问憋半天憋不出来。
还好,我又更新了...
之前公众号推文的时候,推送到混淆的时候,经常会说到「脱糖」,也有同学在留言区问什么是脱糖呀?
今天的问题就是为了带大家彻底搞清楚什么是脱糖:
- 脱糖产生的原因是什么?
- 脱糖在 D8 产生后发生了什么变化?
- 脱糖我们需要关注吗?在我们做什么事情的时候可能会影响到呢?
求解答~
更多问答 >>
-
每日一问 | ViewModel 在什么情况下的「销毁重建」能够对数据进行无缝恢复?
2021-08-25 18:11 -
每日一问 | 关于 Activity 重建,值得探究的几个问题
2021-08-30 21:37 -
每日一问 | 好奇ActivityThread中为什么会有一个 Application的集合?
2021-08-30 21:36 -
每日一问 | Gson中序列化对象的操作有低侵入的优化方案吗?
2021-12-02 00:50 -
2021-07-11 22:06
-
每日一问 | Dialog 的构造方法的 context 必须传入 Activity吗?
2021-07-11 22:06 -
2021-05-28 00:29
-
每日一问 | 已经有了 Intent,那为啥还要 PendingIntent?
2021-05-28 00:29 -
每日一问 | view.requestLayout如果在灭屏或者切home之后调用会怎么样?
2021-05-06 00:16
关于 D8 和 R8 的功能介绍,我最近翻译了 jakewharton 的一个系列文章来介绍,有兴趣可以去查看一下:https://juejin.cn/user/2172290705131016/posts
赞
大佬牛逼啊
不都是用 kotlin 了吗?
脱糖其实是一个很大的 Feature,上面提到的只是其中的冰山一角,Kotlin 中也有类似的使用,可以看下这篇文章:https://juejin.cn/post/697861496384992052 ...查看更多
脱糖其实是一个很大的 Feature,上面提到的只是其中的冰山一角,Kotlin 中也有类似的使用,可以看下这篇文章:https://juejin.cn/post/6978614963849920526
kt只是语言,语言对于功能实现开发者自由选择,但明显最近有推手在各种洗脑推广kt,像我就不会只用kt,鸡蛋不会放一个篮子里
笑死,推手洗脑还行,谷歌官方都推荐kt好几年了,宁还搁这java天下第一呢?智障不是你的错,智障还要非要秀一下真是搞笑
真就世人皆醉我独醒呗?同一功能的实现确实可以选择不同语言,绝大多数情况下实现一样的功能kt比java方便,效率更高。已经公认的事情还要搁这杠一波,java能做的kotlin都能做,这种情况下还用jav ...查看更多
真就世人皆醉我独醒呗?同一功能的实现确实可以选择不同语言,绝大多数情况下实现一样的功能kt比java方便,效率更高。已经公认的事情还要搁这杠一波,java能做的kotlin都能做,这种情况下还用java只能说是纯脑摊。
掘金的 v3 大佬牛逼
哈哈哈,我是真的在笑哦~~~
脱糖主要为了兼容一些新的语法在所有设备上都能运行,例如Java8引入的Lambda,在JVM上通过invokedynamic字节码指令来支持实现,但是这个指令在Android上 API 26以后才支持,为了让开发者使用Lambda,又能在低版本设备上正常运行,就不能像JVM使用invokedynamic指令去动态调用,而是转为内部类去实现。使用D8时,在app/build/intermediates/javac下生成的class文件,通过javap反编译还是使用的invokedynamic,转换成内部类需要到合成dex才会执行。Android上使用Java 8 及更高版本 API也只是一部分支持列表。其它不太了解了,蹲一波缘神😁
desuger过程