众所周知,Android apk可能由Java代码、jar、aar、so、c代码和资源文件编译后生成。 别人可以通过反编译手段得到jar包和资源文件, 但我们不希望别人看到我们的劳动成果该怎么办呢? 有以下几个方法:
第一个方法: 混淆编译,这是常规套路,市面上大部分应用都使用这个技术。 它是Android提供的一个机制,生成的dex文件在反编译后都是以类似a、b、c的方式命名,对于Java高手来说这些信息足够了。 PS:dex2jar、jd-jui用于反编译dex和查看jar文件,apktool用于反编译出资源文件; 或者直接用Android Killer。
第二个方法: 用C语言实现核心逻辑, 编译生成的so文件是无法反编译的。 PS:Native层的C语言比Application层的Java性能更好,一般复杂耗时的运算要在Native层实现。常用的例如An