zoukankan      html  css  js  c++  java
  • Android覆盖安装及常遇到的问题

    Android 覆盖安装

    a. 覆盖安装apk文件后,shared_prefs中的数据不会丢失,数据库表中的数据也不会丢失。
    b. 升级数据库的方法

    0 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

    这个方法会在你做任何的数据库操作之前执行。就是说任何数据库操作之前都会先升级数据库,再进行操作。

    c. 安装apk时,系统pm会将当前的apk重命名,并复制到data/app/路径下,并删除之前版本的apk。

    覆盖安装引起问题的原因:

    1. 数据库表结构的变动(增加一个字段,减少一个字段,甚至是新表的建立)。

    数据库结构修改必须升级数据库版本,并对相应版本进行处理。此外,任何在发版之前修改数据库表结构的行为都是不可取的,即使是很简单的逻辑。

    2. 数据与当前版本的不匹配(数据超出上限或下限),会引发逻辑出错、数组越界等问题

    有任何数组结构的修改,无论是增加还是减小了数组,都要进行容错处理。

    另外,在覆盖安装时会发现,部分手机在覆盖安装老版本的app时,出现“INSTALL_FAILED_VERSION_DOWNGRADE”错误,这个问题仅出现在Android 4.2及以上版本,经查阅Android源码,发现在4.2版本之后加入了验证,不允许覆盖安装versioncode比当前版本低的apk。如果想使用低版本,只能先卸载再安装(这对开发者来说是非常友好的)。

    出处:http://blogs.360.cn/360qtest/2014/03/11/android覆盖安装及遇到的问题/

  • 相关阅读:
    C++笔记 谓词 1
    win7 ipv6设置(isatap)
    C++笔记
    打水印
    jquery导航滚动固定在顶部
    javascript获得属性
    tr光棒效果
    按字母查找
    js购物车
    数据采集
  • 原文地址:https://www.cnblogs.com/fajuaryzpf/p/5219418.html
Copyright © 2011-2022 走看看