Harmony OSとは
- ファーウェイが開発した次世代OS
- 複数デバイスを互いに接続しあうことで、リソースを共有し、スーパーデバイスを構築することが理念
- スマホ、タブレット、テレビ、腕時計、スピーカー、車、家電など、様々なデバイスに対応
Harmony OSとAndroidとの違い
Harmony OS | Android | |
---|---|---|
理念 | 複数種類のデバイスの同時使用 | 単独のデバイスの使用 |
OS対象 | ・スマホ ・タブレット ・テレビ ・腕時計 ・スピーカー ・メガネ ・車 ・カメラ ・電子レンジ ・エアコン ・その他の電子機器 |
・スマホ ・タブレット ・テレビ |
IDE | DevEco Studio | Android Studio |
開発言語 | ・Java ・JavaScript |
・Java ・Korlin |
レイアウト開発言語 | ・XML ・HTML+CSS |
・XML |
カーネル | Linux | Linux |
Harmony OSのアーキテクチャ
Linuxカーネル層、システムサービス層、フレームワーク層、アプリケーション層で構成されます。
Linuxカーネル層
カーネルサブシステム
マルチカーネルが採用されます。デバイスのリソースに応じて、適切なカーネルが選ばれます。
カーネル抽象化層
マルチカーネルをフィルタすることで、上の層にタスク管理、メモリ管理、ファイル管理、ネットワーク管理などのカーネル機能を提供します。
ドライバサブシステム
HDFはHarmony OSにおけるハードウェアのエコシステム基礎であり、外部デバイスのアクセス機能、ドライバの開発・管理機能を提供します。
システムサービス層
Harmony OSのメイン機能となる層であり、フレームワーク層を通してサービスを提供します。
基本機能サブシステムセット
分散スケジューラ、分散データ管理、分散ソフトウェアバス、アーク多言語ランタイム、ユーティリティ、マルチモデル入力、グラフィックス、セキュリティ、人工知能で構成されており、Harmony OSで動作する分散型アプリケーションに実行、スケジューリング、遷移などの機能を提供します。また、アーク多言語ランタイムはC、C++、JSの基礎ライブラリとJavaの静的コンパイラを提供します。
基本サービスサブシステムセット
Harmony OSが提供している基本サービスです。イベント通知、電話、マルチメディア、Design for X、MSDP & DVなどのサービスで構成されます。
強化サービスサブシステムセット
様々なデバイスの特有のサービスを提供します。スマートテレビ、ウェアブル端末、IoTなどのサービスで構成されます。
ハードウェアサービスサブシステムセット
ハードウェアのサービスを提供します。ロケーション、生体認証、ウェアブル端末ハードウェア、IoTハードウェアなどのサービスで構成されます。
フレームワーク層
アプリケーションを開発するのに必要なUIフレームワーク、アプリケーションフレームワーク、アビリティフレームワーク、各種APIを提供します。デバイスによって提供するAPIが異なります。
アプリケーション層
システムアプリケーションとサードパーティーアプリケーションで構成されます。Harmony OSのアプリケーションは一つ以上のフィーチャーアプリティ(FA)またはパーティカルアビリティ(PA)で構成されます。
フィーチャーアプリティ(FA)
UIがあり、ユーザーとやり取りができます。
パーティカルアビリティ(PA)
UIがないサービスになります。たとえば、バックグラウンドサービスなどです。
Harmony OSの特徴
複数デバイスのリソース共有
Harmony OSの特徴は複数デバイスのリソース共有です。それを実現する主な技術は分散ソフトウェアバス、デバイスの仮想化、分散データ管理、分散スケジューラです。
分散ソフトウェアバス
分散ソフトウェアバスはスマホ、タブレット、ウェアブル端末、スマートテレビ、車などの通信基盤であり、複数デバイス間のアクセスに分散通信機能を提供し、複数デバイス間の瞬時接続を容易にします。開発者はビジネスロジックに集中でき、ネットワーク管理をすべてHarmony OSに任せることができます。
デバイスの仮想化
分散型デバイスの仮想化は、複数デバイスのリソース統合、デバイス管理、データ処理を実現することができ、一つのスーパー仮想デバイスに融合させます。様々な場面に応じて、最適なデバイスが選ばれ、タスクが複数デバイス間に行き来し、そのデバイスの得意な機能(表示機能、撮影機能、オーディオ機能など)を生かします。
分散データ管理
分散データ管理は分散ソフトウェアバスに基いた機能であり、アプリデータとユーザーデータの分散管理を実現します。ユーザーデータが一つのデバイスに依存することがなくなり、ビジネスロジックとデータ保存が分離され、複数デバイス間のデータ処理がまるで単一デバイスのデータ処理のように便利かつ迅速になります。開発者は様々な場面における複数デバイスのデータ保存、共有、アクセスを簡単に取り扱うことができるようになります。
分散スケジューラ
分散スケジューラは分散ソフトウェアバス、分散データ管理、分散型プロフィール等の技術に基いて、分散型サービス管理システム(発見、同期、登録、呼び出し)を構築し、リモート起動、リモート呼び出し、リモート接続、アプリケーションの遷移をサポートします。デバイスのスペックや、場所、システム状況、リソース状況、ユーザーの習慣と意図に応じて、最適なデバイスを選びます。
一回のみの開発で多種類のデバイスに対応
Harmony OSはユーザーアプリケーションフレームワーク、アビリティフレームワーク、UIフレームワークを提供し、アプリケーション開発中における多種類デバイスのビジネスロジックとUIロジックの再利用をサポートし、一回のみの開発で多種類デバイスに対応することを実現し、開発の効率を上げます。
また、UIフレームワークはJavaとJavaScriptをサポートし、様々なUIコンポーネントを提供し、スマホ、タブレット、ウェアブル端末、スマートテレビ、車に多様なUI表示を見せます。業界主流のデザインコンセプトを採用し、様々なレイアウトソリューションを提供します。
OSが同じなのでデプロイが簡単
Harmony OSはコンポーネント化と小型化を利用し、多種類デバイスに必要な時にデプロイする機能をサポートし、様々なハードウェアリソースと場面に適応できます。また、コンポーネントの依頼関係はコンパイル時に自動的に生成されるので、ハードウェアの性能を気にする必要がなくなり、開発の効率がさらに高くなります。