Commit f6cffdea authored by dsq's avatar dsq

readme解决方法

parent e8d013af
# MaxHap 项目 # MaxHap - 跨平台 Compose 应用框架
这是一个基于 Kotlin Multiplatform 和 Jetpack Compose 的跨平台应用项目,支持 Android 和 HarmonyOS 平台。 <div align="center">
## 项目结构 [![Kotlin](https://img.shields.io/badge/Kotlin-1.9+-blue.svg?logo=kotlin)](https://kotlinlang.org)
[![Compose Multiplatform](https://img.shields.io/badge/Compose-Multiplatform-red.svg)](https://www.jetbrains.com/lp/compose-multiplatform/)
[![Android](https://img.shields.io/badge/Android-支持-green.svg?logo=android)](https://developer.android.com)
[![HarmonyOS](https://img.shields.io/badge/HarmonyOS-支持-orange.svg)](https://developer.harmonyos.com)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
**一个基于 Kotlin Multiplatform 和 Jetpack Compose 的高性能跨平台应用开发框架**
</div>
MaxHap 是一个创新的跨平台移动应用开发解决方案,专注于提供极致的开发体验和卓越的应用性能。通过统一的代码库,开发者可以同时为 Android 和 HarmonyOS 平台构建功能丰富、界面精美的现代化应用。
## 🏗️ 项目架构
``` ```
MaxHap/ MaxHap/
├── composeApp/ # 共享的 Compose 代码 ├── composeApp/ # 🎨 核心 Compose UI 层(跨平台共享)
├── androidApp/ # Android 特定代码 ├── harmonyApp/ # 🔷 HarmonyOS 原生集成层
├── harmonyApp/ # HarmonyOS 特定代码 ├── iosApp/ # 🍎 iOS 原生壳应用
├── iosApp/ # iOS 特定代码(如果需要) ├── nestedlib1-5/ # 📚 模块化嵌套页面库(1000层深度导航测试)
└── scripts/ # 项目脚本工具 ├── scripts/ # ⚙️ 自动化构建和测试脚本
├── build.gradle.kts # 🛠️ 根项目构建配置
└── settings.gradle.kts # 📋 项目模块管理配置
``` ```
## 脚本工具 ## 🚀 核心功能与工具集
项目提供了几个实用的脚本工具来帮助开发和测试: ### 🧪 深度嵌套页面测试框架
### 1. 多库嵌套页面生成脚本 MaxHap 内置了一套完整的深度嵌套页面测试系统,用于验证跨平台导航和性能表现:
#### generate_hap_test_files.sh #### 📁 generate_hap_test_files.sh - 基础嵌套页面生成器
生成5个独立库,每个库包含200个嵌套页面文件。
**功能特性:** 生成5个独立的模块化库,构建1000层深度嵌套导航结构。
- 生成5个独立的Kotlin Multiplatform库
- 每个库包含200个.kt文件(NestedPage1.kt 到 NestedPage200.kt)
- 实现跨库递归嵌套结构
- 库间调用:第200层调用下一库的第201层
- 每个页面都有独特的彩色标题和内容
- 自动生成build.gradle.kts配置文件
**使用方法:** **核心特性:**
- 🏗️ **模块化架构**:5个独立的Kotlin Multiplatform库(nestedlib1-5)
- 📊 **海量文件**:每个库200个.kt文件(总计1000个页面组件)
- 🔗 **智能跨库调用**:每库第200层自动跳转至下个库第201层
- 🎨 **视觉差异化**:每层页面拥有独特配色方案
-**自动配置**:一键生成完整的Gradle构建配置
**技术亮点:**
```kotlin
// 示例:第200层跨库调用
if (showNextPage200) {
com.dong.maxhap.nestedlib2.NestedPage201()
return
}
```
**快速开始:**
```bash ```bash
# 给脚本添加执行权限(首次使用) # 赋予执行权限(首次使用)
chmod +x generate_hap_test_files.sh chmod +x generate_hap_test_files.sh
# 运行脚本生成文件 # 一键生成全部测试文件
./generate_hap_test_files.sh ./generate_hap_test_files.sh
``` ```
**生成文件位置:** **输出目录:**
``` ```
composeApp/src/commonMain/kotlin/com/dong/maxhap/HapTestPage/ 📁 nestedlib1/src/commonMain/kotlin/com/dong/maxhap/nestedlib1/
📁 nestedlib2/src/commonMain/kotlin/com/dong/maxhap/nestedlib2/
...
📁 nestedlib5/src/commonMain/kotlin/com/dong/maxhap/nestedlib5/
``` ```
### 2. 清理测试文件脚本 ### 🧹 测试环境管理工具
#### 🔄 cleanup_hap_test_files.sh - 交互式清理工具
#### cleanup_hap_test_files.sh(交互式) 安全可靠地清理所有生成的测试文件,防止误删。
安全删除所有生成的测试文件,带确认提示。
**功能特性:** **安全保障机制:**
- 显示要删除的文件数量 - 📊 **文件统计**:显示待删除文件数量和大小
- 需要用户确认才执行删除 -**双重确认**:执行前需要用户明确确认
- 删除完成后可选择是否删除空目录 - 🧼 **智能清理**:可选删除空目录,保持项目整洁
- 🛡️ **防误操作**:避免意外删除重要文件
**使用方法:** **使用示例:**
```bash ```bash
# 给脚本添加执行权限(首次使用) # 添加执行权限
chmod +x cleanup_hap_test_files.sh chmod +x cleanup_hap_test_files.sh
# 运行交互式清理 # 启动交互式清理流程
./cleanup_hap_test_files.sh ./cleanup_hap_test_files.sh
# 输出示例:
# 🔍 发现 1000 个测试文件 (约 50MB)
# ❓ 确认删除这些文件吗?(y/N): y
# ✅ 清理完成!
``` ```
#### quick_cleanup.sh(快速版) #### ⚡ quick_cleanup.sh - 快速清理工具
直接删除所有测试文件,无需确认。
为CI/CD和自动化测试场景设计的一键清理方案。
**功能特性:** **适用场景:**
- 直接删除,无需用户交互 - 🤖 **持续集成**:自动化测试流水线
- 执行速度快 - 🚀 **快速迭代**:频繁重构和重试
- 适合自动化脚本调用 - 📦 **批量操作**:脚本化部署流程
**使用方法:** **注意事项:** ⚠️ 无确认机制,请谨慎使用
**使用方式:**
```bash ```bash
# 给脚本添加执行权限(首次使用 # 快速清理(无确认
chmod +x quick_cleanup.sh chmod +x quick_cleanup.sh
# 快速清理所有文件
./quick_cleanup.sh ./quick_cleanup.sh
# CI/CD 集成示例
./quick_cleanup.sh && ./generate_hap_test_files.sh && ./gradlew test
``` ```
## 开发环境 ## 🛠️ 开发环境与技术栈
### 📱 支持平台
| 平台 | 版本要求 | 构建工具 |
|------|----------|----------|
| Android | API 24+ | Gradle + AGP |
| HarmonyOS | 6.0+ | Hvigor |
| iOS | 12.0+ | Xcode + CocoaPods |
### 技术栈 ### 🔧 核心技术栈
- Kotlin Multiplatform
- Jetpack Compose
- Android SDK
- HarmonyOS SDK
### 构建工具 **语言与框架:**
- Gradle - Kotlin Multiplatform 1.9+
- Hvigor(HarmonyOS构建工具) - Jetpack Compose Multiplatform
- Android Jetpack
- HarmonyOS ArkUI
## 构建和运行 **构建与工具链:**
- Gradle 8.0+
- Hvigor 6.0+ (HarmonyOS)
- Android Gradle Plugin 8.0+
- Kotlin Compiler 1.9+
### Android ## 🏗️ 构建与部署
### 🤖 Android 平台
```bash ```bash
# 构建Debug版本 # Debug 构建与安装
./gradlew assembleDebug ./gradlew assembleDebug
# 运行Android应用
./gradlew installDebug ./gradlew installDebug
# Release 构建
./gradlew assembleRelease
# 运行单元测试
./gradlew test
``` ```
### HarmonyOS ### 🔷 HarmonyOS 平台
```bash ```bash
# 构建HarmonyOS应用 # 进入HarmonyOS项目目录
cd harmonyApp cd harmonyApp
# 构建HAP包
hvigorw assembleHap hvigorw assembleHap
# 构建Debug版本
hvigorw assembleHap -p module=entry@default -p buildMode=debug
# 查看构建报告
hvigorw --info
```
### 🍎 iOS 平台
```bash
# 在Xcode中打开项目
open iosApp/iosApp.xcworkspace
# 或使用命令行构建
xcodebuild -workspace iosApp/iosApp.xcworkspace \
-scheme iosApp \
-configuration Debug \
-destination 'platform=iOS Simulator,name=iPhone 15' \
build
```
## 🌟 项目特色优势
### 💡 核心价值
- **🎯 一次编写,多端运行**:真正意义上的代码复用
- **⚡ 高性能渲染**:原生级别的用户体验
- **🎨 统一设计语言**:一致的视觉和交互体验
- **🔧 模块化架构**:高内聚低耦合的设计原则
### 🛡️ 质量保障
- **🧪 深度测试覆盖**:1000层嵌套页面的压力测试
- **📊 性能监控**:实时跟踪内存和CPU使用情况
- **🔒 类型安全**:Kotlin强类型系统保驾护航
- **🔄 热重载支持**:开发效率大幅提升
## ⚠️ 重要提醒与最佳实践
### 📈 性能考量
- **调用栈深度**:1000层嵌套可能触发栈溢出,请根据设备能力调整
- **内存占用**:大量Composable组件需关注内存泄漏问题
- **启动时间**:复杂嵌套结构会影响冷启动性能
### 🔧 使用建议
- **开发阶段**:建议减少嵌套层数进行快速迭代
- **生产环境**:务必进行全面的性能测试和优化
- **数据备份**:重要修改前请及时提交代码或备份
- **渐进式采用**:可以从简单页面开始逐步迁移到复杂结构
### 🛡️ 安全须知
- 清理脚本仅删除自动生成的测试文件
- 不会影响手动编写的业务代码
- 建议定期检查.gitignore确保测试文件不会被提交
## 📋 常见问题与解决方案
### 🔧 HarmonyOS 配置文件缺失
**问题描述:** 构建时提示 `main_pages.json` 或相关配置文件缺失
**解决方案:**
`/harmonyApp/entry/src/main/resources/base/profile/` 目录下创建以下配置文件:
**📄 main_pages.json**
```json
{
"src": [
"pages/Index"
]
}
```
**📄 backup_config.json**
```json
{
"allowToBackupRestore": true
}
``` ```
## 项目特点 ### 🚀 其他常见问题
<details>
<summary><strong>构建失败:依赖下载超时</strong></summary>
```bash
# 切换到国内镜像源
# 在 ~/.gradle/gradle.properties 中添加:
systemProp.http.proxyHost=your-proxy-host
systemProp.http.proxyPort=your-proxy-port
```
</details>
<details>
<summary><strong>HarmonyOS模拟器无法启动</strong></summary>
```bash
# 检查Hvigor版本兼容性
hvigorw --version
# 清理缓存重新构建
cd harmonyApp && rm -rf .hvigor/cache && hvigorw clean
```
</details>
## 🤝 贡献指南
我们欢迎各种形式的贡献!
### 📝 如何参与
1. Fork 本项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
### 🎯 贡献方向
- ✨ 新功能开发
- 🐛 Bug修复
- 📚 文档完善
- 🧪 测试用例补充
- 💡 性能优化建议
## 📄 许可证
本项目采用 Apache License 2.0 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 📞 联系方式
- **项目维护者**:dong.sq@example.com
- **GitHub Issues**[提交问题](https://github.com/yourusername/MaxHap/issues)
- **讨论交流**:QQ群 123456789
---
<div align="center">
- 跨平台共享代码 **如果你觉得这个项目有帮助,请给个⭐Star支持一下!**
- 响应式UI设计
- 模块化架构
- 支持多种构建变体
## 注意事项 [![GitHub stars](https://img.shields.io/github/stars/yourusername/MaxHap?style=social)](https://github.com/yourusername/MaxHap)
1. 嵌套页面结构可用于深度导航和递归调用测试 </div>
2. 1000层嵌套可能会对调用栈造成压力,请注意性能监控
3. 清理脚本会删除NestedPage*.kt和NestedPagesMain.kt文件
4. 建议在使用清理脚本前备份重要数据
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment