14

I know that Android uses the Java language with a limited Java SDK and that Google claims it isn't Java. But is it right to say that Android is a Programming language? Or is it more right to say that Android is a framework in Java? Or is both true?

1

5 Answers 5

37

Android is an OS (and more, look below) which provides its own framework. But it is definitely not a language.

From developer.android.com

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

6

Android does not use the Java language. It has an offline compilation process that translates JVM bytecode to the Dalvik bytecode that Android understands, but there's nothing that comes with Android that directly understands or works with Java. Instead, you use other existing tools to compile Java (or any other JVM language) to bytecode, and then hand that off to Dalvik to go the rest of the way.

4

Java is simply the supported language of choice for Android development. Google chose to create and SDK for Java language and a Plugin for the popular Eclipse Java IDE, so there was a easily available tool set to create Android apps in a popular language.
The confusing part here is that Java the language and Java the virtual machine are two different things. When a standard Java program runs on your PC, it's running code that was compiled into byte code meant to run in Sun Microsystems Java Virtual Machine. Basically Android has its own virtual machine that runs byte code as well. When you run and Android app, its running code that was compiled into the byte code that the Android virtual machine understands. So, while Java is the language of choice, you could technically write android apps in any language provided you had the means to compile it into Android byte code. (Although I don't think any tools are available for other languages)

1
  • 1
    Looks to me like dx can be run on any JVM bytecode: Java, Jython, Scala, take your pick. Automating it would mainly involve modifying the Ant rules.
    – geekosaur
    Mar 18, 2011 at 3:35
3

Android is a free open source platform available for anyone to use. The Android operating system is a multi-user Linux system in which each application is a different user. And Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model.

2

Android is an open-source software stack (a solution stack is a set of software subsystems or components needed to deliver a fully functional solution, e.g. a product or service) for mobile devices that includes an operating system, middleware and key applications. So you are partially correct in considering it as a framework.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.