代码之家  ›  专栏  ›  技术社区  ›  EAK TEAM

使用Proguard和R8差异的Android应用程序[关闭]

  •  14
  • EAK TEAM  · 技术社区  · 6 年前

    Google R8 Proguard 6.0.3 ... 根据你的经验,你认为呢?主要区别是什么? R8 我的应用程序比 Proguard 真的好多了。使用时的类数 Proguard公司 .

    Ignoring option: -optimizationpasses"
    Ignoring option: -assumenoexternalreturnvalues"
    Ignoring option: -assumenoexternalsideeffects"
    

    AGPBI: {"kind":"warning","text":"Missing class: sun.net.www.protocol.http.HttpURLConnection","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: com.sun.net.httpserver.HttpHandler","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: org.dbunit.dataset.datatype.DefaultDataTypeFactory","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: com.inmobi.ads.InMobiNative$NativeAdListener","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: javax.enterprise.util.AnnotationLiteral","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: sun.net.www.protocol.http.Handler","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: com.flurry.android.ads.FlurryAdNativeListener","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: sun.net.spi.nameservice.NameServiceDescriptor","sources":[{}],"tool":"D8"}
    AGPBI: {"kind":"warning","text":"Missing class: java.lang.ClassValue","sources":[{}],"tool":"D8"}
    

    所以总的来说我认为 R8 Proguard公司 尽管它仍然是实验版本。

    谷歌说:

    R8是全程序缩小和

    我认为这是真的。

    但是这些工具在细节上是如何工作的呢?R8在深层次上的工作原理和彼此之间的主要区别是什么?

    在升级到Android Studio 3.3 Canary 2之后,当使用R8时,APK的大小似乎和使用Proguard并没有任何区别

    p、 学生:对不起,我的英语:):)

    目前最新的R8版本 V. 1.4.71 看起来真的很好,比Proguard快,当比较从R8生成的Apk/束时,大小更小。此外,DEX方法计数也较小。

    更新(2019年4月8日):

    V. 1.4.79 看起来真的很好,比Proguard快,当比较从R8生成的Apk/束时,大小更小。此外,DEX方法计数也较小。 我在生产中使用R8收缩器,一切看起来都很有希望。真的很棒。

    0 回复  |  直到 2 年前