OpenHarmony其他工具类—leveldb [GN编译]

news2024/11/17 9:42:35

简介

leveldb是一种快速键值存储库,提供从字符串键到字符串值的有序映射。

下载安装

直接在OpenHarmony-SIG仓中搜索leveldb并下载。

使用说明

以OpenHarmony 3.1 Beta的rk3568版本为例

  1. 库代码存放路径:./third_party/leveldb

  2. 修改添加依赖的编译脚本,路径:/developtools/bytrace_standard/ohos.build

   {
     "subsystem": "developtools",
     "parts": {
       "bytrace_standard": {
         "module_list": [
           "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
           "//developtools/bytrace_standard/bin:bytrace_target",
           "//developtools/bytrace_standard/bin:bytrace.cfg",
           "//developtools/bytrace_standard/interfaces/kits/js/napi:bytrace",
           "//third_party/leveldb:leveldb"
           
         ],
         "inner_kits": [
           {
             "type": "so",
             "name": "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
             "header": {
               "header_files": [
                 "bytrace.h"
               ],
               "header_base": "//developtools/bytrace_standard/interfaces/innerkits/native/include"
             }
           }
         ],
          "test_list": [
           "//developtools/bytrace_standard/bin/test:unittest"
         ]
       }
     }
   }
  1. 用命令 ./build.sh --product-name rk3568 --ccache 编译

  2. 测试文件编译

在 developtools/hiperf/BUILD.gn 中的 group(“hiperf_all”) 添加leveldb 的UT测试程序入口: deps += [ “//third_party/leveldb/test:leveldbtest”, ]

然后在编译时指定 --build-target hiperf_all参数:

./build.sh --product-name rk3568–ccache --build-target hiperf_all

编译生成的UT测试程序在 \out\rk3568\tests\unittest\developtools\hiperf\ 目录下。 将以下UT测试程序推送到开发板上依次执行即可。 ./arena_test ./autocompact_test ./bloom_test ./c_test ./cache_test ./coding_test ./corruption_test ./crc32c_test ./db_bench ./db_test ./dbformat_test ./env_posix_test ./env_test ./fault_injection_test ./filename_test ./filter_block_test ./hash_test ./issue178_test ./issue200_test ./issue320_test ./log_test ./logging_test ./memenv_test ./no_destructor_test ./recovery_test ./skiplist_test ./status_test ./table_test ./version_edit_test ./version_set_test ./write_batch_test

接口说明

  1. 打开一个名为 name 的数据库 Open(const Options& options, const std::string& name, DB** dbptr)
  2. 将 <key, value> 对写入数据库, 成功返回 OK, 失败返回错误状态 Put(const WriteOptions& options, const Slice& key, const Slice& value)
  3. 从数据删除指定键为 key 的键值对 Delete(const WriteOptions& options, const Slice& key)
  4. 对数据库进行批量更新写操作 Write(const WriteOptions& options, WriteBatch* updates)
  5. 查询键为 key 的数据项, 如果存在则将对应的 value 地址存储到第二个参数中 Get(const ReadOptions& options, const Slice& key, std::string* value)
  6. 返回基于堆内存的迭代器, 可以用该迭代器遍历整个数据库的内容. NewIterator(const ReadOptions& options)
  7. 返回当前 DB 状态的一个快照 GetSnapshot()
  8. 释放一个之前获取的快照, 释放后, 调用者不能再使用该快照了 ReleaseSnapshot(const Snapshot* snapshot)
  9. 导出自身状态相关的信息 GetProperty(const Slice& property, std::string* value)
  10. 将 key 范围 [*begin,*end] 对应的底层存储压紧 CompactRange(const Slice* begin, const Slice* end)

约束与限制

在下述版本验证通过:

DevEco Studio 版本:3.1 Beta1(3.1.0.200),SDK:API9 Beta5(3.2.10.6)

目录结构

|---- leveldb
|     |---- cmake           #cmake的相关文件
|     |---- db              #主要机制的实现,包括版本管理,compact,业务读写等功能机制实现
|     |---- doc             #文档
|     |---- helpers
|           |---- memenv    #简单完全内存的文件系统,提供操作目录文件接口
|     |---- include 
|           |---- leveldb   #头文件,外部工程使用leveldb时引用的头文件
|     |---- issues          #测试问题
|     |---- test            #单元测试用例
|     |---- third_party     #三方库代码
|     |---- util            #通用功能实现
|     |---- README.md       #安装使用方法

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【嵌入式DIY实例】-指纹锁

DIY指纹锁 文章目录 DIY指纹锁1、硬件准备1.1 R307指纹传感器模介绍2、硬件接线原理图3、代码实现在这个项目中,我们将使用 Arduino 构建一个指纹门锁安全系统。 该系统可用于我们的家庭、办公室等提供安全保障。 我们还可以用它来打开门,只需将手指放在门锁上即可。 安全是许…

【双曲几何】圆盘上的三角形概念

目录 一、说明二、对偶三角形概念2.1 反演关系2.2 对偶关系2.3 找出三角形的对偶三角形 三、正交三角形概念3.1 通过对偶三角形&#xff0c;找到垂心3.2 正交三角形的概念3.3 中心射影点的概念 四、后记 一、说明 本文对双曲空间的三角形进行分析&#xff0c;本篇首先给出&am…

GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis

GRAF: Generative Radiance Fieldsfor 3D-Aware Image Synthesis&#xff08;基于产生辐射场的三维图像合成&#xff09; 思维导图&#xff1a;https://blog.csdn.net/weixin_53765004/article/details/137944206?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3…

电商技术揭秘三十:知识产权保护浅析

电商技术揭秘相关系列文章&#xff08;上&#xff09; 相关系列文章&#xff08;中&#xff09; 电商技术揭秘二十&#xff1a;能化供应链管理 电商技术揭秘二十一:智能仓储与物流优化(上) 电商技术揭秘二十二:智能仓储与物流优化(下) 电商技术揭秘二十三&#xff1a;智能…

【深度学习】wandb模型训练可视化工具使用方法

【深度学习】wandb模型训练可视化工具使用方法 wandb简介功能介绍登陆注册以及API keysproject和runsproject和runs的关系 wandb的配置实验跟踪版本管理Case可视化分析可视化自动调参&#xff08;wandb.sweep&#xff09;配置wandb.sweep1.配置 sweep_config2.初始化 sweep con…

机器学习周报第35周SE-LSTM

文章目录 week35 SE-LSTM摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 Savitsky-Golay 滤波器3.2 模型结构——SE-LSTM 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 训练参数4.3.2 数据集4.3.3 实验设置4.3.4 实验结果 5. python环境下基于scipy实现…

【Godot4自学手册】第三十九节利用shader(着色器)给游戏添加一层雾气效果

今天&#xff0c;主要是利用shader给游戏给地宫场景添加一层雾气效果&#xff0c;增加一下气氛&#xff0c;先看一下效果&#xff1a; 一、新建ParallaxBackground根节点 新建场景&#xff0c;根节点选择ParallaxBackground&#xff0c;命名为Fog&#xff0c;然后将该场景保…

Docker安装教程,什么系统都有

下载Docker 如果你的系统是图形界面的&#xff0c;比如windows、mac、ubuntu等&#xff0c;到 Docker 官网下载 Docker Desktop。 官网链接: https://www.docker.com/products/docker-desktop/ 根据你的系统选择对应的安装包&#xff0c;然后下载&#xff0c;是不是特别简单&a…

代码随想录算法训练营DAY27|C++回溯算法Part.3|39.组合总和、40.组合总和II、组合问题小总结、131.分割回文串

文章目录 39.组合总和思路伪代码实现剪枝优化CPP代码普通版本剪枝版本 40.组合总和II思路伪代码CPP代码不采用used数组的去重方法 组合问题小总结131.分割回文串思路伪代码CPP代码优化方法 39.组合总和 力扣题目链接 文章讲解&#xff1a;39.组合总和 视频讲解&#xff1a;Leet…

Vmware ---快捷键

Vi 文件名.c xrandr 查看分辨率 xrandr -s 分辨率 调你自己想要的分辨率 ctr shift 放大字体 ctr - 缩小字体 ctr alt t 打开控制台 cd caoshupei 进入曹树培文件夹 cd .. 退回上层文件夹 ls 列出生成的文件 ls -a 显示所有文件&#xff0c;包含隐藏的文件和文件…

【AIGC】文本与音频生成引领行业革新

AIGC技术崛起 一、AIGC技术概述二、文本生成&#xff1a;结构化与创作型并进三、实例与代码解析四、音频生成&#xff1a;语音合成技术大放异彩五、结语 在科技的浪潮中&#xff0c;人工智能与大数据的结合不断推动着时代的进步。其中&#xff0c;AIGC&#xff08;Artificial I…

天软因子数据系列课堂回顾——“委托订单:流动性因子”

高频因子库4月更新&#xff0c;新增5张表单&#xff0c;51个因子。目前&#xff0c;高频因子数量扩容到628个&#xff0c;涵盖了从2000年开始的全A市场。本次“天软因子数据系列课堂”在线分享的即是最新发布因子列表之一的流动性因子&#xff0c;剖析微观角度下因子的底层逻辑…

[BT]BUUCTF刷题第19天(4.19)

第19天&#xff08;共3题&#xff09; Web [BSidesCF 2019]Futurella 这道题显示内容是外星语&#xff0c;但是F12后可以在源代码中直接看到flag&#xff0c;猜测前端通过一定的转换规则将字母换成了对应的外星符号 [SUCTF 2019]Pythonginx 打开网站显示了Flask的源代码&…

PSA Group EDI 需求分析

PSA集团&#xff08;以下简称PSA&#xff09;中文名为标致雪铁龙集团&#xff0c;是一家法国私营汽车制造公司&#xff0c;致力于为全球消费者提供独具特色的汽车体验和自由愉悦的出行方案&#xff0c;旗下拥有标致、雪铁龙、DS、欧宝、沃克斯豪尔五大汽车品牌。 汽车制造企业对…

启动 UE4编辑器报 加载 Plugin 失败

启动 UE4编辑器报 加载 Plugin 失败&#xff0c;报如下错误&#xff1a; Plugin ‘SteamVR’ failer to load because module ‘SteamVR’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project. …

kubebuilder(1)开发环境搭建

开发一个k8s operator,当然可以在官方原生的controller-runtime 项目上从头构建&#xff0c;但是比较复杂。现在一般基于operator脚手架进行开发。目前最流行的的脚手架是Kubebuilder 或 OperatorSDK。Kubebuilder 或 OperatorSDK都是对controller-runtime 项目进行了上层的封装…

Python 中整洁的并行输出

原文&#xff1a;https://bernsteinbear.com/blog/python-parallel-output/ 代码&#xff1a;https://gist.github.com/tekknolagi/4bee494a6e4483e4d849559ba53d067b Python 并行输出 使用进程和锁并行输出多个任务的状态。 注&#xff1a;以下代码在linux下可用&#xff0c…

【LLM 论文】Self-Consistency — 一种在 LLM 中提升 CoT 表现的解码策略

论文&#xff1a;Self-Consistency Improves Chain of Thought Reasoning in Language Models ⭐⭐⭐⭐⭐ ICLR 2023, Google Research 文章目录 论文速读 论文速读 本工作提出了一种解码策略&#xff1a;self-consistency&#xff0c;并可以用于 CoT prompting 中。 该策略提…

VScode配置launch+tasks[自己备用]

VScode配置launchtasks[自己备用]&#xff0c;配置文件详解 launch.json 字段 name &#xff1a;启动配置的名称&#xff0c;也就是显示在调试配置下拉菜单中的名字&#xff0c;如果添加了多个配置可以用此作为区分 字段 program &#xff1a;可执行文件完整路径。 ① 由于 C…

3分钟看懂Microchip 32位MCU CAN模块的配置

文章目录 CAN模块系统框图Microchip MCC Harmony下CAN模块配置选项CAN模块工作模式CAN模块中断模式CAN工作速率Bit Timing Calculation配置CAN 接收的配置CAN 发送的配置CAN 过滤器工作流程说明CAN 过滤器的配置 CAN模块系统框图 CAN的英文全称&#xff1a;Control Area Networ…