Is the code the same every time it’s confused? And If my SDK is obfuscated for the second time, will the result be the same as that of the first time?
No it will not be the same, it’s important to keep track of the different mapping files across different versions of your project. Depending on the use case you could use the
-applymapping option to apply the same obfuscated names to unchanged parts of code. You can find more information on this option here: ProGuard manual | Usage | Manual | Usage
If you aim to make reverse engineering more difficult for your project I would advise not to use this option. When the obfuscated names change after an update, the reverse engineer needs to start all over again.