I am familiar with Unity and in the process of learning android SDK when the announcement about unity android basic came out.
What would be the advantages and disadvantages of using the android SDK directly versus development using Unity Android?
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It only takes a minute to sign up.Sign up to join this community
Update Unity 5.x There is a detailed manual on how to write native code plugins and call them from within Unity http://docs.unity3d.com/Manual/PluginsForAndroid.html
!Since Unity 4.x has been already released, and Android went through a lot of changes you should consider this answer as a reference and not state of the art since it might be outdated!
Sorry, but Ricket is wrong: Unity provides full access via API to the Android SDK, which is also required before working on Android Games with Unity:
Before you can run Unity Android games on the actual device, you'll need to have your Android developer environment set up. This involves downloading and installing the Android SDK with the different Android plaforms and adding your physical device to your system (this is done a bit differently depending on whether you are developing on Windows or Mac). This setup process is explained on the Android developer website, and there may be additional information provided by the manufacturer of your device. Since this is a complex process, we've provided a basic outline of the tasks that must be completed before you can run code on your Android device or in the Android emulator. However, the best thing to do is follow the instructions step-by-step from the Android developer portal. Access Android Functionality
Unity Android provides a scripting APIs to access various input data and settings. You can find out more about the new scripting classes on the Android scripting page. Exposing Native C, C++ or Java Code to Scripts
Unity Android allows you to call custom functions written in C/C++ directly (and Java indirectly) from C# scripts. To find out how to bind native functions, visit the plugins page.
If you want to start developing a game on a certain level of quality, and want quick success you should choose Unity over the pure SDK, because Unity gives you a lot of tools which make it easier to develop without worrying for little things.
Well they are completely different! The Android SDK lets you write Android apps from scratch in Java. Unity is a game creation package in which you drag-and-drop, add scripts, etc. and then hit a button to export a complete Android application.
Activity(like a 'screen') to your app, or edit it in any way except in the Unity interface
Note that I don't have experience with the Android function of Unity (I do have general Unity experience though) so please correct me (or just edit this post) if the Unity category is wrong in any way.
Unless you know Java and absolutely no C++ or C#, I could never recommend using the android api for anything other then masochism or a front end to a web service. This is coming from 5 or so years of working on Android, for some of the major players. I'll spare you the book I could write on this topic, but the android api just isn't mature enough in design or implementation for prime time yet. And I think before it gets there, the folks at google will need to do some serious soul searching as to their dev methodologies. Just some food for thought, why are all the third part tools and API's blowing googles own tools out of the water?