自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(242)
  • 资源 (4)
  • 收藏
  • 关注

原创 HarmonyOS运动开发:深度解析文件预览的正确姿势

摘要: 本文探讨了HarmonyOS开发中文件预览功能的核心实现要点。针对临时URI权限问题,重点解析了fileShare.persistPermission方法进行权限持久化的必要性,并强调需在配置文件中声明ohos.permission.FILE_ACCESS_PERSIST权限。文章详细介绍了通过文件扩展名获取MIME类型的方法,并提供了完整的预览流程代码,包括文件存在性检查、权限处理、窗口管理等关键步骤。开发者需注意预览窗口的重复打开问题,通过hasDisplayed和closePreview实现有

2025-06-12 17:46:42 285

原创 HarmonyOS运动开发:打造便捷的静态快捷菜单

本文介绍了鸿蒙系统(HarmonyOS)在运动类应用开发中的静态快捷菜单功能实现方法。静态快捷菜单允许用户从桌面直接跳转到应用特定页面,如查看成绩、赛事信息或开始运动,有效提升用户体验。文章详细解析了开发步骤:1)通过创建shortcuts_config.json配置文件定义菜单项;2)在abilities配置中添加元数据引用;3)在EntryAbility中处理点击事件并实现页面跳转。该功能通过简化操作路径,显著提高了运动应用的便捷性,为开发者提供了优化用户体验的有效方案。

2025-06-12 10:27:30 106

原创 HarmonyOS运动开发:如何选择并上传运动记录

运动记录上传功能允许用户将其他应用(如 Keep)的运动数据导入到我们的应用中进行分析和管理。此外,通过上传功能,用户可以轻松备份和同步他们的运动记录,无论何时何地都能查看自己的运动历史。在运动类应用中,能够快速导入和分析其他应用的运动记录是一个极具吸引力的功能。本文将结合鸿蒙(HarmonyOS)开发实战经验,深入解析如何实现一个运动记录选择与上传功能,让运动数据的管理更加高效。文件上传功能是将用户选择的文件上传到服务器进行进一步处理。组件展示文件选择的状态,用户点击时触发文件选择逻辑。

2025-06-11 09:03:17 162

原创 HarmonyOS运动开发:打造你的专属运动节拍器

本文介绍了基于鸿蒙系统开发运动节拍器的关键技术方案。采用SoundPool实现短促音效播放,确保节拍精确性;通过定时器控制节拍频率,配合视觉闪烁提示形成视听同步反馈;设计了包含BPM调节滑块、大号节拍显示的运动专用UI界面。文章还提出优化方向:根据运动步频动态调整节拍、支持多音效选择、增强视觉动画效果等。该方案充分利用鸿蒙媒体服务能力,为运动场景提供了精准的节奏控制工具。

2025-06-09 14:56:46 491

原创 HarmonyOS运动开发:如何用mpchart绘制运动配速图表

摘要: 本文介绍了如何在鸿蒙(HarmonyOS)运动类应用中使用mpchart库实现运动配速数据的可视化。mpchart作为功能强大的图表库,支持多种图表类型和高性能渲染。文章详细讲解了初始化配置(包括坐标轴、图例、限制线等设置)、数据填充(通过LineDataSet生成折线数据)以及样式展示(渐变色填充等优化)。开发者可通过这些步骤将运动数据(如配速、时间)转化为直观的折线图,提升用户体验。代码示例展示了从数据处理到图表渲染的完整流程,为鸿蒙应用的运动数据可视化提供了实用解决方案。

2025-06-06 17:43:40 588

原创 HarmonyOS运动语音开发:如何让运动开始时的语音播报更温暖

本文介绍了如何在鸿蒙系统中利用Core Speech Kit实现运动应用的语音播报功能。通过初始化TTS引擎、配置语音参数和设置回调监听,开发者可以轻松实现运动倒计时和播报功能。文章详细解析了创建引擎、语音播报API调用等关键代码,并提供了参数调优建议(如调整语速、音量)和异常处理方案,使语音播报更自然流畅。该技术方案能有效提升运动类应用的用户体验,让运动过程更加生动有趣。

2025-06-06 16:02:57 736

原创 HarmonyOS运动开发:精准估算室内运动的距离、速度与步幅

摘要:本文探讨室内运动场景中如何利用鸿蒙系统(HarmonyOS)的加速度传感器实现精准数据估算。针对GPS信号缺失问题,提出通过加速度传感器监测三轴数据来估算步幅、距离和速度。文章详细解析了核心代码实现,包括传感器权限申请、数据监听机制以及结合用户身高的动态步幅计算方法。关键算法通过判断加速度变化区分运动状态,并引入重力加速度阈值(9.8±0.5m/s²)过滤静止状态。该方案为开发无GPS环境下的运动追踪应用提供了有效技术路径,具有实际应用价值。(148字)

2025-06-03 16:10:41 605

原创 鸿蒙运动开发实战:打造 Keep 式轨迹播放效果

本文介绍了在鸿蒙系统中实现类似Keep运动轨迹播放效果的关键技术。通过拆解核心功能,包括动态轨迹播放和地图交互两大模块,详细讲解了使用定时器和插值动画实现平滑轨迹效果的代码实现。重点展示了如何通过Marker标记动态位置、使用Polyline绘制彩色轨迹线,以及计算地图旋转角度来增强运动轨迹的可视化效果。该方案通过100ms间隔更新轨迹点和10ms微调动画的协同机制,成功模拟出流畅的运动轨迹播放体验,为鸿蒙系统下的运动类应用开发提供了实用参考。

2025-05-27 17:44:19 195

原创 HarmonyOS运动开发:如何绘制运动速度轨迹

本文介绍了在鸿蒙系统中实现运动速度轨迹可视化的方法,重点解析了两个核心工具类:PathGradientTool和PathSmoothTool。PathGradientTool通过将速度映射到颜色区间(红色到青色),实现速度变化的直观展示;PathSmoothTool则负责轨迹优化,包含去噪、卡尔曼滤波和抽稀三个步骤,确保轨迹平滑精确。这两个工具类配合使用,可高效绘制出既美观又能反映运动状态的速度轨迹,为户外运动应用提供重要的数据可视化支持。

2025-05-26 14:21:03 566

原创 鸿蒙运动开发:计算户外运动步频与步幅,与地图路线绘制

本文详细介绍了如何在鸿蒙系统中通过步数传感器采集运动数据,并计算步频和步幅,最终实现运动轨迹的实时展示。首先,步频和步幅是衡量运动效率和强度的关键指标,合理控制它们有助于优化运动表现并预防损伤。接着,文章讲解了如何利用鸿蒙系统的步数传感器进行数据采集,包括权限申请、传感器初始化及步数数据的实时监听。最后,通过步数数据,结合时间差和步数差,计算步频和步

2025-05-22 14:53:25 1040

原创 HarmonyOS运动开发:户外运动中计算卡路里

本文详细介绍了在鸿蒙系统中实现户外运动卡路里计算的方法。首先,通过定义运动类型和MET值来量化运动强度,并基于科学研究和实验数据确保准确性。接着,利用卡路里计算公式,结合距离、海拔变化、心率等因素,精准计算能量消耗。数据采集方面,通过气压传感器和GPS获取海拔变化和运动轨迹,确保数据的实时性和准确性。文章还强调了户外运动卡路里计算的特殊性,指出其相较于室内运动的优势。最后,展望了未来优化算法的可能性,如引入更精准的心率数据和考虑环境因素。

2025-05-22 09:12:59 674

原创 HarmonyOS运动开发:如何集成百度地图SDK、运动跟随与运动公里数记录

本文将详细介绍如何在 HarmonyOS 应用中集成百度地图 SDK,实现运动跟随以及运动公里数的记录。通过这些步骤,开发者可以轻松实现一个功能强大的运动应用,为用户提供实时的运动数据和地图跟随功能。本文详细介绍了如何在 HarmonyOS 应用中集成百度地图 SDK,实现运动跟随以及运动公里数的记录。在运动应用中,记录用户的运动轨迹并计算运动的总距离是核心功能之一。为了实现这一功能,我们需要设计一个数据模型来记录运动轨迹点,并通过这些点计算总距离。为了使用百度地图的功能,我们需要进行初始化操作。

2025-05-07 09:06:01 555

原创 HarmonyOS运动开发:如何监听用户运动步数数据

本文将深入探讨如何在 HarmonyOS 应用中实现步数监听功能,同时分享一些开发过程中的经验和技巧,帮助你更好地理解和实现这一功能。在运动过程中,用户可能需要暂停和恢复运动。为了处理这种情况,我们需要记录暂停和恢复时的步数,并在恢复时计算暂停期间的步数增量。传感器返回的是累计步数,因此在处理暂停和恢复时,需要特别注意数据的准确性。通过这种方式,我们可以在恢复时准确计算出暂停期间的步数增量,并从总步数中扣除这部分步数。方法,我们可以将初始步数设置为当前设备的总步数,并清空所有暂停记录,从而实现步数的重置。

2025-04-29 09:02:49 683

原创 HarmonyOS NEXT开发实战:实现高效下拉刷新与上拉加载组件(二)刷新核心逻辑与空页面集成

在上一篇文章中,我们深入探讨了如何在HarmonyOS中实现一个功能完备的空页面组件。现在,我们将进入下拉刷新和上拉加载功能的核心逻辑实现。这不仅仅是技术实现,更是对用户体验的深刻理解。本文将详细介绍如何将空页面与下拉刷新、上拉加载逻辑相结合,打造一个既高效又用户友好的交互体验。通过本文,我们不仅学习了如何在HarmonyOS中实现下拉刷新和上拉加载的核心逻辑,还了解了如何将这些逻辑与空页面组件相结合,以提供更加丰富和流畅的用户体验。

2024-10-21 12:45:55 755

原创 HarmonyOS NEXT开发实战:打造高效上拉刷新与下拉加载组件(一)空页面的设计与实现

在鸿蒙开发的世界中,用户体验至关重要。我在网络上搜寻了一番,发现现有的上拉刷新和下拉加载组件要么功能不全,要么不够优雅。因此,我决定自己动手,打造一套既美观又实用的组件。本系列文章将深入解析如何使用鸿蒙系统组件封装出优秀的上拉刷新和下拉加载控件。今天,我们将从空页面的开发开始,探索如何在鸿蒙OS中实现这一功能。通过本文,我们不仅学习了如何在鸿蒙OS中实现一个功能完备的空页面组件,还了解了如何通过资源替换和外部函数调用来增强组件的灵活性和实用性。

2024-10-21 12:44:12 556

原创 鸿蒙OS开发秘籍:打造优雅的登录状态管理系统

在鸿蒙OS开发过程中,随着应用规模的扩大,登录状态管理逐渐成为系统设计中的一个挑战。一个清晰、高效的登录状态管理系统不仅可以简化开发流程,还能提升用户体验。本文将分享一种优雅的登录状态管理设计方案,帮助开发者轻松应对复杂系统中的登录状态控制。通过本文的分享,我们学习了如何在鸿蒙OS中设计和实现一个优雅的登录状态管理系统。从认证事件的设计到认证状态的管理,再到具体的认证接口实现,每一步都是为了简化开发流程,提高系统的健壮性和可维护性。希望本文能够为鸿蒙OS的开发者提供实用的参考和启发。

2024-09-10 13:56:17 375

原创 鸿蒙OS模块化开发实战:独立路由与解耦策略

在现代软件开发中,模块化设计是提高项目可维护性和可扩展性的关键。鸿蒙OS以其先进的架构设计,为开发者提供了强大的模块化开发工具。本文将深入探讨如何在鸿蒙OS中实现模块的独立路由配置,以降低模块间的耦合度,实现单模块的独立运行和开发。一个清晰的架构设计是模块化开发的基石。- baselibrary (底层公共框架库)- 包含项目中所有共用的基础功能和工具类。- commons (业务公用框架库)- uicomponents (公用页面,组件库)- 存放所有可复用的UI组件和页面模板。

2024-09-10 13:55:31 440

原创 鸿蒙OS高级技巧:打造个性化动态Swiper效果

在鸿蒙OS的广阔天地中,开发者们有机会创造出令人惊叹的用户体验。最近,我着手设计一款具有独特滑动效果的Swiper组件,它在滑动时能够迅速进入视野,同时巧妙地将旧的cell隐藏到视线之外。本文将分享如何利用鸿蒙的Swiper组件,实现这一引人入胜的动态效果。为了实现平滑的动画效果,我们定义了三次贝塞尔曲线函数和线性函数。这些函数将用于计算cell在滑动过程中的尺寸、位置和层级变化。// 计算三次贝塞尔曲线的值// 计算线性插值的结果。

2024-09-05 14:04:47 952

原创 鸿蒙OS创新实践:动态声控话筒开发指南

在鸿蒙OS的生态中,开发者们不断探索和创新,以期为用户带来更丰富的交互体验。最近,我萌生了一个想法:制作一个能够随着声音动态变化的话筒组件。尽管网络上缺乏现成的参考案例,但我决定亲自动手,将这一创意变为现实。本文将深入解析这一开发过程,分享我的实战经验和技术细节。通过本文的详细解析,我们不仅实现了一个动态声控话筒组件,还深入了解了鸿蒙OS中的绘图API和动态效果实现方法。希望这篇文章能够为其他开发者提供灵感和指导,共同推动鸿蒙生态的创新与发展。

2024-09-05 10:07:24 847

原创 鸿蒙实战开发:网络层的艺术——优雅封装与搭建指南(下)

在前两篇文章中,我们深入探讨了网络层的封装和优化技巧。本文将带您走进网络层的实战应用,从架构设计到具体实现,一步步指导您如何使用我们精心构建的网络框架。本文详细介绍了如何使用我们编写的网络框架,从架构设计到具体实现,每一步都体现了对高效、可维护代码的追求。希望这些知识能够帮助您在鸿蒙开发中更加得心应手,构建出更加健壮和用户友好的应用。

2024-06-18 14:22:34 745

原创 鸿蒙实战开发:网络层的艺术——优雅封装与搭建指南(中)

在鸿蒙开发的广袤天地中,网络层的搭建与封装无疑是构建高效、稳定应用的基石。继上篇的探索之后,本文将继续深入网络层的优化之旅,揭秘如何通过类型转换器、请求查询附加器以及丰富的常量参数,将网络层的构建艺术推向一个新的高度。在网络请求的世界里,数据格式的转换至关重要。我们通过定义接口,实现了对请求与响应数据类型的灵活转换。通过定义一系列的常量,我们为网络请求的错误处理提供了统一的接口。这些常量不仅包括了各种网络错误的场景,还涵盖了HTTP状态码的含义,为开发者提供了清晰的指导。

2024-06-17 18:37:52 976

原创 鸿蒙实战开发:网络层的艺术——优雅封装与搭建指南(上)

在鸿蒙的广袤开发世界中,网络层作为信息交换的桥梁,其重要性不言而喻。今天,我将带领大家一同探索如何以艺术般的手法,优雅地封装鸿蒙官方的网络库,为我们的应用搭建一个高效、灵活的网络层。

2024-05-21 13:55:51 1489

原创 鸿蒙开发实战:揭秘页面与项目生命周期,实现精准监控

在鸿蒙应用开发中,每一个页面和组件都承载着特定的生命周期。这些生命周期阶段,如同生命的轨迹,记录着页面从诞生到消亡的每一个重要时刻。深入理解和监控这些生命周期,不仅能提升应用性能,还能帮助我们更好地把握用户体验。

2024-05-16 16:34:03 936

原创 鸿蒙开发实战:轻松配置多环境目录,实现高效应用部署

在鸿蒙应用的开发过程中,经常需要针对不同的环境(如开发环境、生产环境)配置不同的参数和资源。本文将深度解析如何在鸿蒙中灵活配置多环境目录,分享实战经验,让你的应用部署更加高效便捷。

2024-05-11 13:39:40 971

原创 鸿蒙开发实战:灵活定制编译选项,打造高效应用

在鸿蒙开发的广阔领域中,灵活定制编译选项是每位开发者不可或缺的一项技能。这项技能不仅影响着应用的性能表现,更直接关联到应用在不同场景下的稳定性和用户体验。在本篇文章中,我们将深入探讨鸿蒙开发中如何巧妙地定制编译选项,并分享一些实用的实战经验和专业技巧。

2024-05-08 16:30:09 927

原创 鸿蒙开发实战:智能日志定位与高效调试技巧

在鸿蒙系统的开发过程中,日志定位是一个关键的调试步骤。想象一下,如果你能够轻松地在繁杂的代码中快速定位到日志产生的位置,那将会极大地提高你的开发效率。今天,我将分享一套代码,它能帮助你实现这一目标。

2024-05-08 15:32:36 624

原创 鸿蒙开发实战:基于API 11深度解析网络管理技巧与实战应用

这些功能的实现将确保我们的网络管理类能够实时、准确地掌握网络状态,并根据状态变化做出相应的处理,从而提升应用的稳定性和用户体验。网络状态的变化,如从Wi-Fi切换到移动数据,或从有网络状态变为无网络状态,都需要应用做出相应的调整。首先,我们需要理解网络状态变化的几种主要类型:从无网络到有网络、从有网络到无网络、以及从一种网络类型切换到另一种网络类型(如从Wi-Fi切换到蜂窝数据)。首先,我们定义了网络连接状态变化时的回调函数类型,以便在网络状态变化时能够灵活地执行相应的处理逻辑。1、获取网络状态信息。

2024-04-29 10:26:18 1212

原创 鸿蒙开发实战:鸿蒙应用开发中的页面管理工具类详解

通过掌握这一工具类的核心属性和方法,开发者能够轻松应对各种页面管理挑战,为用户带来更加优质、个性化的界面体验。在鸿蒙应用开发的征程中,如何高效地管理页面布局与显示,以满足用户对于沉浸式体验、个性化StatusBar颜色等界面特性的需求,一直是开发者们关注的焦点。为此,我特别设计了一款实用的“页面管理工具类”,它具备强大的功能,能帮助开发者轻松应对各种页面管理挑战。在初始化过程中,工具类会自动获取主窗口对象、设置全屏开发状态,并计算顶部和底部安全区域的高度,为后续的页面布局与管理提供基础数据。

2024-04-28 10:55:48 1167 1

原创 使用百度飞桨EasyDL实现AI文章自动分类

如上几步就可以让你快速拥有一个自己的AI助手,还不快来动动你的小手么。

2022-08-09 15:53:35 1046

原创 跟我学企业级flutter项目:简化框架demo参考

最近很多人在问我,没有一个不错的demo,不会如何做单工程模式,如何封装网络请求,如何去做网络持久化。那么今天我将demo分享出来。现阶段还无法把我构建的flutter快速开发框架开源出来。暂时用简化demo来展示。...

2022-07-01 11:07:40 662 1

原创 flutter简单优秀的开源dialog使用free_dialog

今天我来介绍一款简单,易用的dialog,该dialog比较简洁,可以适应很多app(主要没有其他动画及以外的图片等,黑白风格可以适配多种样式的app)。如果你的app急需一款不错的dialog,并且你懒得开发,那么用这款就对了。......

2022-06-10 16:57:09 780

原创 跟我学企业级flutter项目:如何重新定制cached_network_image的缓存管理与Dio网络请求

flutter中需要展示网络图片时候,不建议使用flutter原本Image.network(),建议最好还是采用cached_network_image这个三方库。那么我今天就按照它来展开说明,我再做企业级项目时如何重新定制cached_network_image。由于我的项目网络请求采用Dio库,所以我希望我的图片库也采用Dio来网络请求,也是为了方便请求日志打印(在做APM监控时候可以看到网络请求状态,方便定位问题)。准备好mime_converter类,由于cached_network_image中

2022-06-01 11:09:45 1285

原创 跟我学企业级flutter项目:如何将你的项目简单并且快速屏幕自适应

你的flutter在小屏幕手机上出现文字丢失了么?你的flutter应用在小屏幕手机上排版出错了么?你的flutter应用在大屏幕手机上布局错乱了么?你在用flutter_screenutil做屏幕自适应么?今天我来给大家介绍一款简单不侵入代码的自适应。如果你有如下需求:1. 旧的flutter想快速屏幕适应各种手机2. 页面代码中不想增加关于适配屏幕的代码

2022-05-16 16:20:52 529 2

转载 深入浅出 Flutter Framework 之 PipelineOwner

OverviewPipelineOwner在 Rendering Pipeline 中起到重要作用:随着 UI 的变化而不断收集『 Dirty Render Objects 』 随之驱动 Rendering Pipeline 刷新 UI简单讲,PipelineOwner是『RenderObject Tree』与『RendererBinding』间的桥梁,在两者间起到沟通协调的作用。关系如上图:RendererBinding创建并持有PipelineOwner实例,Code1-第8

2022-05-10 16:07:11 342

转载 深入浅出 Flutter Framework 之 PaintingContext

Overview『 Widget 』—『 Element 』—『 RenderObject 』可称之为 Flutter Framework『三剑客』,其中 Widget、Element 都已介绍过,而 RenderObject 在这三者中属于最核心、最复杂的,涉及 Layout、Paint 等核心流程。 为了更好、更流畅地去理解 RenderObject,在正式介绍之前,需要做些准备工作,本文介绍的 PaintingContext 在 RenderObject 的绘制流程上扮演了重要角色。『Pain

2022-05-10 14:44:48 434

转载 深入浅出 Flutter Framework 之 Layer

Overview前面的文章中我们介绍过在 Flutter build、layout、render 过程中会生成 3 棵树:Element Tree RenderObject Tree Layer Tree可以说 Layer Tree 是 Flutter Framework 最终的输出产物,之后的流程就进入到 Flutter Engine 了。如上图:在build过程中,由 Element Tree 生成 RenderObject Tree (在 深入浅出 Flutter Frame

2022-05-10 14:32:46 568

转载 深入浅出 Flutter Framework 之 BuildOwner

OverviewBuildOwner在 Element 状态管理上起到重要作用:在 UI 更新过程中跟踪、管理需要 rebuild 的 Element (「dirty elements」); 在有「dirty elements」时,及时通知引擎,以便在下一帧安排上对「dirty elements」的 rebuild,从而去刷新 UI; 管理处于 "inactive" 状态的 Element。这是我们遇到的第一个 Owner,后面还有PipeOwner。整棵「Element Tree」共

2022-05-10 14:23:49 300

原创 跟我学flutter:细细品Widget(五)Element

Widget是描述一个UI元素的配置数据,Element才真正代表屏幕显示元素

2022-05-09 16:35:43 385

原创 跟我学flutter:细细品Widget(四)Widget 渲染过程 与 RenderObjectWidget

前言StatelessWidget 和 StatefulWidget 只是用来组装控件的容器,并不负责组件最后的布局和绘制。在 Flutter 中,布局和绘制工作实际上是在 Widget 的另一个子类 RenderObjectWidget 内完成的。RenderObjectWidget为RenderObjectElement提供配置信息。RenderObjectElement包装了RenderObject,RenderObject为应用程序提供真正的渲染。源码abstract class Rend

2022-05-05 15:48:29 1326 1

原创 跟我学flutter:细细品Widget(三)ProxyWidget,InheritedWidget

前言ProxyWidget作为抽象基类本身没有任何功能,但他有两个实现类ParentDataWidget & InheritedElement源码abstract class ProxyWidget extends Widget { const ProxyWidget({ Key? key, required this.child }) : super(key: key); final Widget child;}ParentDataWidgetParentData

2022-04-27 17:57:08 560

Mysql数据库文档生成工具

给大家介绍一款数据库文档生成工具 目前只支持mysql 主要是生成docx的 客户有些时候需要数据库文档,为了方便,于是我就写了这个工具, 通过数据库读取相关表数据,达到输出所有注释到文档中,大大提高了工作效率

2016-02-16

tomcat实现session共享

如何实现服务器集群session共享,redis用来tomcat共享。

2019-04-05

android通过用户打包,分享apk可以知道某个用户分享的

android通过用户打包,分享apk可以知道某个用户分享的,目前很多公司通过发送一个分享链接来分享软件,分享链接里包含某个分享用户的信息,只要新用户在html中注册这个自己的信息就可以,给分享用户一个福利,如果用我开发的这个jar包,则直接在apk里就能获取谁分享的。减少html页面制作。 文章地址http://blog.csdn.net/s297165331/article/details/78424010

2017-11-02

去除PPS广告

一键去除PPS广告,方便快捷,简单实用,方便宅男,宅女的居家看电影。

2013-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除