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?


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.

source unity manual


  • if you already have assets and more complex models
  • take advantage of many file formats
  • fast progress if you already have a design and know how the game should look like

Android SDK:

  • might consider this for programming starter 2D games
  • good start up to learn android basics which experience can be taken into further developement with Unity

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.

  • 1
    \$\begingroup\$ so If I don't know the android SDK well you'd suggest using it for the current project and potentially Unity for later ones once I've got a grasp of it? \$\endgroup\$ – lathomas64 Mar 1 '11 at 21:12
  • 1
    \$\begingroup\$ Yep, since you want to make a small light-weight game you should use simple tools. Sometimes a whole game engine is far too much for a small game, that's what I experienced often, especially when I tried to code 2D games within 3D engines. Sure it is possible, and easy if you have all your assets ready, but it's more think-work to do, because you still need to operate everything in Vector3 space. \$\endgroup\$ – daemonfire300 Mar 2 '11 at 11:08

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.

Android SDK:

  • Write the app from scratch
  • Complete control over exactly what your game does and looks like; you can do anything
  • Much more work and knowledge involved
  • Write everything in Java


  • Make a game project, import assets, arrange your scenes, etc. within the Unity interface
  • Script actions for the objects in JavaScript, C# or Boo
  • Test the game on PC and deploy to multiple platforms including Android
  • No Java needed (no Android SDK needed)
  • No control over the final app; it runs with the Unity engine and you can't for example add an extra Android Activity (like a 'screen') to your app, or edit it in any way except in the Unity interface
  • Large .apk size because the whole Unity engine (about 10MB) is packed into your application no matter how much of it you actually use.

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?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.