gpt4 book ai didi

java - 从 Google Play 服务 jar 文件中剥离一些文件是否有问题?

转载 作者:行者123 更新时间:2023-11-29 21:14:02 25 4
gpt4 key购买 nike

我们的应用使用 Google Play 服务 SDK 进行 GCM 推送通知,但是 jar 文件中有 com.google.ads 包。因此,我们的应用程序被某些移动安全应用程序标记为广告应用程序。我从 google-play-services.jar 中删除了 com.google.ads 包,GCM 推送在精简的 jar 上仍然可以正常工作。

从 Google Play 服务 jar 文件中剥离一些文件是否有问题?你以前见过同样的问题吗?不知何故,我在互联网上搜索不到任何相关信息。

最佳答案

这应该不是问题,因为没有人尝试加载任何这些类。

认为在 java 中类是按需加载的,如您所见here :

The Java Classloader is a part of the Java Runtime Environment that dynamically loads Java classes into the Java Virtual Machine.1 Usually classes are only loaded on demand. The Java run time system does not need to know about files and file systems because of classloaders.

因此,jar 中现有或应该存在的类不会以任何方式进行解析,无论它在里面是什么,它只是应用程序可以调用的一堆资源。实际上,那个 jar 只是一个提供类的库,这些类充当您的应用程序和设备中安装的其他东西之间的桥梁,但您只加载您需要的类。

另外,只要内容不是“密封”的,就不会检查里面文件的一致性。如您所见here ,

Package Sealing: Packages stored in JAR files can be optionally sealed so that the package can enforce version consistency. Sealing a package within a JAR file means that all classes defined in that package must be found in the same JAR file.

一个包裹可以被密封,但如果你已经打破了 jar ,在一台设备上试过它,并且它有效,那就意味着它没有被密封。

因此,只要您实际需要的类存在,并且它们的版本是正确的,就不会发生其他任何事情。

关于java - 从 Google Play 服务 jar 文件中剥离一些文件是否有问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com