Skip to content
jack_1900 edited this page Dec 8, 2016 · 1 revision

为什么hotpatch没有生效?

A : 检查管理平台配置是否正确,appversionhotfix包是否对应的上当前版本;在发布的时候,是否选择了立即生效,如无则下次启动才会生效。

Amigo 服务会收费不?

A : Amigo服务目前完全免费,随着APP的不断接入,服务器以及CDN流量费用会增长。为了提供 更好的服务质量,Amigo将保留收费的权利。

SDK兼容性怎么样?支持的机型有哪些?

  • 经过大量的线上验证和云测服务,SDK的兼容性达到100%,请大家放心使用
  • 支持的机型:支持所有ROM版本在2.2以上的机型,包括刚刚发布不久的Android N
  • 同时我们对于兼容性问题,诚求反馈:如有发现SDK不能解决的问题,请通过联系我们或者 issues进行告知

Amigo platform和Amigo的关系?有什么优势?

A : Amigo platform是在Amigo的基础上,增加了补丁版本管理、补丁安全校验、控制台灰度管理等更加全面的功能,支持市面上几乎所有机型,支持2.1~7.0 Android版本。HotFix功能上更加强大,兼容性更好,服务更加人性化。同时配合产品、运营、多模块开发、多BU协作,Amigo platform提供的绝不仅仅Hotfix这么简单。

使用HotFix有什么限制?

  • patch包中新增provider

    • 修改声明方式,authorities须以"${youPackageName}.provider"开头

      <provider
          android:name="me.ele.demo.provider.StudentProvider"
          android:authorities="${youPackageName}.provider.student" />
    • 修改调用方式

      // 1. app进程内使用时,无需做任何修改
      Cursor cursor = getContentResolver().query(Uri.parse("content://" + getPackageName() + ".provider.student?id=0"), null, null, null, null);
      // 2. 其他进程中的使用时,需要修改uri为以下形式, 其中targetPackageName为你的App的包名
      Cursor cursor = getContentResolver().query(Uri.parse("content://" + targetPackageName + ".provider/student?id=0"), null, null, null, null);
  • 不支持和Instant Run同时使用

  • Amigo 不支持 Honeycomb 3.0

    • Android 3.0 是一个满是bug的版本, & 并且Google已经关闭这个版本.
  • notification & widgetRemoteViews的自定义布局不支持修改,只支持内容修复

    任何使用在RemoteViews里面的资源id都需要进行这样的包装

     RCompat.getHostIdentifier(Context context, int id)
  • 唯一的限制就是你的想象力

可以支持多个dex修复吗?

A : Amigo SDK是针对整个APP进行修复,不只是针对某个dex,又或者某个资源,又或者某个so文件。随意添加组件activity、receiver、service也是支持的。

补丁发错了怎么办?是否有相应办法补救?

A : 补丁的发布是可以进行覆盖的,发错了也没关系。你有两种方法进行补救:

  • 添加新的补丁
  • 删除当前版本,重新添加

热修复支持多进程么?

A : 支持。

下发/覆盖patch需要重启APP生效么?

A : 这个可以在管理平台通过选择是否立即生效进行配置。

如果加固平台,会不会影响到热修复?

A : 不会影响, 遇到具体case欢迎通过联系我们交流。

HotFix与代码注入框架是否冲突?

A : 不会。