Comparison of Java and Android API


This article compares the application programming interfaces APIs and virtual machines VMs of the programming language Java and operating system Android

While most Android applications are written in Java-like language, there are some differences between the Java API and the Android API, and Android does not run Java bytecode by a traditional Java virtual machine JVM, but instead by a Dalvik virtual machine in older versions of Android, and an Android Runtime ART in newer versions, that compile the same code that Dalvik runs to Executable and Linkable Format ELF executables containing machine code

Java bytecode in Java Archive JAR files is not executed by Android devices Instead, Java classes are compiled into a proprietary bytecode format and run on Dalvik or compiled version thereof with newer ART, a specialized virtual machine VM designed for Android Unlike Java VMs, which are stack machines stack-based architecture, the Dalvik VM is a register machine register-based architecture

Dalvik has some traits that differentiate it from other standard VMs:1

  • The VM was designed to use less space
  • The constant pool has been modified to use only 32-bit indexes to simplify the interpreter
  • Standard Java bytecode executes 8-bit stack instructions Local variables must be copied to or from the operand stack by separate instructions Dalvik instead uses its own 16-bit instruction set that works directly on local variables The local variable is commonly picked by a 4-bit virtual register field

Because the bytecode loaded by the Dalvik virtual machine is not Java bytecode and due to the way Dalvik loads classes, it is impossible to load library packages as JJAR files A different procedure must be used to load Android libraries, in which the content of the underlying dex file must be copied in the application private internal storage area before it is loaded2

Contents

  • 1 System properties
  • 2 Class library
    • 21 javalang package
    • 22 Graphics and widget library
      • 221 Look and feel
      • 222 Layout manager
    • 23 javabeans package
  • 3 See also
  • 4 References

System propertiesedit

As is the case for the Java SE class System, the Android System class allows retrieving system properties However, some mandatory properties defined with the Java virtual machine have no meaning or a different meaning on Android For example:

  • javaversion property returns 0 because it is not used on Android
  • javaspecificationversion invariably returns 09 independently of the version of Android used
  • javaclassversion invariably returns 50 independently of the version of Android used
  • userdir has a different meaning on Android
  • userhome and username properties do not exist on Android

Class libraryedit

Current versions of Android use the latest Java language and its libraries but not full graphical user interface GUI frameworks, not the Apache Harmony Java implementation, that older versions used Java 8 source code that works in latest version of Android, can be made to work in older versions of Android

javalang packageedit

By default, the default output stream Systemout and Systemerr do not output anything,3 and developers are encouraged to use the Log class, which logs Strings on the LogCat tool4 This has changed at least from HoneyComb, and they now output to the log console also

Graphics and widget libraryedit

Android does not use the Abstract Window Toolkit nor the Swing library User interfaces are built using View objects Android uses a framework similar to Swing, based on Views rather than JComponents However, Android widgets are not JavaBeans: the Android application Context must be provided to the widget at creation

Look and feeledit

Android widget library does not support a pluggable look and feel architecture The look and feel of Android widgets must be embedded in the widgets However, a limited ability exists to set styles and themes for an application5

Layout manageredit

Contrary to Swing where layout managers can be applied to any container widget, Android layout behavior is encoded in the containers6

javabeans packageedit

Android includes only a small subset of the javabeans package PropertyChangeEvent and related classes

See alsoedit

  • Android operating system
  • Java programming language

Referencesedit

  1. ^ Rose, John 2008-05-31 "with Android and Dalvik at Google I/O" Retrieved 2008-06-08 
  2. ^ Fred Chung 2011-07-28 "Custom Class Loading in Dalvik" Google Retrieved 2011-11-27 
  3. ^ "Android Debug Bridge" Google Retrieved 2009-05-31 By default, the Android system sends stdout and stderr Systemout and Systemerr output to /dev/null 
  4. ^ "Reading and Writing Logs" Google Retrieved 2011-11-27 
  5. ^ "Applying Styles and Themes" Google Retrieved 2011-09-03 
  6. ^ "Common Layout Objects" Google Retrieved 2011-09-03 


Comparison of Java and Android API Information about


Comparison of Java and Android API
Comparison of Java and Android API

Comparison of Java and Android API Information Video


Comparison of Java and Android API viewing the topic.
Comparison of Java and Android API what, Comparison of Java and Android API who, Comparison of Java and Android API explanation

There are excerpts from wikipedia on this article and video