【发布时间】:2014-08-01 05:31:28
【问题描述】:
当我阅读 Google play policy 时,我对这句话有疑问。
从 Google Play 下载的应用不得使用 Google Play 更新机制以外的任何方法修改、替换或更新自己的 APK 二进制代码。
这意味着开发者不能使用自修改代码??
例如,当用户第一次运行我的应用程序时,我的应用程序会修改其二进制代码。
如果我使用它,我可以使用自修改代码上传我的应用程序吗??
【问题讨论】:
当我阅读 Google play policy 时,我对这句话有疑问。
从 Google Play 下载的应用不得使用 Google Play 更新机制以外的任何方法修改、替换或更新自己的 APK 二进制代码。
这意味着开发者不能使用自修改代码??
例如,当用户第一次运行我的应用程序时,我的应用程序会修改其二进制代码。
如果我使用它,我可以使用自修改代码上传我的应用程序吗??
【问题讨论】:
虽然政策不允许,但如果 Google 没有检测到我们在做什么,我们是安全的。
有几种方法可以动态加载二进制代码 AKA DEX file。所以在运行时你下载更新的 dex 文件并运行它。这是相当有名的。你可以在这里找到一些信息http://android-developers.blogspot.sg/2011/07/custom-class-loading-in-dalvik.html
Facebook 应用确实使用动态类加载,因为其代码中的方法数量超过 64K,因此他们必须将代码拆分为多个 dex 文件并在运行时动态加载。因此,如果 Facebook 可以,那么我想我们也可以继续前进。
Facebook 的以下博客陈述了他们面临的问题以及他们如何解决问题https://m.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920
【讨论】: