我在Stack Overflow上遇到过这个问题: How to avoid reverse engineering of an APK file?
但是,如果他们说的是真的,并且你无法完全保护代码,那么我仍然会有一个问题:
当你想要保密的算法时,你会怎么做?我真的很难相信像Facebook,Gmail等大型应用程序只会混淆他们的代码。不要他们以某种方式将Android Java代码连接到运行所有后台内容的远程服务器上吗?
例如:您是否可以在Android中创建一个按钮连接到远程服务器,该服务器将在服务器上执行一些PHP脚本,然后将数据返回到应用程序,就像在Web开发中一样?还是有另一种方式?
(*目前正在尝试学习Android开发,所以也许它在我正在观看的其他视频中有答案,但我现在很好奇)
答案 0 :(得分:2)
你不是。如果你愿意,你可以对谷歌,Facebook或任何其他应用程序进行逆向工程(尽管对谷歌而言,很多有趣的算法都在服务器端,而不是客户端)。
这与任何其他应用程序没有什么不同。我已经拆解了DOS程序,并弄清楚他们是如何与他们控制的硬件进行交互的。如果客户端上存在代码,则可以进行逆向工程。如果处理器需要能够运行它,那么人类就可以读取它。
你最好的选择就是不要担心。您的代码不是那么特别,或者与其他需要保护的应用程序不同。它的宝贵之处在于花在编写,推广,围绕它创建业务上的时间。在99.999%的情况下,代码本身很简单。如果你真的有一些独特的东西,你可以考虑专利,但代码的价值在于确保正确的时间,而不是保密。
答案 1 :(得分:0)
将您的顶级sekrit算法放在某个服务器上,然后通过网络调用它。 ProGuard将不阻止逆向工程。调查REST
。