【问题标题】:Application releasing in Update/Upgrade mode with SQLite databse file update使用 SQLite 数据库文件更新以更新/升级模式发布应用程序
【发布时间】:2011-10-28 21:22:08
【问题描述】:

我开发了一个 android 应用程序,可以访问应用程序内的本地 sqlite 数据库。

我有一个关于如何升级应用程序的问题。在这种情况下,假设如果应用程序源代码发生更改或数据库数据/结构发生更改,我该如何打包这些更改?

我是否必须重新打包完整的应用程序并将其作为新的应用程序版本提供?还是我可以只将更改后的文件打包成更小的构建大小并将其推向市场?

一般来说,应用程序升级/更新过程是如何进行的?

【问题讨论】:

  • 重新包装...为什么?有人只能下载新版本...

标签: android sqlite mode


【解决方案1】:

更改数据库的 DATABASE_VERSION 并在下次启动应用程序时 数据库将被重新创建。

【讨论】:

    【解决方案2】:

    对于这两种情况,您基本上只需从 Eclipse 中导出新版本的应用程序,然后通过您的市场帐户上传新的 APK。

    应用程序版本更改由清单中的标记处理:android:versionCode。每次导出更新的 APK 时,都需要增加版本代码。 versionName 只是在市场上显示给用户的标签,你可以随意。

    <manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.package"
        android:installLocation="auto"
        android:versionCode="17"
        android:versionName="0.74">
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="12" />
        <uses-permission
            android:name="android.permission.INTERNET"></uses-permission>
        ...
    

    对于数据库,最简单的方法是子类SQLiteOpenHelper。然后,在你的子类中你可以有这样的东西:

    private class DBHelper extends SQLiteOpenHelper {
    
        private static final String DATABASE_NAME = "mydatabase.db";
        private static final int DATABASE_VERSION = 45;
    
        public DBHelper(Context context)
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
        ...
    

    SQLiteOpenHelper 处理打开数据库,并在应用程序启动时更新。在上面的示例中,数据库版本为 45。如果您将其增加,并将新的 APK 上传到市场,则会调用 onUpgrade() 方法,该方法允许您将用户的旧数据库更新到新版本。

    【讨论】:

      【解决方案3】:

      如果你扩展SQLiteOpenHelper(你应该是),它的构造函数接受一个版本参数,这是一个整数值,你应该在某个地方定义一个常量,比如DATABASE_VERSION

      覆盖onUpgrade 方法并实现升级架构和/或数据的逻辑。

      当您增加DATABASE_VERSION 常量时(例如在应用更新中),任何具有较低版本的现有安装都会触发onUpgrade 中的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        • 2011-02-08
        相关资源
        最近更新 更多