自己写的代码混淆时需要注意什么?初学proguard,以及混淆与平时的代码规范有什么联系
欢迎选择我的课程,让我们一起见证您的进步~~
考えるべきは、クラスやメソッドが誰のためのものなのか、難読化した後に見つかるかどうかだと思います。たとえば、アクティビティやサービスなどはマニフェストファイルに登録されており、システムがそれらを呼び出します。したがって、混同することはできません。カスタム コントロールも同様で、レイアウト ファイルに表示され、起動時にシステムによって呼び出されるため、混同することはありません。ネイティブ メソッドもありますが、メソッドの命名規則を参照することで混同することはありません。このブログを参照してください: http://blog.csdn.net/dai_zhen....エラーが発生した場合でも、何が混乱すべきかを考える必要があります。たとえば、以前は ionic を使用していましたが、混乱が続いてエラーが発生しました。その後、JavaScript によって呼び出されるローカル コードのクラスがあることを発見しました。名前を覚えていない) このクラスは、構成ファイルで宣言されているものはおそらくリフレクションを通じて呼び出されるので、混同することはできません。
難読化で注意すべき最も重要なことは、反射 を使用するコードの部分です。リフレクションの使用は主にメソッド名または属性名に基づいているため、これらの名詞が混同されないように注意する必要があります。コードが正常に実行されるようにするためです。一般に、Android 公式またはサードパーティがパッケージを提供する場合、これらの仕様は異なりますが、リフレクション部分を使用するコードの混乱を避けるために、ほぼすべてのルールの中心となる概念は同じです。
反射
反映されたコード、システム インターフェイス、JNI インターフェイス、シリアル化と逆シリアル化、およびサーバーと対話する JavaBeans を混同することはできません。サードパーティのパッケージを使用する場合は、これらのパッケージの混同ルールを確認する必要があります。結局のところ、一般的に使用されるサードパーティのパッケージはオープンソースであり、難読化されているかどうかは関係ありません。
前のプロジェクトbugで遭遇したことの 1 つは混乱によって引き起こされました。 String内にクラス名を書きます。難読化後はクラス名が変更され、クラスが見つからなくなります。 その理由を見つけるのに長い時間がかかりました。bug とても混乱しています。
bug
String
考えるべきは、クラスやメソッドが誰のためのものなのか、難読化した後に見つかるかどうかだと思います。たとえば、アクティビティやサービスなどはマニフェストファイルに登録されており、システムがそれらを呼び出します。したがって、混同することはできません。カスタム コントロールも同様で、レイアウト ファイルに表示され、起動時にシステムによって呼び出されるため、混同することはありません。ネイティブ メソッドもありますが、メソッドの命名規則を参照することで混同することはありません。このブログを参照してください: http://blog.csdn.net/dai_zhen....エラーが発生した場合でも、何が混乱すべきかを考える必要があります。たとえば、以前は ionic を使用していましたが、混乱が続いてエラーが発生しました。その後、JavaScript によって呼び出されるローカル コードのクラスがあることを発見しました。名前を覚えていない) このクラスは、構成ファイルで宣言されているものはおそらくリフレクションを通じて呼び出されるので、混同することはできません。
難読化で注意すべき最も重要なことは、
反射
を使用するコードの部分です。リフレクションの使用は主にメソッド名または属性名に基づいているため、これらの名詞が混同されないように注意する必要があります。コードが正常に実行されるようにするためです。一般に、Android 公式またはサードパーティがパッケージを提供する場合、これらの仕様は異なりますが、リフレクション部分を使用するコードの混乱を避けるために、ほぼすべてのルールの中心となる概念は同じです。反映されたコード、システム インターフェイス、JNI インターフェイス、シリアル化と逆シリアル化、およびサーバーと対話する JavaBeans を混同することはできません。サードパーティのパッケージを使用する場合は、これらのパッケージの混同ルールを確認する必要があります。結局のところ、一般的に使用されるサードパーティのパッケージはオープンソースであり、難読化されているかどうかは関係ありません。
前のプロジェクト
bug
で遭遇したことの 1 つは混乱によって引き起こされました。String
内にクラス名を書きます。難読化後はクラス名が変更され、クラスが見つからなくなります。その理由を見つけるのに長い時間がかかりました。
bug
とても混乱しています。