Personally I do not understand a purpose of obfuscated.
Just because I don't understand or fully agree with something, does not mean it isn't a better method. For example, its common practice for people who want to succeed in other fields, to copy the methods of more successful people in the same field. I haven't checked, but I would say the big boys obfuscate, and I assume they know better than me, so I'll take their lead.
At first, to hack a code is enough complex task for dilettantes.
1) Typically even author can't understand own logic since some monthes.
I know I have looked into APK's with a simple zip expander to check shell commands where scripts have been simply stored as text (superuser methods). What I am trying to give an example (as shell stuff is very different to java), is that I or others may simple wish to get a single line, not everything. ie a "leg up" on your competition
2) Java code generated by B4A even without "obfuscated" is more complex for understanding than "native" java code.
It may be more so, but when compared to other obfuscation, maybe not. I cant recall exactly, but when I have done some internal android shell dump on another APK compared to a B4A one, I can see all my class names un-obfuscated, with the method names obfuscated, but on another APK all the class names where a single letter, and appeared to somehow possess extra "depth" eg my code looked like:
while the other one looked like
I didn't try de-compiling it to see what actually came out, but it didn't look pretty. However, to an extent I agree with you in that the actual "meat" for me are the actual calls to java. In addition, all the calls into the B4A libraries, are un-obfuscated entry points.
So, we need to worry about professionals only. But for this category "obfuscated" is not an obstacle. In run time all is visible anyway.
But lets not go out of our way to make it too easy for
anyone
I think that alone protection is to move really secret algorithms to own webserver.
Its a sliding scale on how much you are ready to spend to protect what you do have. Maybe a small investment to make it a little less "enjoyable".
I guess in reality, the reason I obfuscate is to save any embarrassment from someone reading my code and seeing how bad it is, too easily.