微信 WCDB for Android的接入

article/2025/10/9 9:55:12

接入 WCDB

Android 项目接入 WCDB,可以选择通过 Maven 接入或通过 AAR 包接入。

通过 Maven 接入

对于大部分开发者,推荐使用 Maven 接入 WCDB,在 APP 模块的 build.gradle 下添加 WCDB 依赖即可

dependencies {// 修改"1.0.0"为实际引用的版本compile 'com.tencent.wcdb:wcdb-android:1.0.0'
}

- 通过 AAR 包接入

你也可以从发布页面下载 AAR 包,然后导入到工程来接入 WCDB。在 Android Studio 选择 File -> New -> New Module... -> Import JAR/AAR Package
在 File -> Project Structure... 或编辑 APP 模块的 build.gradle 将 WCDB 加入依赖项:
dependencies {compile project(':wcdb')
}

- 选择接入的 CPU 架构

WCDB 包含 armeabi, armeabi-v7a, arm64-v8a, x86 四种架构的动态库,如果你的应用希望只接入 其中一种或几种架构,可以在 APP 模块的 build.gradle 里加入以下代码来选择要接入的架构:android {defaultConfig {ndk {// 只接入 armeabi-v7a 和 x86 架构abiFilters 'armeabi-v7a', 'x86'}}}

迁移到 WCDB

Markdown

  • WCDB Android 使用与 Android SDK SQLite 框架几乎一样的接口

  • 如果你的 APP 之前使用 Android SDK 的数据库接口,只需要将 import 里的 android.database.* 改为 com.tencent.wcdb.,以及 android.database.sqlite. 改为 com.tencent.wcdb.database.* 即可。

  • 若之前使用 SQLCipher Android Binding,也需要对应修改 import。

加密与非加密数据库差异只有打开时,打开后后续操作与 Android SDK 一致。具体请参考 WCDB API 文档。

从非加密数据库迁移到加密数据库

如果你之前使用的是非加密数据库,接入后想迁移到加密数据库并保留原来的数据,你需要使用 SQL 函数 sqlcipher_export() 进行迁移。

详情请见 sample-encryptdb 示例,它示范了如何使用 SQLiteOpenHelper 实现数据从非加密往加密迁移和 Schema 升级。

注意: WCDB 对 sqlcipher_export() 函数做了扩展,原本只接受一个参数为导出到哪个 ATTACHED DB, 现在可以接受第二个参数指定从哪个 DB 导出。因此可以反过来实现导入:

 ATTACH 'old_database' AS old;SELECT sqlcipher_export('main', 'old');   -- 从 'old' 导入到 'main'DETACH old;

从 SQLCipher Android 迁移

如果你之前使用的是 SQLCipher 数据库,希望迁移到 WCDB 库并沿用原数据库文件,需要在代码里做一点改动。

    String passphrase = "passphrase";SQLiteCipherSpec cipher = new SQLiteCipherSpec()  // 加密描述对象.setPageSize(1024)        // SQLCipher 默认 Page size 为 1024.setSQLCipherVersion(3);  // 1,2,3 分别对应 1.x, 2.x, 3.x 创建的 SQLCipher 数据库// 如以前使用过其他PRAGMA,可添加其他选项SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("path/to/database",     // DB 路径passphrase.getBytes(),  // WCDB 密码参数类型为 byte[]cipher,                 // 上面创建的加密描述对象null,                   // CursorFactorynull                    // DatabaseErrorHandler// SQLiteDatabaseHook 参数去掉了,在cipher里指定参数可达到同样目的);
  • 关键改动点为 密码转换为byte[] 以及 传入SQLiteCipherSpec描述加密方式, 加密方式必须和之前的 SQLCipher 设置一致,否则会报错误,建议先行测试再上线。

  • SQLCipher 密码与加密方式错误可能会导致 SQLite 框架认为其损坏从而触发 DatabaseErrorHandler, 默认实现会重命名或删除损坏 DB,如果此行为不是你希望的,请务必自定义 DatabaseErrorHandler。

Markdown

*注意*如果之前调用了 SQLCipher 的 SQLiteDatabase.loadLibs(…),可以将其删去,WCDB 在第一次引用时会自动加载动态库。

接入与迁移

https://github.com/Tencent/wcdb/wiki/Android

Markdown

相信自己,没有做不到的,只有想不到的

如果你觉得此文对您有所帮助,欢迎入群 QQ交流群 :232203809
微信公众号:终端研发部

Markdown

(这里 学到的不仅仅是技术)


http://chatgpt.dhexx.cn/article/aAjcJtH7.shtml

相关文章

关于WCDB Swift 的一些简易使用

wcdb 开源地址:https://github.com/Tencent/wcdb 一、wcdb介绍 引用官方说法:“WCDB Swift 是一个易用、高效、完整的移动数据库框架,它基于 SQLite 和 SQLCipher 开发。” 鹅厂出品的值得信赖。于是就打算在新的项目中使用它。 三大特性…

微信 WCDB 正式开源——高效易用的移动数据库框架

前沿介绍 腾讯开源微信数据库框架WCDB,他是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。 便捷地定义表、索引、约束,并进行增删改查操作 项目演示效果如下: 微信 即时通讯软件 微信&#x…

Wcdb android 目录,WCDB漫谈

前言 移动端的数据库选型一直是一个难题,直到前段时间看到了WeMobileDev(微信前端团队)放出了第三个开源组件-WCDB WCDB(WeChat DataBase)是微信官方的移动端数据库组件,致力于提供一个高效、易用、完整的移动端存储方案 微信团队怎么说 基于SQLCipher W…

iOS开发-关于微信WCDB的使用 WCDB嵌套模型的使用

iOS开发-关于微信WCDB的使用 WCDB嵌套模型的使用 前言开发前准备开发关于生成WCDB文件 选择new file即可找到关于嵌套模型的生成 分两步 选择new file即可找到增删改查的封装使用 总结 前言 iOS开发中有需要数据库的存储,表的增删改查等,FMDB和最近流行…

iOS开发通过微信学习WCDB(三)

通过之前的两篇文章对wcdb能够简单的使用了,这些知识储备多时,最近终于可以派上用场了,最近app有一个通讯录的新功能,实现联系人列表的排序,以及检索,刚好可以用用wcdb去实现。 联系人模型的建立 我首先建…

WCDB使用笔记

本地数据加密 由于项目涉及到一些用户隐私数据的存储,所以需要对保存在客户端本地的数据进行加密,以防止用户隐私数据在设备被root的情况下出现泄漏。目前android的本地数据存储基本分为file,sharepreference和database,所以对数…

iOS开发通过微信学习WCDB(一)

最近通过对微信ipa包解压发现微信有使用WCDB这个开源库,搜索了一下了解到WCDB(WeChat Database)是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。经过分析对比,个人感觉WC…

微信移动端数据库组件 WCDB 系列(三) — 解析 WINQ 原理

背景 高效、完整、易用是 WCDB 的基本原则。前几篇文章分享了 WCDB 的基本用法和修复工具,接下来将更深入地聊聊 WCDB 在易用性上的思考和实践。 对于各类客户端数据库,似乎都绕不开拼接字符串这一步。即便在 Realm 这样的 NoSQL 的数据库中&#xff0…

WCDB源码解析

源文链接:http://xiangwangfeng.com/2018/01/08/WCDB-源码解析 起因 最近开了个新项目,项目的主程童鞋引入了 WCDB 代替原先自制的 KeyValueStore 和 FMDB。问为何,答曰:好用,线程安全又高效。又问具体实现细节&#x…

IOS数据存储 之WCDB (二)WCDB.swift使用篇

IOS数据存储 之WCDB (二)WCDB.swift使用篇 1.WCDB.Swfit基础使用1.1 WCDB.Swfit 简介1.1.1 模型绑定1.1.2 创建数据库与表1.1.3 操作数据1.1.3.1 插入操作1.1.3.2 查找操作1.1.3.3 更新操作1.1.3.4 删除操作 1.2. 模型绑定1.2.1 Swift 模型绑定1.2.2 字段…

Android使用WCDB+Room 总结

最近项目有需要用到wcdb数据库,并且保证和IOS互通数据,在网上找很多相关资料,最后还是靠自己一点点摸索成功,现在做个总结。 一、在gradle 里加上 WCDB 相关的 room 组件 def room_version "2.3.0"// wcdb数据库和roo…

IOS数据存储 之WCDB (一)

IOS数据存储 之WCDB (一) 1. WCDB 简介1.1 使用WCDB框架3大优势1.2 WCDB 的一些基础概念1.2.1 类字段绑定(ORM)1.2.2 WINQ(WCDB语言集成查询)1.2.2.1 字段映射与运算符1.2.2.2 字段组合1.2.2.3 AllProperti…

iOS开发 数据存储之WCDB的介绍

一.介绍 WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS,macOS和Android 二.基本特性 易用,WCDB支持一句代码即可将数据取出并组合为object WINQ(WCDB语言集成查询):通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码ORM(Object Relational Ma…

开源微信小程序自助建站系统源码 含精美的多行业模板和搭建教程

分享一个微信小程序自助建站系统源码,含各行各业的小程序模板和搭建教程,可一键切换模板,自由DIY,搭建属于你自己的小程序。 特色功能一览: 11、支持创建多个小程序!(没有数量限制,后…

强大易用的开源建站工具Halo

最近无意间看到别人的博客外观非常美观,便萌生了偷师学艺的想法…所以就看到看了Halo这个开源的建站项目,其实使用起来非常简单,但是想要做一个类似的开源建站工具,谈何容易 访问官网 https://halo.run/ 使用docker部署 搜索镜像halo do…

14个免费好用的建站工具

有时候,我们想建立一个独立网站的时候,苦于自己技能不够,而迟迟没有行动,其实,我们真正的去构建一个独立网站的时候,我们并不需要多复杂的技术。我们也不一定要成为非常专业的程序员,因为现在&a…

推荐一款免费开源的建站系统 - AnqiCMS

安企内容管理系统(AnqiCMS),是一款使用 GoLang 开发的企业站内容管理系统,它部署简单,软件安全,界面优雅,小巧,执行速度飞快,使用 AnqiCMS 搭建的网站可以防止众多安全问题发生。AnqiCMS 的设计…

介绍一款开源、高性价比的在线教育建站系统

今天给大家介绍一款开源在线教育建站系统——edusoho,项目是用PHP开发,所以基本上会搭建php站点就可以完成本次的搭建。 先看看安装之后的登录界面。 去官网下载源码 笔者下载企培开源版:edusoho-ct-21.4.5.zip 系统说明 1.系统&#xff1…

国内好用的五款开源建站系统

推荐5款优秀的开源建站系统,都有免费版本,有需要可以去试试。蝉知 蝉知系统是一款开源的的企业营销自助建站系统。它专为企业营销设计,伪静态网址、关键词、语义化结构,内置流量统计。 蝉知功能全面,文章发布、会员管理、论坛评论、产品展示等,并内置商城系统,商品、订…

免费开源的建站程序大全,不会编程也可以自助搭建网站了哦

想建网站又不会编程的小伙伴有福啦,本期推荐一些开源的cms建站程序,不需要写后端的任何逻辑代码,轻轻松松就可以建立自己的网站了,当然,要想网站有自己的个性,模版还是需要自己写的,只需要会简单…