WCDB:微信開源的高效、完整、易用的移動數據庫框架
WCDB是一個高效、完整、易用的移動數據庫框架,基于 SQLCipher ,支持iOS, macOS和Android。
WCDB for iOS/macOS
基本功能
- WINQ (WCDB語言集成查詢): 通過WINQ,開發者無須為了拼接SQL的字符串而寫一大坨膠水代碼。
- ORM (Object Relational Mapping): WCDB支持靈活、易用的ORM。開發者可以很便捷地定義表、索引、約束,并進行增刪改查操作。
- 多線程高并發 : WCDB支持多線程讀與讀、讀與寫并發執行,寫與寫串行執行。
- 加密 :WCDB提供基于 SQLCipher 的數據庫加密。
- 損壞修復 : WCDB內建了Repair Kit用于修復損壞的數據庫。
- 反注入 : WCDB內建了對SQL注入的保護。
- ...
入門
基本要求
- WCDB支持iOS 7、macOS 10.9以上。
- WCDB需使用Xcode 8.0以上版本進行編譯。
- 需使用Objective-C++。
安裝
- 通過Carthage安裝 :
- 先安裝 Carthage ;
- 在Cartfile中添加 github "Tencent/WCDB" ,并執行 carthage update ;
- 將 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/WCDB.h> 。
- 由于WCDB是基于Objective-C++,因此需要將引用WCDB的源文件后綴 .m 改為 .mm 。
- 通過cocoapods安裝 :
- 先安裝 Cocoapods ;
- 通過 pod repo update 更新WCDB的cocoapods版本。
- 在Podfile對應的target中,添加 pod 'WCDB ,并執行 pod install 。
- 在項目中使用CocoaPods生成的 .xcworkspace 運行工程。
- 在你的代碼文件頭引入頭文件 #import <WCDB/WCDB.h> 。
- 由于WCDB是基于Objective-C++,因此需要將引用WCDB的源文件后綴 .m 改為 .mm 。
- 通過動態庫安裝 : 動態庫與iOS 7不兼容,因此需支持iOS 7的需要通過靜態庫安裝。
- 獲取源碼。如果是通過git clone,需指定recursive參數: git submodule update --init --recursive 。
- 將 WCDB.xcodeproj 添加到你的工程中.
- 在你的項目工程配置的 Build Phases -> Target Dependencies 和 Build Phases -> Linked Binary and Libraries 中添加 WCDB.framework 。
- 在你的項目工程配置的 General -> Enbedded Binaries 中添加 WCDB.framework 。
- 在你的代碼文件頭引入頭文件 #import <WCDB/WCDB.h> 。
- 由于WCDB是基于Objective-C++,因此需要將引用WCDB的源文件后綴 .m 改為 .mm 。
- 通過靜態庫安裝:
- 獲取源碼。如果是通過git clone,需指定recursive參數: git submodule update --init --recursive 。
- 將 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/WCDB.h> 。
- 由于WCDB是基于Objective-C++,因此需要將引用WCDB的源文件后綴 .m 改為 .mm 。
使用教程
使用教程請參考 這里
相關文檔
- 文檔請參考 wiki .
- 接口請參考 API reference
WCDB for Android
基本功能
- 基于 SQLCipher 的數據庫加密
- 使用連接池實現并發讀寫
- 內建 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。之后執行下面命令即可編譯依賴項。
export ANDROID_NDK_ROOT='/path/to/ndk' ./build-depends-android.sh
編譯依賴項不是必要的,你完全可以使用預先編譯好的庫。
文檔
API 文檔請參看 這里 (英文)。
項目主頁:http://www.baiduhome.net/lib/view/home/1498475646082
本文由用戶 TerHobler 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!