Javaコードは、ホットフィックスを実装し、デバッグする方法を解決する方法を変更します

Javaコードは、解決する方法を変更しますか?ホットフィックスおよびデバッグ方法を達成するために?それはコードの変更を伴う場合、Java言語については、一般的には、問題を解決するためにJVMを再起動することを選択します。しかし、第2レベルのリカバリ・フォールトの実現の可能性を作成した平均近修復には時間がかかりますが、熱の修復が発生し、再起動、その後、あなたが説明しました。

 

Javaコードは、ホットフィックスを実装し、デバッグする方法を解決する方法を変更します

 

 

ホットフィックスのJava

テンセント部門、根底にあるバイナリからスタート(C言語):ティンカー:Javaのローディング機構から始まっアリ:DeXposed、andfix現在では、より多くの火災の熱リハビリテーションプログラムは、大きく二つの派閥に分かれています。今日は、主にJavaベースのローディング機構に修正プログラムの実施を検討します。

取得した要素は、リロード後、クラスに対応する(要素[] dexElements)DexPathListオブジェクトに配列自体を起動すると、アンドリュースクラスローダは、クラスをロードします。forループでは、最初のdexファイルのうちトラバーサル、およびので、長い間私たちは、配列要素の最初の要素に入れDEXファイルにパッケージ化良い修理クラスを作るよう、DEXファイルからクラスを取得することですクラスが良い修理クラスを取得するには、最新であることを確認します。

ホットフィックス実装手順:

1 DEX形式のパッチを得ました。(バグの実際の状況に応じて、コードを変更することができます)質問Javaファイルで修復; DEXファイル(DX指示プログラム)にパッケージ化クラスファイル、クラスファイルにJavaファイルをコンパイルします。

2、DEX形式のパッチを読み込みます。

3、ジャー、APK、zip形式のパッチをロードします。classes.dexにする必要があり、圧縮パッケージのこのタイプは、DEXファイルに配置する必要がありますが、また名前が必要であることに注意してください。

Javaのデバッグ

Javaのデバッグ・ツールは、トラブルショットコマンドの数が、キラーコマンド2、methodTraceとのredefineClassを提供します。

迅速な問題発見のためのmethodTraceコマンドは、情報を取得するために一時停止JVMのデバッグ方法なしで行うことができます。基本フォーマット:

MT -c -m

オプションのパラメータ:-d -t -i -n -time -uのように。

redefineClassのコマンドが実装ホット・フィックス、またJVMクラスのバイトコードを再起動して実行することなく行うことができます。問題を見つけるためにmtコマンドを使用している場合、あなたはオンラインの急速必要がある場合は、このコマンドを使用することができ、コードを修正します。formatコマンドを使用すると、次のとおりです。

[:class1Path className1:class2Path className1] -p RDF

そのようなクラスがすでにロードされているかどうかなど、自分のクラスの特定の情報を必要なターゲットJVMクラスで見つかった、と言うことができるにfindClassコマンドは、?負荷場合には、クラスのクラスローダ1などをロードします。このコマンドは、クラスの完全修飾名を入力しないことを可能にする、とあなたは、クラスにマッチする正規表現を入力することができます。

Javaのエンジニアは高給になりたい、あなたは戦闘の前提を置き、理論と実践的な、そしてあなたが効率的に学ぶ良い知識ベースの両方を必要とします。あなたがより良いJavaプログラミングを学習したい場合は、専門的な学習を選択することができます。

おすすめ

転載: www.cnblogs.com/qianfengzz/p/11573316.html