從零開始開發HarmonyOS應用并上架

開發環境搭建(1-2天)

  1. 硬件準備

操作系統:Windows 10 64位 或 macOS 10.13+

內存:8GB以上(推薦16GB)

硬盤:至少10GB可用空間

  1. 軟件安裝

下載 DevEco Studio 3.1+(官網:https://developer.harmonyos.com/cn/develop/deveco-studio)

  1. 安裝時勾選:
    HarmonyOS SDK
    Node.js(自動集成)
    Ohpm(HarmonyOS包管理器)

  2. 環境驗證

# 檢查Node.js版本
node -v  # 需≥14.19.1

檢查ohpm版本

ohpm -v # 需≥1.0.0
配置鏡像源(加速依賴下載)

修改ohpm/ohpmrc文件:

復制
registry=https://repo.harmonyos.com/ohpm/
二、項目創建與開發(7-30天)
新建項目

選擇模板:Empty Ability + JS/ArkTS(推薦ArkTS)

最小API版本:建議≥API 7(對應HarmonyOS 3.0)

核心目錄結構

復制
├── entry # 主模塊
│ ├── src/main
│ │ ├── ets # ArkTS代碼
│ │ ├── resources # 資源文件
│ │ └── config.json # 應用配置
關鍵開發要點

UI開發:使用ArkUI聲明式語法

typescript
復制
@Entry
@Component
struct Index {
@State message: string = ‘Hello HarmonyOS’

build() {
Column() {
Text(this.message)
.fontSize(30)
Button(‘Click Me’)
.onClick(() => {
this.message = ‘Button Clicked!’
})
}
.width(‘100%’)
.height(‘100%’)
}
}
功能開發:

使用@ohos開頭的系統API(如網絡、傳感器)

通過import router from '@ohos.router’實現頁面跳轉

調試技巧

使用HiLog輸出日志:

typescript
復制
import hilog from ‘@ohos.hilog’;
hilog.info(0x0000, ‘testTag’, ‘Test Log Message’);
真機調試:開啟開發者模式(設置→關于手機→連續點擊版本號7次)

三、應用測試(3-7天)
測試類型

單元測試:使用@ohos/hypium框架

UI測試:XTS自動化測試框架

兼容性測試:至少覆蓋3款不同分辨率設備

云測試服務

使用華為提供的云真機測試服務

重點測試項目:

冷啟動時間≤1.5秒

內存峰值≤系統限制的80%

無ANR(應用無響應)情況

四、應用簽名(0.5天)
生成密鑰

在DevEco Studio:Build → Generate Key

必填信息:

Alias:至少8字符,包含大小寫字母

Validity:≥應用市場要求的25年(建議填30年)

申請證書

登錄AppGallery Connect

進入「我的項目」→「應用簽名」→上傳生成的CSR文件

簽名配置

json
復制
// build-profile.json5
{
“app”: {
“signingConfigs”: [{
“name”: “release”,
“material”: {
“certpath”: “cert/example.p12”,
“storePassword”: “",
“keyAlias”: “exampleKey”,
“keyPassword”: "
”,
“signAlg”: “SHA256withECDSA”
}
}]
}
}
五、上架華為應用市場(3-7天)
材料準備

應用截圖:5張(1242x2208px PNG)

隱私政策URL:必須獨立頁面

測試賬號(如有登錄功能)

版權證明(如涉及第三方內容)

提交流程

登錄華為開發者聯盟

進入「應用市場」→「我的應用」→「創建應用」

填寫信息:

分類選擇精確到三級目錄

年齡分級需符合實際內容

上傳簽名的HAP包(通過Build → Build HAP生成)

審核要點

隱私合規:必須遵循《華為應用市場審核指南》4.7條款

權限最小化:禁止請求非必要權限

無后臺自啟動(需在config.json聲明)

六、常見問題解決方案
簽名失敗

現象:INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES

解決:清理舊包 adb uninstall com.example.app

審核被拒高頻原因

隱私政策未明確數據收集類型

應用描述含"beta"、"測試版"等字樣

圖標含華為Logo等侵權元素

性能優化建議

使用組件替代大量

滾動

復雜計算使用Worker線程

圖片資源使用.webp格式

進階建議
持續集成

配置DevEco CLI自動化構建:

bash
復制
npm install -g @ohos/hpm-cli
hpm build
關注更新

定期查看HarmonyOS版本動態

社區資源

官方論壇:https://developer.huawei.com/consumer/cn/forum/block/harmonyos

代碼樣例:https://gitee.com/harmonyos/codelabs

按照以上流程,通常可在1-2個月內完成從開發到上架的全流程。建議首次提交時預留至少5個工作日用于審核修改。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76032.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76032.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76032.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux | 無頭 Linux 服務器安裝和設置

注:本文為 “Headless Linux” 相關文章合輯。 機翻未校。 How to Install and Set Up Headless Linux Server 如何安裝和設置無頭 Linux 服務器 Winnie Ondara Last Updated: January 31, 2023 A vast majority of Linux users are familiar with a Linux desk…

AI賦能數據庫管理“最后一公里”,融合架構重塑數據庫承載成本效能——zCloud 6.7與zData X 3.3正式發布

點擊藍字 關注我們 在數據驅動的新時代,數據庫的多元化和智能化已成不可逆的趨勢。3月31日,云和恩墨以“奇點時刻數智躍遷”為主題舉辦線上發布會,云和恩墨創始人兼總經理蓋國強、公司數據庫和生態產品群總經理熊軍共同帶來 zCloud 6.7與 zD…

I have something to say about Vue Node.js

關于Vue Node.js,我真的說了很多次了,讓我難以理解為啥這么粗糙的東西能流行一起。真瘋狂的世界。 vue讓感覺就像玩貓德一樣的,如此的瘋狂,天哪。睡覺了 Node.js v13 window7_nodejsv13-CSDN博客

【橘子大模型】使用streamlit來構建自己的聊天機器人(下)

一、簡介 我們之前完成了一個簡易的聊天機器人,但是還留下了一些問題沒有解決,比如如何開啟新的會話。如何切換session_id,如何把對話做成流式的輸出。這些我們就會在今天來完成。 二、關于新的會話和session_id from dotenv import load_…

php-cgi參數注入攻擊經歷淺談

起因: 阿里云服務器再次警告出現挖礦程序。上一次服務器被攻擊后,怕有惡意程序殘留,第一時間重裝了系統,也沒有詳查攻擊入口。不過事后還是做了一些防范,這臺留作公網訪問的服務器上并未保留業務數據,只作…

自動駕駛中的實時挑戰:如何優化車輛動力學模型

自動駕駛中的實時優化:自行車模型與雙軌模型的計算復雜度權衡 在自動駕駛領域,車輛動力學建模是實現精準控制和路徑規劃的關鍵。自行車模型和雙軌模型作為兩種主流的建模方法,在實時性需求下如何平衡計算復雜度與精確度,是工程師們必須面對的挑戰。本文將深入探討這兩種模…

Hybrid 架構的概念,以及如何優化Hybrid 通信方案,提升頁面加載速度和渲染性能

1. 什么是 Hybrid 架構? Hybrid(混合)架構是指 結合 Web 技術和 Native(原生)技術 的移動應用開發模式,通常由以下部分組成: Web 部分:使用 HTML、CSS、JavaScript(或前…

關于類模板STL中vector容器的運用和智能指針的實現

代碼題&#xff1a;使用vector實現一個簡單的本地注冊登錄系統 注冊&#xff1a;將賬號密碼存入vector里面&#xff0c;注意防重復判斷 登錄&#xff1a;判斷登錄的賬號密碼是否正確 #include <iostream> #include <cstring> #include <cstdlib> #in…

OpenCV 從入門到精通(day_04)

1. 繪制圖像輪廓 1.1 什么是輪廓 輪廓是一系列相連的點組成的曲線&#xff0c;代表了物體的基本外形。相對于邊緣&#xff0c;輪廓是連續的&#xff0c;邊緣不一定連續&#xff0c;如下圖所示。其實邊緣主要是作為圖像的特征使用&#xff0c;比如可以用邊緣特征可以區分臉和手…

Python錯誤分析與調試

在Python編程的過程中&#xff0c;我們難免會遇到各種各樣的錯誤&#xff0c;而有效地分析和調試這些錯誤&#xff0c;能讓我們的代碼快速恢復正常運行&#xff0c;今天就來和大家聊聊Python中錯誤分析與調試的相關內容。 錯誤分析 Python中的錯誤大致可以分為語法錯誤和邏…

Browser-use:基于 Python 的智能瀏覽器自動化 AI 工具調研與實戰

Browser-use&#xff1a;基于 Python 的智能瀏覽器自動化 AI 工具調研與實戰 一、概述 Browser-use 是一個旨在將 AI “智能體”&#xff08;Agents&#xff09;與真實瀏覽器進行交互的 Python 庫&#xff0c;可以輕松實現瀏覽器自動化。在配合 LLM&#xff08;如 GPT 系列&a…

網絡空間安全(51)郵件函數漏洞

前言 郵件函數漏洞&#xff0c;特別是在PHP環境中使用mail()函數時&#xff0c;是一個重要的安全問題。 一、概述 在PHP中&#xff0c;mail()函數是一個用于發送電子郵件的內置函數。其函數原型為&#xff1a; bool mail ( string $to , string $subject , string $message [, …

LLaMA-Factory 數據集成從入門到精通

一、框架概述 LLaMA-Factory 框架通過Alpaca/Sharegpt雙格式體系實現多任務適配&#xff0c;其中Alpaca專注結構化指令微調&#xff08;含SFT/DPO/預訓練&#xff09;&#xff0c;Sharegpt支持多角色對話及多模態數據集成。核心配置依托 dataset_info.json 實現數據源映射、格…

如何根據設計稿進行移動端適配:全面詳解

如何根據設計稿進行移動端適配&#xff1a;全面詳解 文章目錄 如何根據設計稿進行移動端適配&#xff1a;全面詳解1. **理解設計稿**1.1 設計稿的尺寸1.2 設計稿的單位 2. **移動端適配的核心技術**2.1 使用 viewport 元標簽2.1.1 代碼示例2.1.2 參數說明 2.2 使用相對單位2.2.…

07-Spring Boot 自動配置原理全解析

Spring Boot 自動配置原理全解析&#xff08;EnableAutoConfiguration 源碼追蹤&#xff09; Spring Boot 之所以能大幅簡化配置&#xff0c;核心就在于它的 自動配置機制&#xff0c;而這一機制背后主要依賴于 EnableAutoConfiguration 注解。本文將從使用、源碼、常見問題及…

前端如何檢測項目中新版本的發布?

前言 你是否也曾遇到過這種情況&#xff0c;每次發完版之后都還會有用戶反饋問題沒有被修復&#xff0c;一頓排查之后發現他用的還是舊的版本。 用戶&#xff1a;在 XX 頁面 XX 字段還是不展示 我&#xff1a;刷新下頁面 用戶&#xff1a;刷新了啊 我&#xff1a;強刷一下&…

Vue 項目使用 pdf.js 及 Elasticpdf 教程

摘要&#xff1a;本文章介紹如何在 Vue 中使用 pdf.js 及基于 pdf.js 的批注開發包 Elasticpdf。簡單 5 步可完成集成部署&#xff0c;包括數據的云端同步&#xff0c;示例代碼完善且簡單&#xff0c;文末有集成代碼分享。 1. 工具庫介紹與 Demo 1.1 代碼包結構 ElasticPDF基…

聊聊Spring AI的ChromaVectorStore

序 本文主要研究一下Spring AI的ChromaVectorStore 示例 pom.xml <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-vector-store-chroma</artifactId></dependency>配置 spring:ai:vectorstore:…

整數編碼 - 華為OD統一考試(A卷、Java)

題目描述 實現一種整數編碼方法,使得待編碼的數字越小,編碼后所占用的字節數越小。 編碼規則如下: 編碼時7位一組,每個字節的低7位用于存儲待編碼數字的補碼。字節的最高位表示后續是否還有字節,置1表示后面還有更多的字節,置0表示當前字節為最后一個字節。采用小端序編…

Linux 遞歸查找并刪除目錄下的文件

在 Linux 中&#xff0c;可以使用 find 命令遞歸查找并刪除目錄下的文件 1、示例命令 find /path/to/directory -type f -name "filename_pattern" -exec rm -f {} 2、參數說明 /path/to/directory&#xff1a;要查找的目標目錄type f&#xff1a;表示查找文件&am…