# ArkTS **Repository Path**: lennert/ark-ts ## Basic Information - **Project Name**: ArkTS - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-09 - **Last Updated**: 2026-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ArkTS FunctionCompare模块 该模块重构了匹配算法的核心模块,将实体类、配置类、匹配算法、数据库连接类相互独立开来,保证代码清晰且过程不复杂,大大提高了可读性和复用性,下面是对目录结构的说明 ``` ├── add_library_info 用于补充特征库的包信息,离线运行 │ └── add_library_info.py ├── config │ ├── config.py 配置文件,所有的数据库连接和输入的路径都在这里配置 │ ├── log_config.py 日志打印配置,一般可以不用改变 │ └── package-mapping.json 解决部分名称和实际包名存在不一致的映射文件 ├── entity 匹配过程的用到的实体类 │ ├── FunctionCandidate.py 函数匹配结果的实体类,方便传输数据 │ ├── __init__.py ├── extract 提取ArkTS包特征的模块 │ ├── __init__.py │ ├── extract_functions.js │ ├── getArkTsFunctionsv2.js │ ├── run_extract_arkts.py 启动模块 │ └── tools │ └── JsonName.js ├── feature_add 构建特征库的结构特征模块 │ ├── __init__.py │ ├── cluster_server.js │ ├── generate_feature.py │ └── generate_feature_core.js ├── matching 匹配的算法代码 │ ├── __init__.py │ ├── filter_by_name.py 名称模糊匹配算法 │ ├── first_stage.py 向量匹配算法 │ ├── isomorphic_stagev2.py 多线程(目前使用) │ ├── isomorphic_stagev3.py 并发(最多5个) │ ├── non_isomorphic_calculate.py 异构匹配算法 │ └── single_match.py 完整的函数匹配算法,集成了以上的匹配算法 ├── pipeline │ ├── __init__.py │ ├── batch_processor.py 批处理运行函数匹配 │ └── getLibs.py 获取库结果 ├── source 用于存放特征库的faiss向量索引文件 │ └── faiss_index │ ├── id_map.json │ ├── vector_index.index │ └── vector_index.index.meta ├──utils 工具模块 │ ├── __init__.py │ ├── calculateUtils.py 计算公式工具类,如余弦相似度和jaccard相似度等 │ └── mongoUtils.py 数据库连接工具类,快速获取配置类中的集合连接 └──versionmatch 版本对比模块 ├── __init__.py ├── get_cross_version_diff.py 获取跨连续版本之间的差异函数 ├── version_match_core.py 版本对比核心算法 ├── version_match_corev2.py └── version_match_input.py 版本比较输入 ``` ## 检测ArkTS运行步骤 > 前提:配置config下的config文件,其中的ArkTS 三方库根目录,以及对应的MongoDB的集合名称 ### 1. 解析ArkTS包,存储到数据库中 运行 **extract** 目录下的run_extract_arkts.py,提取ArkTS包函数到数据库中 ### 2.添加结构特征 运行 **featre_add** 目录下的run_feature_add.py,即可为集合中的函数添加结构特征 ### 3.添加向量特征 > 前提:按照codeToVector的README文档部署环境,并按照指引进行运行即可 ### 4.运行库检测程序 运行**pipline下的run_tpl_match.py**程序,等待一段时间即可看到result.csv结果文件(仅库结果)。 ### 5.运行版本检测程序 运行**version_match**下的run_version_match.py,等待进度条结束即可。