Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
2  
This question is hard to understand. Please provide your definition of "programming language". –  S.Lott Feb 25 '11 at 10:56
    
here it is google.com/search?btnG=1&pws=0&q=android+wiki ... –  Wildling Oct 6 '11 at 16:28

5 Answers 5

up vote 31 down vote accepted

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.

share|improve this answer

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.

share|improve this answer

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)

share|improve this answer
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 '11 at 3:35

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.

share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.