代码之家  ›  专栏  ›  技术社区  ›  Samuh

关于Android应用程序更新的问题

  •  17
  • Samuh  · 技术社区  · 14 年前

    几个问题:

    1. 升级应用程序对存储数据(即首选项和数据库)有什么影响?系统是否执行新版本的干净安装(即删除旧版本,然后安装新版本)或其他操作?

    2. 如何模拟此应用程序更新安装方案?如果我的Emulator上安装了'x'版本,并且在adb上安装了'x+1'版本,我将得到 INSTALL_FAILED_ALREADY_EXIST 错误。如果我尝试在Web服务器上托管新的apk,包管理器会将此作为更新吗?

    2 回复  |  直到 10 年前
        1
  •  31
  •   Felix    14 年前
    1. 所有数据都将保持不变(文件、首选项、数据库)。数据库是特殊的,因为您可以指定数据库版本,如果它检测到版本已更改,它将调用 onUpgrade()
    2. 正如我在1中所说,Android坚持一切。数据存储方式的任何变化都由您来处理。
    3. adb install -r /path/to/newApk.apk (注意 -r 旗,它告诉亚行 爱因斯坦)。基本上,工作流程应该如下:

    .

    adb uninstall my.package
    adb install /path/to/old.apk
    # play with app, set preferences, databases, etc.
    adb install -r /path/to/new.apk
    # watch your app crash in an impressive ball of fire
    # fix stuff
    # goto 0
    

    是的,应用程序执行 清洁的 在安装新版本之前删除应用程序。不过,正如我所说,你的应用程序 未删除。不过,你还是要小心,因为这个删除会导致一些事情:

    • 与应用程序相关的任何内容都将从系统中删除,如通过 NotificationManager AlarmManager ,等等。我不确定你可能拥有的任何小部件会发生什么(从未使用过小部件)。
        2
  •  1
  •   WarrenFaith    14 年前
    1. 你得自己照顾。寻找 onUpgrade() 方法,即。
    2. 您应该确保设置了“重新安装”选项。Adb应该比正确更新您的应用程序。