WCDB 相关讨论可以加我们的QQ群WCDB 技术交流群: 190485752

WCDB iOS/macOS 群: 708134978

WCDB Android 群: 868268492

WCDB

WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。

WCDB for iOS/macOS

基本特性易用,WCDB支持一句代码即可将数据取出并组合为object。WINQ(WCDB语言集成查询):通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码。

ORM(Object Relational Mapping):WCDB支持灵活、易用的ORM。开发者可以很便捷地定义表、索引、约束,并进行增删改查操作。[database getObjectsOfClass:WCTSampleConvenient.class

fromTable:tableName

where:WCTSampleConvenient.intValue>=10

limit:20];高效,WCDB通过框架层和sqlcipher源码优化,使其更高效的表现。多线程高并发:WCDB支持多线程读与读、读与写并发执行,写与写串行执行。

批量写操作性能测试:

更多关于WCDB的性能数据,请参考benchmark。完整,WCDB覆盖了数据库相关各种场景的所需功能。加密:WCDB提供基于SQLCipher的数据库加密。

损坏修复:WCDB内建了Repair Kit用于修复损坏的数据库。

反注入:WCDB内建了对SQL注入的保护。

入门

基本要求WCDB支持iOS 7、macOS 10.9以上。

WCDB需使用Xcode 8.0以上版本进行编译。

需使用Objective-C++。

安装通过Carthage安装:在Cartfile中添加 github "Tencent/WCDB",并执行carthage update;

对于不需要 bitcode 的开发者,可以指定 —configuration WithoutBitcode,以降低二进制的包大小。将 Carthage/Build/目录下iOS或Mac的 WCDB.framework 添加到你的项目工程配置的Build Phases->Linked Binary and Libraries中。

点击你的项目工程配置的Build Phases中的+选项,在弹出菜单中选择New Run Script Phase。在创建的脚本中添加 carthage copy-frameworks ,并在Input Files中添加对应平台的路径$(SRCROOT)/Carthage/Build/iOS/WCDB.framework 或 $(SRCROOT)/Carthage/Build/Mac/WCDB.framework。

在你的代码文件头引入头文件#import 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm。通过cocoapods安装:

通过 pod repo update 更新WCDB的cocoapods版本。

在Podfile对应的target中,添加pod 'WCDB',并执行pod install —verbose。

在项目中使用CocoaPods生成的.xcworkspace运行工程。

在你的代码文件头引入头文件#import 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm。通过动态库安装:动态库与iOS 7不兼容,因此需支持iOS 7的需要通过静态库安装。

获取WCDB源码,并更新sqlcipher的submodule。cd wcdb

git submodule update —init sqlcipher

将WCDB.xcodeproj添加到你的工程中.

在你的项目工程配置的General->Enbedded Binaries中添加WCDB.framework。注意这里有两个WCDB.framework,要选择动态库那个。选完后可在Build Phases->Target Dependencies中确认,若为WCDB则正确,而WCDB iOS Static则是静态库使用的。

在你的代码文件头引入头文件#import 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm。通过静态库安装:

获取WCDB源码,并更新sqlcipher的submodule。cd wcdb

git submodule update —init sqlcipher

将WCDB.xcodeproj添加到你的工程中.

在你的项目工程配置的Build Phases->Target Dependencies中添加WCDB iOS Static.framework。

在你的项目工程配置的Build Phases->Linked Binary and Libraries中添加WCDB.framework和libz.tbd。注意,这里有两个WCDB.framework,需要添加WCDB iOS Static的target下的WCDB.framework。

在你的项目工程配置的Build Settings->Other Linker Flags中添加-all_load和-ObjC。

在你的代码文件头引入头文件#import 。

由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm。

使用教程

使用教程请参考这里

相关文档文档请参考wiki.

示例代码请参考Sample

如果你熟悉FMDB,并期望迁移到WCDB,我们提供了一份专门的迁移教程。请参考从FMDB迁移到WCDB

WCDB for Android

基本功能使用连接池实现并发读写

内建 Repair Kit 可用于修复损坏数据库

针对占用空间大小优化的数据库备份/恢复功能

日志输出重定向以及性能跟踪接口

内建用于全文搜索的 mmicu FTS3/4 分词器

入门

接入与迁移

WCDB for Android 可通过 Maven 或 AAR 包引用,API 接口与 Android SDK 非常相近,所以将已有的 App 迁移到 WCDB 是相当容易的。

详细请参看 Android 接入与迁移 与 sample-encryptdb 示例。

数据库修复

WCDB 可以使用 Repair Kit 或备份恢复来修复损坏的数据库,请参看 Android 数据库修复与 sample-repairdb 示例。

从源码编译

编译 WCDB

你可以使用预编译的依赖库(OpenSSL crypto 和 SQLCipher)来编译 WCDB for Android,使用 Gradle 或 Android Studio 皆可。cd android

./gradlew build

Android Studio 请导入 android 目录作为 Root Project。

编译 WCDB 需要安装 Android NDK r11c 或以上,并在 android/local.properties 上配置好SDK 与 NDK 路径。Android Studio 一般会帮你配置好。

编译依赖项

如果你需要自己编译 OpenSSL 等依赖项,你需要一个 Bash 环境(Windows 可以安装 Cygwin 或MSys)、target 为本机的 C 编译器(如 GCC)、Perl 5 以及 Tcl。之后执行下面命令即可编译依赖项。exportANDROID_NDK_ROOT='/path/to/ndk'

./build-depends-android.sh

编译依赖项不是必要的,你完全可以使用预先编译好的库。

文档

API 文档请参看 这里 (英文)。

Wcdb android 目录,介绍 - 《WCDB - 腾讯开源的移动数据库框架》 - 书栈网 · BookStack...相关推荐

  1. Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...

    源码分析相关面试题 Activity相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试题 与人事相关面试题现在三四月份,金三银四最好找工作时间, ...

  2. android引用ui,简介 - 如何引用 - 《XUI - Android 原生 UI 框架》 - 书栈网 · BookStack...

    在决定使用XUI前,你必须明确的一点是,此框架给出的是一整套UI的整体解决方案,如果你只是想使用其中的几个控件,那大可不必引入如此庞大的一个UI库,Github上会有更好的组件库.如果你是想拥有一套可 ...

  3. android mux协议,协议细节 - Mux.Cool - 《Project V(V2RAY)文档手册》 - 书栈网 · BookStack...

    Mux.Cool 协议 Mux.Cool 协议是一个多路复用传输协议,用于在一条已建立的数据流中传输多个各自独立的数据流. 版本 当前版本是 1 Beta. 依赖 底层协议 Mux.Cool 必须运行 ...

  4. Wcdb android 目录,微信开源组件WCDB漫谈及Demo

    ,并定义类遵循WCTTableCoding协议 - **WCDB_PROPERTY**用于在头文件中声明绑定到数据库表的字段. - **WCDB_IMPLEMENTATION**,用于在类文件中定义绑 ...

  5. Wcdb android 目录,wcdb使用笔记

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

  6. Wcdb android 目录,WCDB漫谈

    前言 移动端的数据库选型一直是一个难题,直到前段时间看到了WeMobileDev(微信前端团队)放出了第三个开源组件-WCDB WCDB(WeChat DataBase)是微信官方的移动端数据库组件, ...

  7. 腾讯开源内部跨端框架 Hippy,打磨三年,日均 PV 过亿

    12月20日,腾讯开源跨端框架 Hippy. 在腾讯内部,Hippy 已运行3年之久,跨 BG 共有 18 款线上业务正在使用 Hippy,日均 PV 过亿,且已建立一套完整生态.相较于其他跨端框架, ...

  8. android代码结构分析工具,【Android性能工具】腾讯开源工具APT(示例代码)

    做App测试时监测使用期间的cpu,内存,流量,电量等指标时,发现的企鹅很好用的工具. 备份至此,方便后期查阅 原文URL http://www.csdn.net/article/2014-04-23 ...

  9. android微信wcdb,一篇文章get微信开源移动端数据库组件WCDB的一切!

    1.前言 微信团队已于2017年06月09日正式开源了微信自用的移动端数据库组件 WCDB(WeChat Database),详见<[资讯] 微信正式开源移动端数据库组件WCDB!>. W ...

最新文章

  1. c# 值类型数据与引用类型数据
  2. 什么是PoE交换机?PoE交换机与PoE+交换机的区别!
  3. 阿里云和腾讯云全方位对比
  4. 局域网传输文件详解(转)
  5. 免费福利 Unity3D 项目资源分享链接(消消乐、斗地主、AR等)
  6. 微信PC扫码支付(五)-订单查询,关闭订单,下载对账单
  7. 第15届全国大学生知识竞赛 2022ciscn初赛 部分wp
  8. linux 查服务器序列号,Linux 查询服务器序列号命令
  9. 本地ca,以及根证书的生成,服务器证书生成,nginx https配置等
  10. 畅通工程 hdu 1232 HDU - 1863 (并查集+最小生成树)
  11. 计算机系毕业论文写什么,计算机系的毕业论文 怎么写?
  12. 三叉神经树 ( neuron )
  13. 华为mate40rs保时捷鸿蒙系统,【华为Mate40RS保时捷版评测】用匠心贯穿古今 看华为Mate40 RS背后的故事-中关村在线...
  14. 2021年豆瓣图书爬取-根据ISBN爬取图书信息
  15. python中列表嵌套字典/列表排序,字典排序,列表排序。
  16. 软考(软件设计师知识点) --多媒体基础
  17. 分布式事务解决方案——Alibaba-seata
  18. 关于浏览器主页被锁定的部分解决方案
  19. Windows Server2019 搭建CA认证服务器部署方案
  20. 【随笔】《活着》读后感

热门文章

  1. pytorch-unsqueeze用法
  2. 【算法刷题日记之本手篇】汽水瓶与查找两个字符串a,b中的最长公共子串
  3. 趋势科技2月移动客户端病毒报告
  4. linux家目录与根目录
  5. string 中英文字符
  6. python搭建虚拟环境完整步骤
  7. 基于人工智能的计算机课程教学系统设计,【智能教学系统的特点与设计方法】人工智能系统有哪些...
  8. 浏览器清空缓存操作步骤
  9. Hive建表语法及解释
  10. 单选框选中值获取以及设置某个选中