Recently, at conferences,
the topic of how to create Android applications in various programming languages besides Java is increasingly being
discussed .
Android is not perfect, but for a pragmatic developer the best mobile platform for open source projects. But all applications run under Dalvik VM, so you will have to deal with the Java environment anyway.

What if you do not want to deal with Java, but with this to write mobile applications for Android? In this case, there are various options:
- web application
Android Official Web Application Documentation
Mobile Boilerplate - cross-platform development tools
PhoneGap (JavaScript, HTML5, CSS3)
Appcelerator Titanium
Rhomobile rhodes - alternative languages
Ruboto (JRuby)
Mirah
Scala
Clojure
Kawa - native development tools (NDK)
- non-free alternatives
Monodroid
Adobe AIR - Scripting Layer for Android (SL4A)
Official documentation , supported by Beanshell, JavaScript (Rhino), JRuby, Lua, Python, Perl, PHP, Shell, Tcl
')

Each approach has its advantages and disadvantages. Of all the above, web applications, cross-platform development tools, Scala and NDK are considered the most realistic ways.
As an additional study, we can recommend a detailed
Python for Android article just published in the Linux Journal.