Напишите на JNI (C++, Android NDK), и еще с помощью ассемблера попробуйте "испортить" код чтобы декомпилятор Hex-Rays его не брал, еще в JNI можно сделать проверку на наличие методов в Java behavior, на имя пакета и т.д., и можно чтобы приложение "вылетало" без всякой информации в logcat, но все равно абсолютно любой код можно украсть имея знания и навыки, и на iOS тоже, если код нельзя дизассемблировать и отладить, то он и работать не будет.
Единственный способ защитить код это вынести на сервер, тогда код не украдут, но напишут бот, неизвестно что окажется проще, я сначала боты писал, потом только декомпилировать, дизассемблировать и отлаживать научился.