1.はじめに
AWTK の正式名称は、Toolkit AnyWhere です。これは 、ZLGが開発したオープンソースGUIエンジンです。 組み込みシステム、WEB、さまざまなアプレット、携帯電話、PC用のユニバーサルGUIエンジンを作成するように設計されています。強力で効率的、信頼性が高く、使いやすい、クールな効果を簡単に作成できるGUIエンジン。
開発者は一緒に開発に参加することができます:生態学的共同建設計画。
AWTKのモラルに は2つの側面があります。
- ツールキットAnyWhere。
- ZLG IoTオペレーティングシステムAWorksOSには、組み込みGUIがあります。
AWTK ソースコードリポジトリ:
- メインのソースコードリポジトリ:https : //github.com/zlgopen/awtk
- ミラーソースコードリポジトリ:https : //gitee.com/zlgopen/awtk
- 安定版統合パッケージ:https ://pan.baidu.com/s/1_oRgj67M-I4kivk-YzwFWA抽出コード:1cmi
AWTK Designerインターフェース設計ツール:
- 手書きのXMLは不要
- ドラッグアンドドロップのデザインインターフェイス、WYSIWYG
- クイックプレビュー、ワンクリックのパッケージリソース
- 登録とダウンロードのアドレス:https : //awtk.zlg.cn
ランニング効果のスクリーンショット:
第二に、究極の目標:
- 組み込みアプリケーションの開発をサポートします。✔
- Linuxアプリケーションの開発をサポートします。✔
- MacOSアプリケーションの開発をサポートします。✔
- Windowsアプリケーションの開発をサポートします。✔
- Web APPの開発をサポートします。✔
- Androidアプリケーションの開発をサポートします。✔
- iOSアプリケーションの開発をサポートします。✔
- WeChatアプレットの開発をサポートします。
- Alipayアプレットの開発をサポートします。
- Baiduアプレットの開発をサポートします。
- 2Dの小さなゲームの開発をサポートします。
3.主な機能
1.クロスプラットフォーム
AWTK はクロスプラットフォームであり、2つの意味があります。
-
AWTK自体はクロスプラットフォームです。現在サポートされているプラットフォームは、ZLG AWorksOS、Windows、Linux、MacOS、組み込みLinux、Android、iOS、Web、組み込みのベアシステムで、さまざまなRTOSに簡単に移植できます。AWTKは将来、さまざまなアプレットプラットフォームでも実行できるようになります。
-
AWTKは、クロスプラットフォームの基本的なツールライブラリのセットも提供します。これらには、リンクリスト、配列、文字列(UTF8とワイド文字)、イベントエミッター、値、オブジェクト、ファイルシステム、ミューテックスとスレッド、式と文字列解析などが含まれるため、AWTKで開発するアプリケーションは実際にクロスプラットフォーム操作。
2.高効率
AWTK は、一連の手段を通じてAWTKアプリケーションの効率的な操作を保証します。
- ダーティモーメントアルゴリズムによって更新されるのは、ダーティパーツのみです。
- インターフェイスを最高のフレームレートで実行できるように3つのFrameBufferをサポートします(オプション)。
- UI記述ファイルとテーマファイルは効率的なバイナリ形式を使用し、解析は瞬時に完了します。
- さまざまなGPUアクセラレーションインターフェイスをサポートします。OpenGL、DirectX、Vulkan、Metalなど。
- 組み込みプラットフォーム用のさまざまな2Dアクセラレーションインターフェイスをサポートします。現在、STM32のDMA2DおよびNXPのPXPインターフェースは、メーカーが簡単に加速インターフェースを拡張できます。
3.安定
AWTK は、次の方法でコードの安定性と信頼性の向上に努めています。
- 静的チェックにはcppcheckとfacebook inferを使用します。
- 動的メモリチェックにはvalgrindを使用します。
- 約20,000行の単体テストコード。
- ZLGの強力なGUIチームによるサポート。
- 複数の実際のプロジェクト検証後。
- マルチプラットフォーム/マルチコンパイラの検証。
- 優れた建築設計。
- コードレビュー。
- 手動テスト。
4.パワフル
- 豊富なコントロール(継続的に増加)。
- さまざまな画像形式(png / jpg / gif / svg)をサポートします。
- さまざまなフォント形式(ドットマトリックスおよびベクトル)をサポートします。
- サポートウィンドウのアニメーション
- サポート制御アニメーション
- HDスクリーンをサポートしています。
- インターフェース記述ファイルをサポートします。
- サポートテーマの説明ファイル。
- テーマの切り替えはリアルタイムで有効になります。
- コントロールレイアウト戦略をサポートします。
- ダイアログ強調表示戦略をサポートします。
- 豊富な補助ツール。
- ローエンドのCortex M3からさまざまなハイエンドCPUへのサポート。
- ファイルシステムおよびカスタムファイルシステムはサポートされません。
- ベアシステムとRTOSをサポートします。
5.使いやすい
- たくさんのサンプルコード。
- 完全なAPIドキュメントと使用法ドキュメント。
- ZLGの強力なテクニカルサポートチーム。
- AWTK自体で開発された インターフェースエディター。
- 宣言的なインターフェース記述言語。1行のコードで、コントロールアニメーション、ウィンドウアニメーション、表示画像(png / jpg / svg / gif)が有効になります。
6.高いスケーラビリティ
- 独自のコントロールを拡張できます。
- 独自のアニメーションを拡張できます。
- 独自のメインループを実装できます。
- 独自のソフトキーボードを拡張できます。
- 独自の画像ローダーを拡張できます。
- 独自のフォントローダーを拡張できます。
- 独自のインプットメソッドエンジンを拡張できます。
- 独自のコントロールレイアウトアルゴリズムを拡張できます。
- 独自のダイアログハイライト戦略を拡張できます。
- 独自のLCDインターフェイスを実装できます。
- 独自のベクトルエンジンを拡張できます(skia / cairoの使用など)。
- すべての拡張コンポーネントと組み込みコンポーネントは同じように扱われます。
7.複数の開発言語
AWTK 自体はC言語で開発されており、IDLを介してさまざまなスクリプト言語のバインディングを生成できます。生成されたバインディングコードは、C言語APIをスクリプト言語にマップするだけでなく、スクリプト言語のネイティブコードスタイルAPIを生成します。以下の言語が現在サポートされています(必要に応じて将来追加されます)。
- C
- C ++
- 取ります
- java
- python
- jerryscript上のJavascript
- nodejs上のJavaScript
- quickjsのJavascript
8.国際化
- Unicodeをサポートします。
- 入力方法をサポートします。
- 文字列変換をサポート(リアルタイムで有効)。
- 画像翻訳をサポートします(リアルタイムで有効)。
- 双方向テキストレイアウト(予定)。
9.組み込みソフトウェア用にカスタマイズされたMVVMフレームワークは、ユーザーインターフェイスとビジネスロジックを完全に分離します。
- 高性能。
- メモリのオーバーヘッドは小さいです。
- 分離はより完全です。
- 他のGUIに移植できます。
- コードは小さい(〜5000行)。
- AWTKコントロール自体のAPIを学習する必要はありません。
- 複数のプログラミング言語をサポートします(現在はC / JSをサポートしています)。
詳細については、https://github.com/zlgopen/awtk-mvvmを参照してください。
10.オープンソース、無料の商用利用(LGPL)。
4、1.4バージョン更新
1.完璧な詳細
- fsインターフェースを改善します。
- 完璧なツールは複数のテーマをサポートしています。
- リストビューは上下スクロールをサポートしています。
- ウィンドウを切り替えるときのフォーカス復元の問題を改善しました。
- コンボボックスを改善し、選択後にインプットメソッドを再度開きます。
- 進行円はラインキャップ属性をサポートします。
- vgcanvas_line_join_t定義を追加します。
- vgcanvas_line_cap_t定義を追加します。
- アンドロイドの再開後にインターフェースが黒くなる問題を修正しました。
- スライドビュー/ページ各ページは、独立した初期フォーカスをサポートしています。
- 関数widget_set_child_text_utf8を追加します。
- 関数widget_set_child_text_with_doubleを追加します。
- キーボードがgrab_keysにある場合、キーボードがキーイベントを処理した後、アプリケーションウィンドウは処理されなくなります。
- 画像の値を改善し、クリック時に増分を追加できるようにし、最大値に増やして最小値に戻します。
詳細については、https://github.com/zlgopen/awtk/blob/master/docs/changes.mdを参照して ください。
3.新機能
- 複数のテーマをサポートするファイルシステムはありません。
- openglesはスナップショットをサポートしています。
- dit / mleditでは、ソフトキーボードの名前を指定できます。
- マウスの右ボタンをクリックして、コンテキストメニューイベントをトリガーします。
- メインループを実装するには、event_source_managerを使用します。
- 標準プログラムのメイン関数であるawtk_main.incを追加します。
- SDLを使用して、PCバージョンのスレッドと同期関連の関数を再実装します。
- 編集入力タイプ「custom_password」タイプを追加します。
4.新しいコントロール
- audio_view オーディオ再生コントロール。
- lrc_view 歌詞表示コントロール。
- video_view ビデオ再生コントロール。
5.重要なAPIを追加する
- アクションスレッドを増やします。
- アクションスレッドプールを増やします。
- ダイナミックリンクライブラリインターフェイスdl.hを増やします。
- 待機可能なリングバッファを追加します。
- widget_close_windowを追加します。
- 增加 waitable_action_queue。
- path_replace_extname関数を追加します。
- 関数の非同期呼び出しを実現するためにasync.c / .hを追加します。
- path_replace_extname関数を追加します。
- 関数の非同期呼び出しを実現するためにasync.c / .hを追加します。
- データリーダーインターフェイスとデータライターを追加して、外部フラッシュやその他のデバイスを抽象化します。
- PCおよびAndroidプラットフォームがデータを保存するディレクトリを統合する関数fs_get_user_storage_pathを追加しました。
6.新しいプラットフォーム
7.新しい言語バインディング
8.関連アイテムを追加する
開発者は一緒に開発に参加することができます:生態学的共同建設計画。