鸿蒙版本的电子书阅读APP开放源码啦 – aqi00 – 博客园

鸿蒙版本的电子书阅读APP开放源码啦 – aqi00 – 博客园


​本は人類の進歩のはしごです。携帯電話で電子書籍を読むと、学習にも娯楽にもなります。 2022年に出版された『 Android Studio 開発実践: ゼロの基礎からオンラインアプリまで (第 3 版) 』では早くも、著者は Android をベースにしたページめくりブラウジング機能を備えた電子書籍 APP を実装しました。一般的なPDF形式だけでなく、オープンスタンダードのEPUB形式や、古書籍をデジタル化するDJVU形式にも対応しています。コンパクトな電子書籍棚と言えます。

『Hongmeng HarmonyOS 6 アプリケーション開発: ゼロの基礎からオンライン アプリまで』という書籍は、『Android Studio 開発実践: ゼロの基礎からオンライン アプリまで (第 3 版)』のホンメンの姉妹編です。 Android ブックに掲載されている実践的なプロジェクトのほとんどが Harmony バージョンに変換されています。しかし、Hongmeng の本を執筆する際、時間の制約とプロジェクトの難しさのため、Android 本の電子書籍読書プロジェクトを同時に Hongmeng バージョンに変換することができませんでした。これが、Hongmeng の本の小さな欠点となりました。

しかし、著者は諦めなかった。 『Hongmeng HarmonyOS 6 アプリケーション開発: ゼロの基礎からオンラインアプリまで』の出版後、私は電子書籍 APP のHongmeng の変革を常に思い出しています。紅蒙公式ウェブサイトのドキュメントと AI プログラミング ツールのサポートにより、Android 版の電子書籍 APP は最終的に段階的に紅蒙 APP に変換されました。電子書籍 APP のプロジェクト ソース コードが、Hongmeng 本の第 17 章 (新しい章) のソース コードに追加されました。特定のソース コードのホスティング アドレスは次のとおりです。

鸿蒙版本的电子书阅读APP开放源码啦 – aqi00 – 博客园

電子書籍を読むためのHongmeng APPは、依然としてシンプルなインターフェースを備えています。オリジナルの Android バージョンは、PDF、EPUB、DJVU の 3 つの形式のみをサポートしています。 Honmeng バージョンは、PDF、EPUB、MOBI、AZW3、DJVU を含む 5 つの形式をサポートするように拡張されました。 Android版よりも強力です。以下では、Hongmeng APP がこれら 5 つの形式をどのようにサポートしているかを紹介します。

PDF 形式の電子書籍については、HarmonyOS はバージョン 5.0.0 (API 12) の時点で PDF Kit (PDF サービス) を導入しました。このサービスは、PDF ファイルを開く、PDF 画像をエクスポートする、注釈、ヘッダーとフッター、透かし、背景、ブックマークをページに追加するなどの関連機能を提供し、開発者がさまざまなアプリケーション シナリオで PDF ドキュメントを迅速に操作できるようにします。

PDF Kit には pdfService コンポーネントと PdfView コンポーネントが含まれており、PdfView コンポーネントには PdfView、pdfViewManager、および PdfController が含まれています。 Honmeng APP には、PDF ドキュメントに対して次の 2 つの処理方法があります。

1. PDF ドキュメントを単に参照する場合は、ArkUI レイアウトに PdfView コンポーネントを埋め込み、PdfController を使用して指定されたパスで PDF ファイルをロードするだけです。
2. PDF ドキュメントを追加、削除、または変更する必要がある場合は、pdfService を使用して PDF ドキュメントをロードし、Image コンポーネントを使用して PDF ページをレンダリングし、カスタマイズされた要件に従って PDF ドキュメントを調整する必要があります。

EPUB、MOBI、AZW3 およびその他の形式の電子書籍に対して、Hongmeng System はバージョン 5.0.4 (API 16) から Reader Kit (読書サービス) を導入しました。このサービスは、EPUB、MOBI、AZW3 などの複数の形式の電子書籍の解析、組版、および読み取りインタラクション機能を提供します。開発者は、Reader Kit の機能とコンポーネントを利用して、書籍を読む機能を迅速に構築できます。

Reader Kit には次の 3 つのコンポーネントが含まれています。

ReadPageComponent: これは、本のレイアウト コンテンツの表示、さまざまなページめくりインタラクションとページめくり効果、およびページめくり読書中に読者が必要とする進行状況と動作認識機能をサポートする ArkUI コンポーネントです。
bookParser (書籍解析機能): このモジュールは書籍解析機能を提供し、txt、epub、mobi、azw、azw3 およびその他の形式の電子書籍の解析をサポートします。本の基本情報、背表紙の内容リスト、目次リスト、章の内容を解析できます。
ReaderCore (読み取りコア機能): このモジュールは、基本的な読み取りページ データ クラス、ページ ステータス、コンテンツ ページング情報、ページ レイアウト属性、コンポーネント コントローラー、およびその他の機能を提供します。主に再生やページめくりなどのアクションに使用されます。

ただし、Hongmeng はまだ DJVU 形式の電子書籍に対する公式の解析サービスを提供していません。 OpenHarmony のスリーパーティ ライブラリの中央倉庫を検索したところ、DJVU 形式をサポートするサードパーティの解析ライブラリは見つかりませんでした。つまり、自分で行うか、他のプラットフォームの DJVU ライブラリを変更する必要があります。オプションの変換ルートは次のとおりです。

1. オープン ソース JavaScript ライブラリ djvu.js を使用します。これは、バックエンド サービスやローカル DjVu リーダーのインストールを必要とせずに、HTML5 フロントエンドでの djvu 形式ドキュメントの解析とレンダリングをサポートします。このソリューションでは、H5 Web ページを開発し、Hongmeng アプリの Web コンポーネントに埋め込む必要があります。 djvu ドキュメントは、APP によってネイティブに解析およびレンダリングできません。
2. オープン ソースの C/C++ ライブラリ DjVuLibre を使用します。これは、djvu 形式のオリジナルの作成者によって保守されています。これには、完全な C++ デコード ライブラリ、エンコーダ、コマンド ライン ツール (ddjivu、djvused など) が含まれています。最も互換性のある djvu 解析ライブラリです。ほとんどの DjVu ファイルは、それに対してベンチマークされています。現在、Github 上の DjVuLibre の最新の安定バージョンは 3.5.30 です。このライブラリは zlib や libjpeg-turbo などのサードパーティ ライブラリにも依存しているため、依存ライブラリと一緒に移植する必要があります。
3. Android プラットフォーム上の既存の VuDroid/DjvuDroid を使用します。このライブラリは DjVuLibre の Android パッケージ版であり、Android への移植プロジェクトとして完成しています。たとえば、『Android Studio 開発実践: ゼロの基礎からオンラインアプリまで (第 3 版)』の第 15 章にある実践的なプロジェクトは、DJVU ファイルを参照するための VuDroid ライブラリに基づいています。

上記の変換ルートから、Hongmeng ネイティブを使用して PDF ドキュメントを解析およびレンダリングしたい場合、Android プラットフォームの VuDroid ライブラリを移植するのが比較的簡単で実現可能であることがわかります。そこでブロガーは VuDroid ライブラリから始めて、NDK のコンパイル方法を Android から HarmonyOS に変更し、APP のページ レイアウト コードも Android の Java+XML から Harmony の ArkTS+ArkUI に変換しました。

Hongmeng 版 DjvuDroid ライブラリの修正としては、主に Android 側のコンパイル済みファイル Android.mk を、Hongmeng 側のコンパイル済みファイル CMakeLists.txt に書き換えます。変更された DjVu ファイルの Honmeng 表示ページは次のとおりです。

電子書籍2

紅蒙 APP 開発を始めたい、または紅蒙 開発を学習している場合、電子書籍 APP は優れた学習プロジェクトです。さまざまなHongmeng開発スキルを使用するだけでなく、実用的かつ装飾的でもあり、開発者がHongmeng開発を迅速に習得するのに非常に役立ちます。



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *