As long as you blacklist unneeded libraries on Kivy, you can get the size down to 5 - 10 MB. I personally don't believe this download size is such a problem for users (many native Java apps are upwards of 5 MB).
What is a problem is the start-up time and battery usage, both much harder problems to address. Because they require the Python interpreter, Kivy apps take significantly longer to start-up, and use significantly more battery power than Java apps. I have some hope that Micropython may eventually offer a solution to this for Python on Android, although porting Kivy to Micropython will be a major task.
For battery usage, i'd love to see data for this, i think drain will come from the amount of action you put in your interface, as well as background processing you'll do, kivy itself, being opengl and cautious about what to update when changes happen, shouldn't add a lot of overhead on this.
I don't think porting to micropython is considered an option, usually, when we want more efficient code, the solution is to do less python, more C, we have a nice integration with Cython, and don't hesitate to go with it as soon as needed.