序章
本稿では、OpenHarmonyアプリケーション開発に取り組むために必要な基礎知識を、OpenHarmonyアプリケーションパッケージの構造、アビリティ開発、UI開発、OpenHarmonyアプリケーションプロジェクトのディレクトリ構造、プログラミング言語の5つの側面から整理します。
参考文献:
OpenHarmony工程介绍
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-project-overview-0000001218440650
快速开始、开发
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/application-dev-guide.md/
入门、开发
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/document-outline-js-ets-0000001282486428
1.Hongmeng アプリケーション パッケージの構造
1.Hongmeng アプリケーションのリリース形式は APP Pack (アプリケーション パッケージ、略して APP) です。これは、1 つ以上の HAP (Harmony Capacity Package) パッケージと、APP Pack のプロパティを記述した Pack.info ファイル (アプリケーションによって自動的に生成されます) で構成されます。コンパイル時の IDE) 構成。
2. 各 HAP は、Hongmeng アプリケーション プロジェクト ディレクトリ内のモジュールに対応します。たとえば、次の図に示す Honmeng プロジェクト内のentry
名前付きフォルダはモジュールです。Honmeng アプリケーション プロジェクトをコンパイルするときに、各モジュールを HAP にコンパイルできます。
3.Hongmeng APP には、エントリー HAP とフィーチャー HAP の 2 種類の HAP があります。
(1)エントリーHAP
エントリー型HAPは、APPのメインモジュール(エントリーモジュール)であり、特定のデバイスのアプリケーションプログラムのエントリーに相当し、特定のデバイスでAPPが開かれると、そのデバイスのエントリーHAPが最初に実行されます。これは、デバイスにインストールされている APP にはエントリー HAP が 1 つだけ存在することを意味しますが、次のように、Hongmeng プロジェクトには、異なるタイプのデバイスまたは同じタイプの異なるタイプのデバイスに適応する複数のエントリー タイプ モジュールが存在する可能性があります。図に示すように。
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/add_new_module-0000001053223741#section18939175113911
さらに、Entry HAP はデバイス上に独立してインストールして実行できます。
(2)HAPの特徴
機能タイプの HAP は、APP 内の機能モジュール (オプション モジュール) であり、APP は 1 つ以上の機能 HAP を持つことも、持たないこともできます。アビリティを含む機能 HAP のみがデバイス上で独立して実行できます。
4. HAP (モジュール) は、アビリティ、リソース、サードパーティのライブラリ、および設定ファイルで構成されます。
(1)能力
HAP には 1 つ以上のアビリティが含まれる場合もあれば、アビリティが含まれない場合もあります。
アビリティにはFAモデルとステージモデルの2つのモデルがあり、詳しくは本記事の後編「アビリティ開発」をご覧ください。
アビリティは、Hongmeng アプリケーションの機能を抽象化したもので、Hongmeng アプリケーションの中核部分であり、システム スケジューリング アプリケーションの最小単位です。DevEco Studio は、開発者が使用できる多数のアビリティ テンプレートを提供します。紅夢アプリを開発するときは主にアビリティのコードを書きます。下図の赤枠部分がFAモデルにおけるPageabilityのコードです。
(2) ライブラリファイル
ライブラリ ファイルは、so、jar、bin、har などのバイナリ ファイルなど、アプリケーションが依存する必要があるサードパーティ コードであり、通常はディレクトリに保存されますlibs
。
(3) リソースファイル
アプリケーションに必要な文字列、画像、音声などのリソースファイルは、resources
開発者が利用・管理しやすいディレクトリに格納されています(詳細はリソースファイルの分類を参照)。
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/quick-start/basic-resource-file-categories.md/
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/basic-resource-file-categories-0000001052066099
(4) 設定ファイル
HAPの各種設定情報は設定ファイルに収集されます。HAPに含まれるアビリティで使用するモデル(FAモデル、ステージモデル)は、HAPの設定ファイルも異なります。見る:
应用包结构说明(FA模型)
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/quick-start/package-structure.md/
应用包结构说明(Stage模型)
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/quick-start/stage-structure.md/
2. 能力開発
Ability框架概述
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ability/ability-brief.md/
アビリティにはFAモデルとステージモデルの2つのモデルがあります。
1.FAモデル
API 8 以前のアプリケーションは、FA モデルを使用してのみ開発できます。
FA モデルでは、アビリティを FA (Feature Capacity) と PA (Particle Capacity) の 2 種類に分類します。
FA (フィーチャー アビリティ) はページ アビリティをサポートし、ページ アビリティには 1 つ以上のページ (つまりページ) を含めることができ、PA はサービス アビリティ、データ アビリティ、およびフォーム アビリティをサポートします。
FA (フィーチャー アビリティ) には UI インターフェイスがあります (この記事の 3 番目のパート「UI 開発」を参照) が、PA (パーティクル アビリティ) には UI インターフェイスがありません。
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ability/fa-brief.md/
2. ステージモデル
API 9 以降、Ability フレームワークは、2 番目のアプリケーション フレームワーク フォームとして Stage モデルを導入します。Stage モデルは、Ability を 2 つのカテゴリ (Ability と ExtensionAbility) に分割します。ExtensionAbility は、ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility などの一連の ExtensionAbility に拡張されます。より多くの使用シーンに対応します。
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ability/stage-brief.md/
3. UI開発
UI框架
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/quick-start/start-overview.md/#ui%E6%A1%86%E6%9E%B6
OpenHarmony は、一連の UI 開発フレームワーク、つまり Ark 開発フレームワーク (ArkUI フレームワーク) を提供します。Ark 開発フレームワークは、さまざまなコンポーネント、レイアウト計算、アニメーション機能、UI インタラクション、描画など、アプリケーション UI 開発に必要な機能を開発者に提供します。
Ark 開発フレームワークは、目的や技術的背景が異なる開発者に 2 つの開発パラダイムを提供します。1 つは、JS 拡張機能に基づく Web ライクな開発パラダイム (「Web ライク開発パラダイム」といいます)、もう 1 つは TS 拡張機能に基づく宣言型開発パラダイム ( 「宣言的開発パラダイム」と呼ばれます)。以下は 2 つの開発パラダイムの簡単な比較です。
開発パラダイム名 | 言語生態学 | UI更新方法 | 該当シーン | 人々のために |
---|---|---|---|---|
Web のような開発パラダイム | JS言語 | データドリブンなアップデート | シンプルなインターフェースを備えたアプリとカード | Webフロントエンド開発者 |
宣言型開発パラダイム | 拡張 TS 言語 (eTS) | データドリブンなアップデート | より複雑でより優れたチームワークを備えたプログラム | モバイルシステムアプリケーション開発者、システムアプリケーション開発者 |
JS 言語開発の場合、DevEco Studio V2.2 Beta1 以降のバージョンではローコード方式がサポートされています。
eTS 言語開発の場合、ローコード方式は DevEco Studio V3.0 Beta3 以降のバージョンでサポートされています。
方舟开发框架概述
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ui/arkui-overview.md/
基于JS扩展的类Web开发范式
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ui/ui-js-overview.md/
基于TS扩展的声明式开发范式
https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ui/ui-ts-overview.md/
4.Hongmeng Application Projectのディレクトリ構造
アビリティのモデル(FA、Stage)とプログラミング言語(eTS、JS、C++)に応じて、OpenHarmony APP プロジェクトのディレクトリ構造は次の 5 種類になります。
1. eTSプロジェクトのディレクトリ構造(FAモデル)
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-project-overview-0000001218440650#section4154183910141
2. JSプロジェクトのディレクトリ構成(FAモデル)
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-project-overview-0000001218440650#section199109862914
3. C++プロジェクトのディレクトリ構造(FAモデル)
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-project-overview-0000001218440650#section3732132312179
4. eTSプロジェクトのディレクトリ構造(ステージモデル)
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-project-overview-0000001218440650#section56487581904
5. C++プロジェクトのディレクトリ構造(ステージモデル)
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-project-overview-0000001218440650#section11993659193917
5. プログラミング言語
紅夢アプリケーション開発に従事し、C++ プロジェクトでは C++ 言語が使用され、JS プロジェクトでは JavaScript 言語に加えて HML と CSS も使用され、eTS プロジェクトでは eTS 言語が使用されます。
eTS 言語は TS (Type Script) 言語のスーパーセットであり、TS は JavaScript のスーパーセットです。
HML 構文リファレンス
https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Release/zh-cn/application-dev/ui/js-framework-syntax-hml.md
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/js-framework-syntax-hml-0000000000611413
CSS 構文リファレンス
https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Release/zh-cn/application-dev/ui/js-framework-syntax-css.md
https://www.runoob.com/css/css-tutorial.html
https://www.runoob.com/cssref/css-reference.html
JS 構文リファレンス
https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Release/zh-cn/application-dev/ui/js-framework-syntax-js.md
https://www.runoob.com/js/js-tutorial.html
TypeScript 構文リファレンス
https://www.runoob.com/typescript/ts-tutorial.html
https://www.runoob.com/manual/gitbook/TypeScript/_book/