Help Understanding the Use of Unity with Android

I am working on making a 2d game for android and am new to both android development and the use of Unity. I have looked around quite a bit and people keep saying use java for Android and use C# for Unity. However, how do I use them together? Am I able to make calls to Unity via Java? How would I use C# in Android when its built to want java (I am pretty sure I can do this, but do not know how to go about it). Any suggestions or resources would be greatly appreciated.

Unity is designed to deploy your app to android without ever having to dive into the android SDK. You do all your scripting in either C# or UnityScript, and unity will automatically pack everything into an android APK file and push it to your test phone via USB.

Read up on how to set up your environment for Android development here: Getting Started with Android.

If you have an android phone and a USB port, you can deploy the unity sample game to a test phone within an hour.

As for the choice of programming language…
UnityScript will be more familiar to a Java programmer and the simple examples are written in UnityScript. If you’re going to get into doing more complex things, you will come to appreciate the power of C#. In general the more complex professional assets are written in C#. Both have their strengths (simplicity vs. power) but don’t mix them within your project. Once you start your project, pick one and stick with it.

You should only need to write native Java code if you have to do something performance intensive that is not handled by Unity’s built-in functions (like real-time image processing for example). For most projects you will never need to write native code.