ホット アップデート テクノロジの簡単な原理と技術的な推奨事項

新しくてかわいい子供靴を大切に履くために、冒頭でホットアップデートの概念をわかりやすくご紹介しましょう。

ホットアップデートとは、平たく言えば、アプリストアのソフトウェアバージョンアップ審査を通らず、アプリ自体がダウンロードしたソフトウェアデータを通じて直接アップデートされることを指します。ユーザーがアプリをダウンロードしてインストールした後、アプリを開いたときに発生する即時更新は、主要なモバイル ゲームなどの多くのアプリで一般的な更新方法です。

有名な Honor of Kings は、ユーザーがアプリ内でデータ パッケージを直接ダウンロードしてアップデートを取得できるように、ホット アップデートを頻繁に使用します。これにより、ユーザーはアプリケーションのダウンロードに時間とトラフィックを費やすことがなくなります。

ホットアップデートの技術的価値

アプリ開発者の観点から見ると、「ホット」とは、バージョンをリリースせずに更新、バグ修正、機能のリリースを行うことを指し、開発者がアプリストアのレビューメカニズムをバイパスし、レビューの長時間待機や複数回の拒否を回避できるようになります。

ホット アップデートが登場する前は、クラスの動的な読み込みは、リフレクション アノテーション、リフレクション呼び出し、リフレクション インジェクションを通じてすでに実現できていました。ホット アップデートの本質は置換であり、実行時に新しいクラスとリソース ファイルのロードを置換する必要がある場合、それはホット操作と見なされます。

ホットアップデートテクノロジーの選択

実際、インターネット大手各社は独自のホット アップデート テクノロジを持っており、現在、代表的なテクノロジはクラス ローディングと基礎的な置換の 2 つのカテゴリに分類できます。

1. クラスローディング

ホットフィックスの効果を得るには、バグ修正に関連するクラス ファイルを配列の先頭に挿入するだけで済みます。クラス ロード スキームは適時性が低く、効果を発揮するにはコールド リスタートが必要ですが、Fan Guoguang の修復にはほとんど制限がありません。代表的なものとしては、Qzone Super Patch、WeChat Tinker などがあります。

2. 最下層の交換

基礎となる置換は nativite ソリューションであり、その操作はネイティブの Filed ポインターを変更してメソッド置換を実装することで、再起動せずにすぐに有効になり、アプリケーションのパフォーマンスを消費しません。

基礎となる代替ソリューションには多くの制限があり、再起動しなくても有効になりますが、読み込みが速く、すぐに有効になります。代表的なものには、Alibaba ベースの AndFix と Sophix が含まれます。さまざまなホット アップデート ソリューションをさらに比較すると、次の図を使用して要約できます。

コントラスト角

アンドフィックス

アリ・ハティックス

ソフィックス

考えること

メソッドの置換

サポート

サポート

サポート

--

方法の増加または減少

サポートしません

サポートしません

コールドスタートのサポート

--

リフレクションコール

静的スキームをサポート

静的スキームをサポート

コールドスタートのサポート

--

修正方法

すぐに効果的

すぐに効果的

自動判定

コールドスタート

セキュリティメカニズム

なし

暗号化送信と署名検証

暗号化送信と署名検証

暗号化送信と署名検証

パフォーマンスの損失

ほぼ損なし

ほぼ損なし

レン・チージンは損失が少ない

より高い

パッチサイズ

小さい

小さい

小さい

小さい

ホットアップデートとはホットオペレーションの一種で、アプリの実行動作を変更する技術であり、その本質は、コード内での煩雑な操作であるフック操作を置き換えに利用することです。セキュリティ上の理由から、Google と Apple はホット アップデートをサポートしていませんが、このブラック テクノロジーは中国の特殊な国情のもとでのみ登場しました。

より簡潔で信頼性の高いホット アップデート メカニズムはありますか?

答えは「はい」です。

軽量のホットアップデートメカニズム

また、国内のインターネット企業や開発者の継続的な関与により、ミニプログラムの形でビジネスを遂行する方法が登場しており、2017 年に WeChat がミニプログラムを開始して以来、Alipay、Baidu、Byte などの大手メーカーがミニプログラムに投資してきました。ミニプログラムの研究開発 システムでは、ミニプログラムが市場に広く認知され、高品質な操作体験により、ユーザーがすぐにアプリをダウンロードしてマーチャントサービスを利用するという本来の習慣も変わりました。

しかし考えたことはありますか, ミニ プログラムはホット アップデート メカニズムでもあります。WeChat や Alipay などのプラットフォームの場合、ミニ プログラムによって実行されるビジネスは、バックグラウンドでのアップロードと上場廃止の管理を通じて管理でき、この方法はユーザーにとって完全に透過的です。コードに侵入することはありません。上記の集中ホット アップデート方法と比較すると、利点も明らかですが、この方法にもしきい値があります。

すべての企業が、小規模なプログラムを実行できるアプリを作成するために、WeChat や Alipay などの大手メーカーのような研究開発技術とコストを備えているわけではなく、舞台裏では複雑なコンパイルおよびレンダリング技術を習得する必要があります。

市場には、あらゆるアプリでこの機能を実現するのに役立つ、比較的成熟した小規模プログラム コンテナ テクノロジーがいくつかあります。たとえば、FinClip SDK 統合このメソッドを使用すると、独自のアプリで小さなプログラムを実行できるようになります。わかりやすく簡単に言うと、「ネイティブ+ミニプログラム」のハイブリッド開発モデルで、ミニプログラムをそれぞれのアプリ内で実行し、肥大化したアプリの機能を分割し、各機能モジュールが連携できるようにする開発モデルです。デカップリングによりモジュール型開発が実現し、各ビジネス モジュールは相互に影響を与えず、管理バックグラウンドを通じてリアルタイムの動的な更新とリリースを実現できます。

おそらく誰もが今考えているのは、H5 も実装できるのに、なぜ小さなプログラム コンテナを使用する必要があるのか​​ということでしょう。

非常にシンプルですが、H5では画面が白くなるなどユーザーエクスペリエンスに大きな影響を与える問題が多発しており、ユーザーエクスペリエンスを追求するアプリにとっては非常に忌避的な問題です。正直なところ、さまざまな銀行アプリに埋め込まれている H5 ページを使用するときは、読み込みが遅く、さまざまなカードが使用されるため、非常にイライラします。

ミニプログラムのネイティブライクなエクスペリエンス、各種権限の取得、キャッシュの保存などは、以前の H5 が残したこれらの問題を正確に解決します。

ホット アップデートについては議論すべきことがたくさんありますが、どのような見解や意見がありますか?

おすすめ

転載: blog.csdn.net/speedoooo/article/details/127615526#comments_27591123