# HarmoryClub2301 **Repository Path**: yaotainxue/harmory-club2301 ## Basic Information - **Project Name**: HarmoryClub2301 - **Description**: HarmoryClub2301 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2025-08-14 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一.架构分层 https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-ide # 二.路由框架:跨模块通信 ### 代码地址:https://gitee.com/harmonyos_samples/navigation-router.git ### navigation基础使用:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-navigation-navigation # 三.common模块封装 # 四.mvvm架构/网络封装 ## 网络封装:retrofit+httpclient:日志拦截器、token拦截器、请求头拦截器、sign签名拦截器 ## mvvm:Page-->viewModel-->Repository--->DataSource(远程+本地)---》model # 五.签名:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing ## 1.自动签名:需要真机 ## 2.手动签名: - (1)密钥:格式为.p12,包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,公钥和私钥对用于数字签名和验证。 - (2)证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。 - (3)数字证书:格式为.cer,由华为AppGallery Connect颁发。 - (4)Profile文件:格式为.p7b,包含HarmonyOS应用/元服务的包名、数字证书信息、描述应用/元服务允许申请的证书权限列表,以及允许应用/元服务调试的设备列表(如果应用/元服务类型为Release类型,则设备列表为空)等内容,每个应用/元服务包中均必须包含一个Profile文件。 # 六,ForEach和LazyForEach ## 1.键值生成函数:将id作为键,防止组件的重复创建降低性能 ## 2.LazyForEach长列表优化:https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-best-practices-long-list ## 3.For和LazyForEach对比 ForEach: (1)加载全部数据 (2)创建全部组件+挂载全部组件到根树 (3)按需渲染组件 (4)滑动:新组件直接渲染 LazyForEach: (1)按需加载数据 (2)按需创建组件+按需挂载组件 (3)按需渲染组件 (4)滑动:新组件加载数据+创建组件+挂载组件+渲染组件 对比结果:显示时间LazyForEach快,但是滑动上不如ForEach 如何解决?设置cachedCount LazyForEach:设置cachedCount4(屏幕个数/2) (1)按需+8加载数据 (2)按需+8创建组件+按需+8挂载组件 (3)按需渲染组件 (4)滑动:渲染缓存的组件 ## 4.LazyForEach其他优化 组件复用:减少组件的创建和销毁,减少创建组件时间 布局优化:减少层级嵌套,防止过度渲染绘制,减少渲染组件时间 # 七。列表 ## 1.上拉下拉:PullToRefresh ## 2.统一状态组件骨架屏框架 数据加载中:骨架屏或加载中 数据加载成功:正常显示数据 数据加载失败:网络原因 点击重试 数据成功但是空数据:空数据 # 八。数据库DataOrm:https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fdataorm # 九.防抖动:搜索框-->实时发起网络请求搜索建议---->展示数据 happy用户快速输入,未优化发起5次网络请求,每次网络请求返回数据展示数据, 优化0.5s用户未输入内容才发起网络请求 # 十。视频播放 ## 1.video 不推荐使用,扩展差 avplayer+XComponent:视频,生命周期重要 ## 2.在线视频卡顿优化:https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-online-video-playback-lags-practice (1)调整缓冲区 (2)调整码率:解码的速度,码率越高,下载要求越高,带宽越高,若下载速度跟不上码率就会出现卡顿 mp4和flv只包含一种码率。hls、dash自适应流媒体,支持多种码率,可以动态调整 ## 3.视频功能完善:https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-video-playback-development-practice (1)视频播放暂停进度条...... (2)窗口:横竖屏切换+小窗播放 (3)亮度和音量调节 (4)播放控制中心 (5)多音频打断:先暂停后恢复/先降低音量后恢复/停止后不恢复/并发播放(默认) (6)播放设备切换:插拔耳机 # 十一。定位和地图服务 ## 1.定位获得当前位置:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/location-kit ## 2.周边搜索、关键字搜索等功能实现:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/map-kit-guide # 十二.图库管理:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/medialibrary-kit # 十三。权限 ## 1.开放权限(系统授予):只需要module.json5声明即可 ## 2.开放权限(用户授予):在module.json5声明+代码中动态获取权限 ## 3.受限权限:module.json5声明+代码中动态获取权限+AGC平台创建profile证书授权权限ACL # 业务模块 ## 1.闪屏页--->广告页----》引导页----》主页面 ### (1)判断用户之前是否同意过隐私协议对话框 ### (2)广告页:服务器下发的数据 #### 三方sdk:穿山甲、快手联盟、FireBase国外sdk,创建广告位(开屏广告、激励广告、信息流广告recyclerview中插入) #### 服务器接口:内部广告(跳转到app中某个商品详情页面)+外部广告(使用web加载链接) ### (3)引导页:下次打开不执行引导页 ### (4)主页面:判断版本是否需要升级]() ## 2.登录模块 ### (1)一键登录:极光 ### (2)验证码登录 ### (3)账号密码登录 ### (4)微信、qq、微博等三方登录