Just precompiling the code to a library jar would not help much as they are readily decompiled using something like JD-GUI. In fact all the Basic4android jars are open to decompilation if you want to poke around inside them to see what's happening. That's what I did while Erel was developing Basic4android. He sent me built code without the source to try and when it didn't work as expected I poked around to see what the compiler produced and what was in the jars. Even though Basic4android produces Java source code I still tend to reach for the decompiler first if I want to look at the generated code.
There are such things as obfuscators that can make it more difficult to obscure the code but in the end it can still be deconstructed.