Andoird的SQLiteOpenHelper类中有一个onUpgrade方法。帮助文档中只是说当数据库升级时该方法被触发。经过实践,解决了我一连串的疑问:1. 帮助文档里说的“数据库升级”是指什么?你开发了一个程序,当前是1.0版本。该程序用到了数据库。到1.1版本时,你在数据库的某个表中增加了一个字段。那么软件1.0版本用的数据库在软件1.1版本就要被升级了。2. 数据库升级应该注意什么?软件的1.0版本升级到1.1版本时,老的数据不能丢。那么在...
自从2013 Google I/O大会之后,笔者就将android ide开发工具从eclipse迁移到Android Studio了,android studio一直在更新完善,为了与时俱进,我们当然要将工具更新到最新版本啦!其实更新本来是很简单,只要从Android Studio Help菜单中选择Check for Update即可:但是你会收到如下提示:小伙伴们这是为什么呢?因为“伟大的墙”!!!下面介绍笔者的解决方法。1.获取自己电脑上安装的Android Studio 的Build Number如果已经安装了...
看了网上的许多关于数据库升级,字段属性的增加方面的资料,了解到: 其实数据库升级有俩个靠谱的方法,(1) db.execSQL("ALTER TABLE test ADD COLUMN age"); (2) db.beginTransaction(); db.execSQL("ALTER TABLE test RENAME TO _Test"); db.execSQL("CREATE TABLE test(id integer primary key autoincrement , PassWord VARCHAR(20) NOT NULL," + " UserName VARCHAR(32) NOT NUL...
android应用在发布后,会进行版本迭代。其中因为需求的更改,功能的扩充,可能会涉及到数据库的升级。如果只是添加表,还比较好处理,直接在public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)中新建表就OK了,但是涉及到已存在的表的结构发生变更,就比较麻烦了,特别是之前已经升级过表的结构,再次升级的时候需要考虑用户当前的版本,也就是需要在代码里对不同版本的数据库,升级到最新版本进行处理。其...
应用升级大致步骤:检测是否有更新(读取服务器config文件,比对版本号)若发现高版本则读取更新文件updateinfo.xml获取下载更新相关信息校验信息确认升级后,下载apk下载完apk后,进行MD5检验apk的完整性安装apk升级入口 private void upgrade() {//需要访问网络,避免主线程堵塞new Thread(){public void run() {if(checkUpdate()){//检查更新handler.sendEmptyMessage(20);//通知界面提示有版本更新}};}.start();}private boole...
主要部分的核心代码。(SQLiteDatabase db) {
createTable(db)List<ShopCartGoodsEntity> oldList = .().queryAllIntenerl()(oldList != && !oldList.isEmpty()) {insertMultiterm(dboldList).().deleteAll()}
}网上看到的文章都是,项目全新首次使用android sqlite加密,已经很多很完整了,调试下就可以实现。当遇到自己原有项目是sqlite未加密,进行加密去掉未加密的old数据库时,主要在onCreate方法实现。原文:http://ljian...
目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制。一、update-script脚本语法简介: 我们顺着所生成的脚本来看其中主要涉及的语法。 1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本。 2.show_progress(frac,sec):frac表示进度完成的数值,sec表示整个过程的总秒数。主要用与显示UI上的进度条...
假设要更新TableC表,建议的做法是: 1) 将TableC重命名为TableC_temp SQL语句可以这样写:ALERT TABLE TableC RENAME TO TableC_temp;2) 创建新的TableC表3) 将数据从TableC_temp中插入到TableC表中 SQL语句可以这样写:INSERT INTO TableC (Col1, Col2, Col3) SELECT (Col1, Col2, Col3) FROM TableC_temp; 经过这三步,TableC就完成了更新,同时,也保留了原来表中的数...
Android使用SQLite数据库保存数据,那数据库版本升级是怎么回事呢,这里说一下。一、软件v1.0安装v1.0,假设v1.0版本只有一个account表,这时走继承SQLiteOpenHelper的onCreate,不走onUpgrade。1、v1.0(直接安装v1.0)二、软件v2.0有2种安装软件情况:1、v1.0 --> v2.0 不走onCreate,走onUpgrade2、v2.0(直接安装v2.0) 走onCreate,不走onUpgradev1.0版本只有一个account表,软件版本升级到v2.0了,但是v...
转载:http://www.tfan.org/update-adt-and-android-sdk-in-five-minutes/ 如何快速地把已安装的 Android SDK 及 Eclipse 的 ADT 插件升级到最新版本?同时又能保证之前下载的 Android API 和扩展可用。下面我们使用三步来完成更新操作。第一步,升级 Android SDK首先到 Google Android SDK 的下载页面下载最新的 SDK,注意是 “SDK tools only”,不要下载 ADT Bundle (Bundle 里面又打包了一个 Eclipse):解压缩刚刚下载的 SDK...
增量升级概述增量升级的原理很简单,即首先将应用的旧版本Apk与新版本Apk做差分,得到更新的部分的补丁,例如旧版本的APK有20M,新版的有21M,更新的部分则可能只有1M左右,这里需要说明的是,得到的差分包大小并不是简单的相减,因为需要包含一些上下文相关的东西,使用差分升级的好处显而易见,那么你不需要下载完整的21M文件,只需要下载更新部分就可以,而更新部分的差分包很小,可以很大程度上减少流量的损失。Apk增量升级过程...
Android 更新模块 它们的定义Update写这个总结是由于在项目中碰到了Android系统兼容的BUG Android项目原本使用的是API提供的下载方法 例如以下: DownloadManager downloadManager = (DownloadManager) getSystemService(Activity.DOWNLOAD_SERVICE);DownloadManager.Request request = new Request(Uri.parse(dl));request.setTitle(getString(R.string.app_name));request.setDestinationUri(getDownloadName(getIntent().get...
Ionic 框架介绍 Ionic是一个基于Angularjs、可以使用HTML5构建混合移动应用的用户界面框架,它自称为是“本地与HTML5的结合”。该框架提供了很多基本的移动用户界面范例,例如像列表(lists)、标签页栏(tab bars)和触发开关(toggle switches)这样的简单条目。它还提供了更加复杂的可视化布局示例,例如在下面显示内容的滑出式菜单。Ionic 自动升级APP一、准备工作 1.Cordova插件: cordova plugin add https://g...
现在android开发,一般采用的是CS模式,那么apk的升级,自然而然需要有server端的支持。一般,我们将升级版本以及一个记录升级版本的配置文件(在本文中采用jsonarray格式)放在server端。当Client初始化时,如果检测到server端有更新的版本(读取server的配置文件),则将在server端的升级版本以Http的方式连接,将其下载下来,然后调用android的api进行替换升级。一、配置文件:update_version.json[{"appname":"myapp","apkname...
原文链接:http://www.orlion.ga/610/一、事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可以先使用delete()方法将Book表中的数据删除, 然后再使用insert()方法将新的数据添加到表中。我们要保证的是,删除旧数据和添加新数据的操作必须一起完成,否则就还要继续保留原来的旧数据。 Button replaceData = (Button) findViewById(R.id.re...