2017-02-09 6 views
3

Ich entwickle eine Android-Bibliothek, und ich möchte den Code verstecken. Ich benutze andere Bibliothek, und für einige von ihnen, wenn Sie versuchen, ihren Code mit Android Studio zuzugreifen, erhalten Sie nur die Liste der Methoden der Klasse und "/ * kompilierten Code * /" in. Ich benutze Pro-Guard, aber ich kann immer noch auf den Quellcode meiner Bibliothek zugreifen. Selbst wenn die Namen der Methoden und Members geändert wurden, ist der Code immer noch lesbar und es ist möglich, alle hartcodierten Strings zu lesen.Ausblenden einer Bibliothek Quellcode

Wie verberge ich meinen Code auf dieselbe Weise wie diese Bibliotheken?

+0

Überprüfen Sie diese http://stackoverflow.com/a/9519306/2870088 –

Antwort

2

Android Studio ersetzt den tatsächlichen Code durch etwas wie /* compiled code */ nur, wenn Sie nicht den tatsächlichen Quellcode für die Bibliothek haben und der Decompiler nicht aktiviert ist. Aber es ist trivial, entweder den Quellcode anzuhängen oder einen Decompiler zu installieren.

Sie können den Bytecode einer beliebigen Klasse mit javap anzeigen. Einzelheiten finden Sie unter Is it possible to view bytecode of Class file?.

Zurück zu Ihrer ursprünglichen Frage: Nein, es ist nicht möglich, Ihren Code tatsächlich zu verbergen, da der Code tatsächlich ausgeführt werden muss. Und wenn der Code dort ist, können Sie den Bytecode sehen und ihn dekompilieren. Die beste Option, die Sie haben, ist, den Code mit Proguard zu verschleiern, der Sie nicht sehr weit bringen wird, entweder Ihren Code zu verbergen. Siehe How to avoid reverse engineering of an APK file? und Android ProGuard how to hide/obfuscate source code of exported library.

Verwandte Themen