在 DAY1 搭建好环境的基础上,今天我们将完成从“本地开发”到“云端托管”的闭环。

  • 资产上云:掌握 AtomGit 仓库配置与 SSH 安全连接。

  • 规范建项:基于 DevEco Studio 创建标准的跨平台工程。

  • 交付闭环:完成多设备运行验证并提交规范代码。


一、 AtomGit 远程仓库准备

1. 仓库初始化

访问 AtomGit 官网,新建项目时建议遵循以下开源规范:

  • 项目可见性:必须设为 公开 (Public),方便导师与社区 Review。

  • 初始化模板

    • .gitignore:选择 HarmonyOSAndroid(后续我们会手动合并)。

    • License:推荐选择 Apache-2.0MIT

2. SSH 密钥配置(告别频繁输密码)

在终端执行:

Bash

# 生成 Ed25519 密钥(比 RSA 更安全、更短)
ssh-keygen -t ed25519 -C "your_email@example.com"

💡 贴士:将 ~/.ssh/id_ed25519.pub 中的内容完整复制到 AtomGit “个人设置” -> “SSH 公钥”中。

验证命令:ssh -T git@atomgit.com


二、 本地工程创建与配置

1. 仓库克隆

Bash

git clone https://atomgit.com/your_username/your_project.git
cd your_project

2. DevEco Studio 创建工程

  • 模板选择Application -> Empty Ability

  • 关键配置

    • Save Location:请指向你刚才 git clone 下来的本地文件夹。

    • Bundle Name:建议使用反向域名格式(如 com.example.myharmonyapp)。

3. 精细化 .gitignore 配置 (重要)

为了防止将体积庞大的构建产物推送到云端,请确保 .gitignore 包含以下项:

Plaintext

# IDE 配置文件
.ohos/
.preview/
build/
node_modules/
oh_modules/

# Flutter 相关
.dart_tool/
.packages

三、 多设备运行验证

在提交代码前,必须确保工程在以下至少一种环境中通过:

  1. 远程模拟器:DevEco Studio -> Device Manager 启动。

  2. 真机调试:需完成 自动化签名 (Auto Signing)

    • 路径:File -> Project Structure -> Signing Configs -> 勾选 Support HarmonyOS 并登录华为账号。


四、 代码提交与规范 (Git Flow)

执行以下命令时,请注意 Commit Message 的规范性:

Bash

# 1. 查看状态,确保没有不该提交的中间文件
git status

# 2. 暂存所有修改
git add .

# 3. 规范化提交
# 格式建议:<type>(<scope>): <subject>
git commit -m "feat(day2): 完成多终端工程初始化与运行验证"

# 4. 推送至主分支
git push origin main

⚠️ 常见报错处理

如果推送失败提示 rejected ... fetch first,说明远程仓库有 README 或 License 在本地不存在。

解决方法git pull origin main --rebase 然后再 push。


五、 任务清单检查 (Checklist)

✅ 仓库 README.md 是否包含项目简介?

✅ 代码是否已成功推送至 AtomGit?

✅ 运行截图/日志(run_log.txt)是否已存入仓库?

✅ 在新目录下 git clone 你的项目,DevEco Studio 能否直接打开运行?

太棒了!看来你已经准备好把这次训练营的成果推向“专业化”了。

为了让你在提交作业或展示项目时更具竞争力,我为你准备了两个配套的“神助手”工具:一个是 Markdown 源代码,另一个是自动生成运行日志的脚本。


1. README.md 源代码 (可直接复制)

你可以直接在项目根目录新建一个 README.md,把下面的内容粘贴进去。

Markdown

# 🚀 Flutter OpenHarmony 实战项目

![Flutter Version](https://img.shields.io/badge/Flutter-3.22.0--oh--dev-blue?logo=flutter)
![HarmonyOS](https://img.shields.io/badge/OpenHarmony-API%2012-orange?logo=huawei)
![Build](https://img.shields.io/badge/Build-Passing-brightgreen)

## 📝 项目简介
本项目是 **【鸿蒙跨平台训练营】** DAY 2 的实战作业。通过本项目,我成功完成了基于 Flutter 的鸿蒙环境适配,并打通了从本地代码编写到 AtomGit 仓库托管的全流程。



---

## 🛠️ 环境配置
| 工具 | 版本 | 说明 |
| :--- | :--- | :--- |
| **Flutter SDK** | oh-3.22.0-dev | 鸿蒙专用分支 |
| **DevEco Studio** | 5.0 Release | 核心开发工具 |
| **Java** | JDK 17 | 必须版本 |
| **Node.js** | v18.14.1 | 编译依赖 |

---

## 📂 快速运行
1. **获取代码**
   ```bash
   git clone [https://atomgit.com/](https://atomgit.com/)[你的用户名]/[你的项目名].git
  1. 安装依赖

    Bash

    flutter pub get
    
  2. 运行项目

    Bash

    # 确保已通过 hdc 找到设备
    flutter run
    

🖼️ 运行截图

提示:请将截图放入工程根目录的 screenshots 文件夹下。

运行效果展示
<img src="screenshots/app_run.png" width="300" />

📄 验证日志 (run_log.txt)

本项目已通过多端验证,具体构建信息请参考仓库中的 run_log.txt


🤝 致谢

感谢社区提供的 Flutter for OpenHarmony 开源套件!


---

### 2. 自动化生成 `run_log.txt` 的小脚本
在训练营任务中,通常要求提交运行日志。你可以创建一个名为 `gen_log.py` 的脚本,运行它来自动抓取当前环境信息,这会显得你的项目非常自动化且专业。

```python
import subprocess
import os
from datetime import datetime

def generate_log():
    log_content = f"=== Flutter OpenHarmony 运行验证日志 ===\n"
    log_content += f"生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n"
    
    commands = {
        "Flutter 版本": "flutter --version",
        "环境检测": "flutter doctor",
        "已连接设备": "hdc list targets"
    }
    
    for title, cmd in commands.items():
        log_content += f"--- {title} ---\n"
        try:
            result = subprocess.check_output(cmd, shell=True).decode('utf-8')
            log_content += result + "\n"
        except:
            log_content += "执行失败,请检查环境配置。\n\n"
            
    with open("run_log.txt", "w", encoding="utf-8") as f:
        f.write(log_content)
    print("✅ run_log.txt 已成功生成!")

if __name__ == "__main__":
    generate_log()

💡 最后的进阶建议:

  • 提交规范:每次 git commit 时,尽量使用 feat: (新功能), fix: (修复), docs: (文档更新) 这种前缀。

  • 分支管理:即便只有你一个人,也可以尝试创建一个 dev 分支开发,完成后再合并到 main,这会完美展示你的 Git 功底。


Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐