I am new to Android / Android Game Development. I wrote a few basic Apps in Android Studio and want to make an 2D game like Flappybird/Crossyroad/Jetpack Joyride.
What exactly do I have to do for this (download,install,learn)?
Do I need an Engine, what exactly is an Engine, so dont I need Android Studio anymore.
Do I have to programm in Java? (I heared that an Engine can be in C# but how can this works fine on android[which is Java based? ])
So, I'm currently in the research and design phase for the development of a game right now so take this information out with a grain (or pinch) of salt:
A game engine is a what takes your game's data and "talks" to the hardware. Most game engines are written in C/C++. How this relates to Java game development is that when you write code in Java, and use Javac to compile your code, javac outputs that compilation to java-byte code, this in turn is read by a JVM. That in, mind the JVM is written in C. So what's happening is effectively a hand wave double compilation, speed and efficiency are sometimes sacrificed for readability and ease of use.
Essentially by using a Java based engine you're adding another layer of communication between your game and the hardware, which can affect performance.
A game engine can keep any customizable modules of your code from needing recompilation by utilizing a scripting language (like Lua or C#).
Using an engine for your game is best practice & industry standard.
There are a number of engines out there for you to use: Wiki Article
You should pick one that works best for your development environment and project lifecycle. That being said, I'm really looking forward to giving defold a shot. It is 2D first, with the capability of publishing to most major platforms and being free, puts it right in line with my current project.
I hope this helps!