Native开发时,C++采用hardcose方式调用arktes类,是否会因为混淆而失败
Native开发时,C++采用hardcose方式调用arktes类,是否会因为混淆而失败
C++在Native开发中采用hardcode方式调用Java的arktes类时,通常不会因为混淆而失败。这是因为混淆通常针对Java代码,而C++是通过JNI(Java Native Interface)与Java代码进行交互的。混淆主要改变的是Java类的名称和方法签名,但JNI调用的本地方法不受这些更改的影响。
然而,需要注意的是,混淆可能会影响到其他与Java代码交互的部分,例如使用反射的代码。此外,如果混淆导致Java类或方法的签名改变,那么在C++代码中硬编码的JNI方法签名也可能会变得无效。
因此,虽然C++采用hardcode方式调用Java的arktes类不太可能因为混淆而失败,但在进行混淆时仍需谨慎,并确保测试所有与Java交互的代码路径。
会失败,通过配置keep可以解决。DevEco Studio会自动生成obfuscation-rules.txt和consumer-rules.txt文件, 但是它们默认不会包含任何混淆规则。你可以在这些文件中写混淆规则,或者也可以将规则写在其它文件, 然后将文件路径放到ruleOptions.files和consumerFiles中,如下面的例子所示:
详细可以参考文档:开启代码混淆。