当前位置: 首页 > article >正文

通达信数据获取革新:用MOOTDX构建极简股票分析系统全攻略

通达信数据获取革新用MOOTDX构建极简股票分析系统全攻略【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx在量化投资与金融数据分析领域开发者常面临数据获取的三重困境商业API的高昂成本让人却步、免费接口的稳定性难以保障、传统工具的复杂配置令人望而生畏。MOOTDX作为一款纯Python开发的通达信数据接口封装库以其零成本接入、极简API设计和稳定的数据来源正在重新定义股票数据获取的方式。本文将通过四阶进阶结构带您从问题诊断到场景落地全面掌握这个强大工具的核心价值与实战技巧。一、问题定位股票数据获取的行业痛点与解决方案诊断数据获取的三大行业顽疾金融数据分析的第一步永远是高质量的数据获取但现实中开发者往往陷入以下困境成本陷阱商业金融数据接口年费动辄数万元对于个人开发者和小型团队而言是难以承受的负担稳定性危机免费数据接口常因政策调整或服务器负载问题频繁中断导致分析工作被迫中止技术门槛传统数据获取工具需要深入理解底层协议配置过程复杂且文档匮乏核心价值发现MOOTDX通过直接对接通达信官方服务器在保持零成本优势的同时实现了与专业数据服务相当的稳定性其Python原生API设计更是将技术门槛降至最低。MOOTDX的差异化优势解析评估维度传统解决方案MOOTDX革新方案经济成本高年费数千至数万元零成本开源免费技术门槛高需理解底层协议低Python API直观易用数据稳定性低第三方接口依赖高直连通达信官方服务器功能完整性受限按套餐区分功能全功能行情、财务、历史数据全覆盖扩展性差接口变更风险强活跃社区维护持续更新二、核心价值MOOTDX架构解析与技术优势极简架构背后的设计哲学MOOTDX采用分层设计架构将复杂的通达信数据协议封装为简洁的Python接口协议层处理与通达信服务器的底层通信负责数据编解码接口层提供统一的API入口屏蔽不同市场股票/期货/期权的差异工具层提供数据转换、缓存、异常处理等辅助功能应用层通过示例代码和场景模板降低用户使用门槛这种设计让用户无需关心底层实现细节只需专注于数据分析本身极大提升了开发效率。功能矩阵与技术特性MOOTDX提供三大核心功能模块满足不同场景的数据需求实时行情模块支持A股、期货、期权等多市场实时数据获取延迟低至秒级历史数据模块可读取本地通达信数据文件支持日线、分钟线等多维度数据财务数据模块提供上市公司财务报告、分红配送等基本面数据技术延伸MOOTDX的智能服务器选择算法会自动测试并选择最优连接节点平均可提升30%的数据获取速度这一功能通过bestip参数启用。三、渐进式实践从零开始的MOOTDX实战之旅环境构建3分钟快速安装与验证使用pip命令即可完成MOOTDX的安装推荐安装完整版以获取全部功能# 基础版安装核心功能 pip install -U mootdx # 完整版安装包含所有扩展功能 pip install -U mootdx[all]安装完成后通过版本验证确认安装成功import mootdx print(fMOOTDX版本: {mootdx.__version__}) # 应输出当前最新版本号⚠️新手注意如果安装过程中出现编译错误可能需要安装Python开发工具包在Ubuntu系统可通过sudo apt-get install python3-dev解决Windows系统则需要安装Visual C Build Tools。构建实时行情获取器上下文管理器模式使用Python的上下文管理器模式处理连接可自动管理资源释放避免连接泄漏from mootdx.quotes import Quotes # 使用上下文管理器自动处理连接生命周期 with Quotes.factory(marketstd, bestipTrue) as client: # 获取单只股票实时行情使用000002万科A作为示例 quote client.quote(symbol000002) # 提取关键行情数据 data { 代码: quote[code], 名称: quote[name], 最新价: quote[price], 涨跌幅: f{quote[percent]}%, 成交量: quote[volume], 成交额: quote[amount] } print(实时行情数据:) for key, value in data.items(): print(f{key}: {value})这段代码展示了MOOTDX的核心优势通过简洁的API设计仅需几行代码即可获取专业级的股票行情数据。上下文管理器的使用确保了连接资源的自动释放即使发生异常也不会导致连接泄漏。优化数据获取函数式编程风格实践采用函数式编程思想封装数据获取逻辑提高代码复用性和可维护性from mootdx.quotes import Quotes from functools import partial def create_quote_fetcher(marketstd, bestipTrue): 创建行情获取器函数 def fetch_quote(symbol): 获取单个股票行情 with Quotes.factory(marketmarket, bestipbestip) as client: return client.quote(symbolsymbol) return fetch_quote # 创建特定配置的行情获取器 std_quote_fetcher create_quote_fetcher(marketstd, bestipTrue) # 批量获取多只股票行情使用不同股票代码组合 symbols [000002, 000858, 002415, 601318, 600519] quotes map(std_quote_fetcher, symbols) # 格式化输出结果 for quote in quotes: print(f{quote[code]} {quote[name]}: {quote[price]}元 ({quote[percent]}%))这种函数式设计将配置与业务逻辑分离使代码更加模块化。通过map函数可以轻松实现批量数据获取为后续的数据分析和处理奠定基础。本地数据读取构建离线分析能力当网络不稳定或需要大量历史数据时本地数据读取功能尤为重要from mootdx.reader import Reader def read_local_stock_data(tdxdir, symbol, frequencydaily): 读取本地通达信数据 # 创建本地数据读取器需替换为实际通达信安装路径 reader Reader.factory(marketstd, tdxdirtdxdir) # 根据频率读取不同类型数据 if frequency daily: data reader.daily(symbolsymbol) elif frequency minute: data reader.minute(symbolsymbol) elif frequency fzline: data reader.fzline(symbolsymbol) else: raise ValueError(f不支持的频率类型: {frequency}) return data # 使用示例请替换为您的通达信实际安装路径 # data read_local_stock_data( # tdxdir/path/to/your/tdx, # symbol000002, # frequencydaily # ) # print(f获取到{len(data)}条日线数据)⚠️路径注意通达信安装路径因操作系统而异Windows通常为C:/new_tdxmacOS和Linux用户则需要通过Wine或其他兼容层运行通达信并指定相应路径。四、场景拓展MOOTDX的行业应用与最佳实践功能选型决策树选择最适合的数据获取方式面对多种数据获取方式如何选择最适合当前场景的方案以下决策树可帮助您快速判断数据实时性要求高秒级更新→ 使用在线行情接口Quotes类低日级更新→ 考虑本地数据读取Reader类网络环境稳定 → 在线接口优先不稳定/无网络 → 本地数据读取数据量需求小单只股票/少量K线→ 在线接口大多只股票/完整历史→ 本地数据读取数据类型行情数据 →Quotes或Reader财务数据 →Affair类量化回测系统模板历史数据应用MOOTDX获取的历史数据可直接用于量化策略回测import pandas as pd from mootdx.reader import Reader class SimpleBacktester: 简单量化回测系统 def __init__(self, tdxdir): self.reader Reader.factory(marketstd, tdxdirtdxdir) def get_history_data(self, symbol, days100): 获取历史数据 data self.reader.daily(symbolsymbol) return data.tail(days) # 返回最近N天数据 def simple_strategy(self, data): 简单移动平均线策略 data[MA5] data[close].rolling(window5).mean() data[MA20] data[close].rolling(window20).mean() # 生成交易信号 data[signal] 0 data.loc[data[MA5] data[MA20], signal] 1 data.loc[data[MA5] data[MA20], signal] -1 return data def backtest(self, symbol): 执行回测 data self.get_history_data(symbol) data self.simple_strategy(data) # 计算策略收益 data[return] data[close].pct_change() data[strategy_return] data[return] * data[signal].shift(1) # 计算累计收益 total_return (1 data[strategy_return]).prod() - 1 print(f策略累计收益: {total_return:.2%}) print(f基准累计收益: {data[return].sum():.2%}) return data # 使用示例 # backtester SimpleBacktester(tdxdir/path/to/your/tdx) # result backtester.backtest(symbol000002)这个模板展示了如何将MOOTDX获取的历史数据与量化策略结合通过移动平均线交叉策略实现简单的回测功能。实际应用中可根据需求扩展更复杂的策略逻辑。风险监控系统多股票实时跟踪构建一个实时监控多只股票风险指标的系统import time from mootdx.quotes import Quotes class RiskMonitor: 股票风险监控系统 def __init__(self, symbols, threshold5.0): self.symbols symbols self.threshold threshold # 涨跌幅阈值百分比 def monitor(self, interval10): 开始监控 print(f开始监控 {len(self.symbols)} 只股票阈值: ±{self.threshold}%) print(- * 60) with Quotes.factory(marketstd, bestipTrue) as client: while True: timestamp time.strftime(%Y-%m-%d %H:%M:%S) print(f\n{timestamp} 监控更新:) for symbol in self.symbols: try: quote client.quote(symbolsymbol) percent float(quote[percent]) # 风险判断 if abs(percent) self.threshold: status ⚠️ 风险预警 else: status ✅ 正常 print(f{symbol} {quote[name]}: {quote[price]}元 ({percent}%) {status}) except Exception as e: print(f{symbol} 获取数据失败: {str(e)}) time.sleep(interval) # 使用示例 # monitor RiskMonitor( # symbols[000002, 000858, 002415, 601318, 600519], # threshold3.0 # 设置3%的涨跌幅预警阈值 # ) # monitor.monitor(interval15) # 每15秒更新一次这个系统会定期获取指定股票的实时数据当涨跌幅超过设定阈值时发出预警可帮助投资者及时发现市场异常波动。财务数据分析基本面研究工具MOOTDX不仅能获取行情数据还能获取上市公司财务数据支持基本面分析from mootdx.affair import Affair def financial_data_analysis(): 财务数据分析示例 # 获取可用的财务数据文件列表 files Affair.files() print(f发现 {len(files)} 个财务数据文件) # 显示最新的5个财务数据文件 print(最新的5个财务数据文件:) for file in files[:5]: print(f- {file}) # 下载并解析最新的财务数据 if files: latest_file files[0] print(f\n下载最新财务数据: {latest_file}) # 下载文件保存到当前目录 Affair.fetch(filenamelatest_file) # 解析财务数据 data Affair.parse(downdir., filenamelatest_file) print(f解析完成获取到 {len(data)} 条财务记录) # 展示部分数据 if data: print(\n财务数据示例:) for key, value in data[0].items(): print(f{key}: {value}) if key code: # 只显示部分字段 break # 执行财务数据分析 financial_data_analysis()通过财务数据模块用户可以获取上市公司的资产负债表、利润表等关键财务指标为基本面分析提供数据支持。五、新手常见误区诊断与解决方案连接失败问题排查常见症状创建Quotes实例时抛出连接错误诊断流程检查网络连接是否正常确认是否启用了bestipTrue参数自动选择最优服务器尝试增加超时时间Quotes.factory(timeout30)检查防火墙设置确保允许Python访问网络解决方案# 增强版连接配置提高稳定性 client Quotes.factory( marketstd, bestipTrue, # 启用智能服务器选择 timeout30, # 延长超时时间 heartbeatTrue # 启用心跳保活机制 )数据解析异常处理常见症状获取数据后解析出现KeyError或格式错误诊断与解决方案def safe_quote_fetch(symbol): 安全的行情获取函数带异常处理 try: with Quotes.factory(marketstd, bestipTrue) as client: quote client.quote(symbolsymbol) # 验证必要字段是否存在 required_fields [code, name, price, percent] if not all(field in quote for field in required_fields): raise ValueError(返回数据缺少必要字段) return quote except Exception as e: print(f获取 {symbol} 数据失败: {str(e)}) return None # 使用安全获取函数 quote safe_quote_fetch(000002) if quote: # 处理数据 pass本地数据路径配置错误常见症状使用Reader类时提示文件不存在解决方案确认通达信软件已正确安装验证tdxdir路径是否正确Windows系统通常为C:/new_tdx检查通达信数据文件是否完整尤其是vipdoc目录# 验证本地数据目录 import os def validate_tdxdir(tdxdir): 验证通达信目录是否有效 required_dirs [vipdoc, T0002] for dir_name in required_dirs: path os.path.join(tdxdir, dir_name) if not os.path.exists(path): return False, f缺少必要目录: {path} return True, 目录验证通过 # 使用示例 # valid, message validate_tdxdir(/path/to/tdx) # if not valid: # print(f目录错误: {message})六、总结与进阶资源MOOTDX作为一款开源的通达信数据接口封装库以其零成本、高稳定性和易用性为股票数据分析提供了强大支持。通过本文介绍的问题定位→核心价值→渐进式实践→场景拓展四阶学习路径您已经掌握了从环境搭建到实际应用的全流程技能。进阶学习资源官方文档项目内docs目录包含完整API文档和使用说明示例代码sample目录提供各种应用场景的实际代码测试用例tests目录中的测试代码展示了各功能模块的正确使用方法工具模块mootdx/tools目录包含数据转换和下载工具持续学习建议关注版本更新定期使用pip install -U mootdx更新到最新版本获取新功能和性能优化参与社区讨论通过项目Issue系统提问和分享使用经验研究源码实现深入理解数据协议和API设计为定制化需求打下基础扩展功能模块基于MOOTDX开发自定义指标计算、数据可视化等高级功能通过MOOTDX您可以摆脱数据获取的技术束缚将更多精力投入到核心的数据分析和策略研究中。无论是量化交易、风险监控还是基本面分析MOOTDX都能成为您金融数据分析之旅的得力助手。现在就动手实践吧——安装MOOTDX获取您的第一份股票数据开启量化分析之旅【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

通达信数据获取革新:用MOOTDX构建极简股票分析系统全攻略

通达信数据获取革新:用MOOTDX构建极简股票分析系统全攻略 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化投资与金融数据分析领域,开发者常面临数据获取的三重困境&a…...

tinyECC:Arduino嵌入式平台的轻量级ECC密码库

1. tinyECC 库概述:面向 Arduino 微控制器的轻量级椭圆曲线密码学实现tinyECC 是一个专为资源受限的 Arduino 微控制器平台设计的嵌入式椭圆曲线密码学(Elliptic Curve Cryptography, ECC)库。其核心目标是在仅有几 KB RAM 和数十 KB Flash 的…...

Stable Yogi 模型 Java 开发实战:SpringBoot 微服务集成指南

Stable Yogi 模型 Java 开发实战:SpringBoot 微服务集成指南 最近在做一个智能客服项目,后端用的是 SpringBoot 微服务架构,需要集成一个图像理解模型来处理用户上传的截图。选型的时候,Stable Yogi 模型进入了我们的视野。它不仅…...

吃透Linux/C++系统编程:文件与I/O操作从入门到避坑

合集 - LLM应用实战(17) 1. LLM应用实战:当KBQA集成LLM(二) 2024-04-25 2. LLM应用实战:当KBQA集成LLM 2024-04-11 3. LLM实战:LLM微调加速神器-Unsloth LLama3 2024-05-14 4. LLM实战:LLM微调加速神器-Unsloth Qwen1.5 2024-05…...

农业图像标注效率暴跌63%?这5个Auto-Labeling技巧已获农业农村部AI应用白皮书推荐

第一章:农业图像标注效率暴跌的根源与Auto-Labeling破局逻辑农业图像标注正面临严峻效率瓶颈:单张田间作物病害图平均需人工耗时4.7分钟完成细粒度标注(含病斑轮廓、类别、严重等级三重标签),而标注错误率高达18.3%——…...

量子力学的抽象地位与c语言等价

多种量子/粒子的各种表象,就像 cpu 的微架构指令集,量子力学的状态矢量表示和密度矩阵表示就像c语言。 中间从状态矢量到具体粒子的具体表象的转换,就像是一个编译器的工作。量子力学表象与编译器架构的深刻类比这个类比非常精妙且深刻&#…...

3分钟让静态图像“活“起来:AI肖像动画技术全解析

3分钟让静态图像"活"起来:AI肖像动画技术全解析 【免费下载链接】LivePortrait Bring portraits to life! 项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait 静态图像如何突破二维平面的限制,展现动态生命力&#xff1f…...

MobaXterm远程连接:管理Baichuan-M2-32B-GPTQ-Int4服务器

MobaXterm远程连接:管理Baichuan-M2-32B-GPTQ-Int4服务器 1. 为什么选择MobaXterm来管理大模型服务器 部署Baichuan-M2-32B-GPTQ-Int4这样的医疗增强推理模型,通常需要在Linux服务器上运行vLLM或SGLang等推理引擎。这类服务对系统资源要求高&#xff0…...

市场调查大赛选题避坑指南:从获奖作品拆解5大高频雷区(附12届真题解析)

市场调查大赛选题避坑指南:从获奖作品拆解5大高频雷区(附12届真题解析) 每年市场调查大赛的参赛队伍中,有近40%的团队在选题阶段就埋下了失败的种子。这些团队往往花费数周时间完成的调查报告,在初筛阶段就被评委贴上&…...

演员-评论家网络在ADP中的应用:如何构建和训练你的第一个模型

演员-评论家网络在自适应动态规划中的实战指南 当我们需要解决复杂控制问题时,传统动态规划方法往往面临"维度灾难"的困境。演员-评论家网络(Actor-Critic Network)作为自适应动态规划(ADP)的核心架构&#…...

ACE协议实战:如何通过AxDOMAIN信号优化多核SoC的缓存一致性?

ACE协议实战:AxDOMAIN信号在多核SoC缓存一致性中的深度优化 1. 多核SoC缓存一致性的工程挑战 在现代嵌入式系统设计中,多核处理器架构已成为提升性能的主流方案。当我们把多个ARM Cortex-A系列核心集成到同一芯片时,缓存一致性管理立即成为系…...

Transformer回顾与BERT模型学习:小白程序员必备收藏指南

本文首先回顾了Transformer模型的基本结构和输入方式,包括词嵌入和位置编码。接着介绍了BERT模型架构,作为Transformer的改进版本,BERT只保留编码器部分,并详细解释了其不同版本的结构特点。文章还讨论了BERT的输入表示&#xff0…...

Agent入门指南:从概念到实战,小白也能掌握AI新范式!

本文深入浅出地介绍了AI Agent的概念、原理和应用,帮助读者理解Agent并非简单的LLM调用,而是一种系统设计范式。文章详细阐述了Agent的核心要素,包括目标、决策、工具、反馈和停止条件,并探讨了Agent与传统自动化、RPA和聊天机器人…...

24小时运行:OpenClaw+GLM-4.7-Flash的网站监控方案

24小时运行:OpenClawGLM-4.7-Flash的网站监控方案 1. 为什么需要自动化网站监控 去年我负责维护的某个技术博客突然遭遇了持续3天的数据库连接泄漏,直到用户投诉才发现问题。手动刷新网页检查状态的方式,在深夜和周末存在明显的监控盲区。这…...

BilibiliDown革新性视频下载解决方案:从需求到实践的全方位指南

BilibiliDown革新性视频下载解决方案:从需求到实践的全方位指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_…...

10xGenomics单细胞测序选3‘还是5‘?一文讲清免疫组库与基因表达分析的黄金选择

10xGenomics单细胞测序:3与5端策略在免疫组库与基因表达分析中的科学抉择 当实验室的离心机停止运转,科研人员往往面临一个关键抉择:该选择3还是5端单细胞测序?这个看似技术性的选择,实则直接影响着后续免疫组库分析的…...

基于STM32的NTC热敏电阻温度采集系统设计与实现

1. NTC热敏电阻温度采集系统概述 在工业控制、智能家居和医疗设备等领域,温度监测都是基础且关键的功能。NTC热敏电阻因其成本低、响应快、精度适中的特点,成为温度传感的常见选择。STM32系列微控制器内置高精度ADC模块,与NTC配合能快速搭建经…...

解锁B站视频资源:bilibili-parse解析工具全面应用指南

解锁B站视频资源:bilibili-parse解析工具全面应用指南 【免费下载链接】bilibili-parse bilibili Video API 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse bilibili-parse是一款基于PHP开发的Bilibili视频解析工具,为开发者提供简…...

基于SpringBoot + Vue的新农村信息平台建设(角色:企业村民村委会管理员)

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…...

明略科技公布上市后首次年报:营收14亿 经调整净利4204万

雷递网 雷建平 3月26日明略科技(股份代码:2718)今日发布截至2025年12月31日财报,财报显示,明略科技2025年营收14.26亿,较上年同期的13.81亿增长3.2%。明略科技2025年来自数据智能服务收入为12.6亿元&#x…...

避开FPGA时序分析盲区:除了Clock和Data,别忘了用Set_Data_Check给你的控制信号也上个‘闹钟’

避开FPGA时序分析盲区:控制信号的隐藏时序风险与Set_Data_Check实战 在FPGA设计的世界里,时序约束就像交通信号灯,确保数据在复杂的逻辑网络中安全有序地流动。大多数工程师对时钟和数据信号之间的时序关系了如指掌,却常常忽视了一…...

零基础也能挖洞赚钱?SRC漏洞挖掘从入门到精通,附全套工具包+学习路线!

开篇:为什么说SRC挖洞是安全新手的最佳起点? 凌晨两点,大学生张三盯着电脑屏幕突然跳出的「高危漏洞奖励到账」提示,手抖得差点打翻泡面——这是他挖到人生第一个SRC漏洞(某电商平台的越权访问漏洞)后收到…...

提升arduino开发效率:用快马平台一键生成常用工具模块代码

作为一名经常折腾Arduino的开发者,我发现在项目开发中,总有些重复性的代码需要反复编写。最近尝试用InsCode(快马)平台来生成这些常用工具模块,效率提升非常明显。今天就把我的实践心得分享给大家。 I2C设备扫描功能 在连接多个I2C设备时&…...

5个步骤快速搭建医院信息系统:终极医疗数字化解决方案

5个步骤快速搭建医院信息系统:终极医疗数字化解决方案 【免费下载链接】HIS ZainZhao/HIS: HIS 通常代表医疗信息系统(Hospital Information System),但此链接指向的具体项目信息未知,可能是某个开发者设计或维护的医院…...

深入解析OpenWrt无线初始化:mac80211.sh脚本核心功能与实战应用

1. 初识mac80211.sh:OpenWrt无线初始化的核心引擎 当你第一次刷入OpenWrt固件时,有没有好奇过路由器是如何自动创建无线网络的?这一切的秘密都藏在/lib/wifi/mac80211.sh这个脚本中。作为OpenWrt无线子系统的"大脑",这个…...

深入解析SSD的FTL:从LBA到PBA的映射机制与优化策略

1. 为什么需要FTL:SSD的"翻译官"工作原理 当你把文件保存到SSD时,操作系统只需要告诉SSD"把数据存到LBA 1234地址",完全不用关心数据实际存放在闪存芯片的哪个物理位置。这个神奇的能力全靠**FTL(闪存转换层&…...

ms-swift框架实战:从零构建高效Embedding微调流水线

1. 为什么需要定制Embedding模型? 在智能客服问答匹配这类场景中,预训练的通用Embedding模型往往表现不佳。我去年做过一个电商客服项目,直接用开源Embedding模型处理"怎么退货"这类问题时,会把"如何退款"、&…...

生物信息学新手必看:BBmap比对工具从安装到实战全流程指南

生物信息学新手必看:BBmap比对工具从安装到实战全流程指南 第一次接触生物信息学数据分析时,面对海量的测序数据往往会感到无从下手。比对工具的选择尤为关键——既要保证准确性,又要兼顾效率。BBmap作为BBTools套件中的核心工具,…...

NoFences:免费开源的Windows桌面图标分区管理工具终极指南

NoFences:免费开源的Windows桌面图标分区管理工具终极指南 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 当你的Windows桌面被各种文件、快捷方式和应用程序图标…...

效率革命:80+款Android UI模板的全场景应用指南

效率革命:80款Android UI模板的全场景应用指南 【免费下载链接】Android-ui-templates Download free android app templates free and paid. 项目地址: https://gitcode.com/gh_mirrors/an/Android-ui-templates 在移动应用开发中,界面设计往往占…...