0% found this document useful (0 votes)
38 views14 pages

Android: Introduction, Compatibility and Licensing

Android is an open-source software stack led by Google that consists of a Linux kernel, middleware/libraries, and applications. All Android apps run in their own process using the Dalvik VM, which is designed to run multiple VMs efficiently. Android enforces security between apps and the system using standard Linux facilities like user IDs plus a permission system. Compatibility is ensured by requiring devices to comply with Android Compatibility Definition and pass the Compatibility Test Suite. The Android source code is available under the Apache License while the Linux kernel uses GPL 2.0.

Uploaded by

sankarchnab
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views14 pages

Android: Introduction, Compatibility and Licensing

Android is an open-source software stack led by Google that consists of a Linux kernel, middleware/libraries, and applications. All Android apps run in their own process using the Dalvik VM, which is designed to run multiple VMs efficiently. Android enforces security between apps and the system using standard Linux facilities like user IDs plus a permission system. Compatibility is ensured by requiring devices to comply with Android Compatibility Definition and pass the Compatibility Test Suite. The Android source code is available under the Apache License while the Linux kernel uses GPL 2.0.

Uploaded by

sankarchnab
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

ANDROID

Introduction, compatibility and licensing

What is Android
Android is an open-source software stack for mobile devices, and a corresponding opensource project run by Open Handset Alliance led by Google. Google purchased the initial developer of the software, Android Inc., in 2005.

Design

Design cont.
Android consists of a kernel based on the Linux kernel, with middleware, libraries and APIs written in C application software running on an application framework which includes Java-compatible libraries based on Apache Harmony clean room development.

Dalvik VM
All applications written in Java and converted to the dalvik executable .dex Every android app runs its own process, with its own instance of the dalvik virtual machine Not a traditional JVM, but a custom VM designed to run multiple instances efficiently on a single device VM uses linux kernel to handle low-level functionality incl. security, threading, process and memory management

Security
Android is a multi-process system, in which each application (and parts of the system) runs in its own process. Most security between applications and the system is enforced at the process level through standard Linux facilities, such as user and group IDs that are assigned to applications. Additional finer-grained security features are provided through a "permission" mechanism that enforces restrictions on the specific operations that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.

Compatibility
Why? Allow customizable devices Create Common eco system Android compatibility is free and easy Obtain Android source code Comply with Android Compatibility Definition (ACD) doc List requirements that need to be met for devices to be compatible with a particular version on Android Pass the Compatibility Test Suite (CTS) Automated test harness running on desktop, manages test exectuion Test cases written, packaged as .apk to run on actual device or emulator Porting guide available for bringing up Android on custom HW

Licensing
The source code for Android is available under free and open source software licenses. Linux kernel (with Googles changes) is under GPL 2.0 and rest (including network and telephony stacks) under Apache License V 2.0

Why Apache Software License (ASL)


copyleft licenses (Like GPL) generally impose restrictions on redistribution of code in order to ensure that modifications and derivatives are kept open and distributed under similar terms. Permissive licenses like the ASL and BSD license are preferred by many companies because such licenses make it possible to use open-source software code without having to turn proprietary enhancements back over to the open source software community.

Why ASL cont.


Availability of Android under the ASL will ensure that a broader number of companies will be able to adopt the platform and build on top of it without having to expose the inner workings of proprietary technologies that give them a competitive advantage.

Trademark
In order to use the Android trademark, device manufacturers must ensure that the device complies with the Compatibility Definition Document (CDD) and then get permission from Google. Devices must also meet this definition to be eligible to license Google's closed-source applications, including the Android Market. Participation in the compatibility program is free of charge.

Java compatibility & Licensing


Java Compatibility Kit (JCK) - is an extensive test suite used by Oracle and licensees to ensure compatible implementations of the platform.

OpenJDK Context
JCK and the associated license did not initially allow users to compile or run the tests, but the right to see the code is not associated with tainting concerns. However, since the release of OpenJDK, a specific license allow to run the JCK in the OpenJDK context, that is for any GPL implementation deriving substantially from OpenJDK

You might also like