When the average netizen thinks android, they're more likely to think of Java. It's not exactly a wrong assumption seeing as Java has been the official language of Android development. Most people who used mobile phones in the early 2000s can attest to the dominance of Java. Be that is may, the world of software development has evolved to the point that we now write the code that writes the code. Yes, that's not a grammatical error, we have high-level languages and frameworks that transpile to other languages.
A RELATABLE EXPLANATION
Because of the above, one doesn't need to learn Java to develop android applications. Other software programming languages have been used to create high-level frameworks that when written that when compiled, is translated to Java, kind of like Google Translate for code. As of today, we have several languages and frameworks that are used to create android apps and I will be writing about them today (albeit a brief summary). We have major languages that had to create android frameworks due to their popularity.
INTRODUCING THE FRAMEWORKS
Kotlin is a programming language that is touted to be a replacement for Java in Android development because it's a lot neater and easier to use than Java. Kotlin is closely related to Java as they both share the same libraries which give Kotlin the same functionality as Java.
Next up on my small list is C#, C# is a popular programming language (belonging to Microsoft) that rivals Java in functionality and use-case, Xamarin is a framework that uses C# to write code that can be used to build Android and other OS applications.
We have Flutter which is a very easy framework used to develop multiplatform applications (IOS, Android etc), Flutter is a framework built on Dart programming language and is owned by Google. Flutter is said to be open-source (anyone can contribute to it).
Another popular android programming construct is ReactNative, this is another open-source framework that is owned by Facebook and allows developers to create multiplatform applications (Android included), it is built on Javascript programming language.
Lastly, for today we look at Ionic, which is also used to create mobile apps and is built on Angular (a framework for frontend development that is built on Typescript), Ionic isn't considered by many to be as popular as the others but it's quite useful and has widespread adoption.
FINALLY
The above are the most popular frameworks (and languages) used in creating cross-platform apps. There are however downsides to not using the default Android programming language. As always, there will be tradeoffs. Frameworks can't give the exact same performance or functionality as the native android language (Java and Kotlin), this means that there are some features of Android that are only possible when writing code with Android native languages. There are a lot of advances being made by frameworks to close this gap, however, a keen observer will always feel like something is missing when using apps made with frameworks.