How to manage application code versions ? - General Questions and Answers

Hi ,
i'm using eclipse to write some applications for Android and i want to track changes in the code as i'm releasing new versions periodically
does someone can help me ?

Software Versioning and Revision Control System
I think I can help out cq point you in the right direction;
Apache Subversion (often abbreviated SVN, after the command name svn) is a software versioning and a revision control system founded and sponsored in 2000 by CollabNet Inc.
Developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly-compatible successor to the widely used Concurrent Versions System (CVS).
Subversion on SourceForge.net (WiKi)
Comparison of revision control software on WiKipedia
Senax

Related

Android NDK r3 and OpenGL ES 2.0!

Android Games WILL be improved thanks to NDK r3 and OpenGL ES 2.0
Developers on the Android platform have already been pushing the boundaries of Android gaming. Even Quake 3 has been seen running on the Android platform. Things can only get better with today’s announcement.
The Android Developers Blog today announced the availability of the NDK r3 that will let android developers directly access OpenGL ES 2.0 features.
Applications targeting Android 2.0 (API level 5) or higher can now directly access OpenGL ES 2.0 features. This brings the ability to control graphics rendering through vertex and fragment shader programs, using the GLSL shading language.
A new trivial sample, named “hello-gl2″, demonstrates how to render a simple triangle using both shader types.
With access to these enhanced OpenGL ES features game graphics should be greatly improved and we should start to see an awesome future for Android gaming. Obviously, we still need developers to take advantage of the new API and have the hardware powerful enough to use it, but everything is getting real close to serious gaming on Android.
Source: Android Developers Blog
Source: AndroidSPIN
-----
What is the Android NDK?
The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.
Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.
The NDK provides:
* A set of tools and build files used to generate native code libraries from C and C++ sources
* A way to embed the corresponding native libraries into application package files (.apks) that can be deployed on Android devices
* A set of native system headers and libraries that will be supported in all future versions of the Android platform, starting from Android 1.5
* Documentation, samples, and tutorials
This release of the NDK supports the ARMv5TE machine instruction set and provides stable headers for libc (the C library), libm (the Math library), OpenGL ES (3D graphics library), the JNI interface, and other libraries, as listed in the section below.
The NDK will not benefit most applications. As a developer, you will need to balance its benefits against its drawbacks; notably, using native code does not result in an automatic performance increase, but does always increase application complexity. Typical good candidates for the NDK are self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing, physics simulation, and so on. Simply re-coding a method to run in C usually does not result in a large performance increase. The NDK can, however, can be an effective way to reuse a large corpus of existing C/C++ code.
Please note that the NDK does not enable you to develop native-only applications. Android's primary runtime remains the Dalvik virtual machine.
Contents of the NDK
Development tools
The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin) platforms.
It provides a set of system headers for stable native APIs that are guaranteed to be supported in all later releases of the platform:
* libc (C library) headers
* libm (math library) headers
* JNI interface headers
* libz (Zlib compression) headers
* liblog (Android logging) header
* OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers
* A Minimal set of headers for C++ support
The NDK also provides a build system that lets you work efficiently with your sources, without having to handle the toolchain/platform/CPU/ABI details. You create very short build files to describe which sources to compile and which Android application will use them — the build system compiles the sources and places the shared libraries directly in your application project.
Important: With the exception of the libraries listed above, native system libraries in the Android platform are not stable and may change in future platform versions. Your applications should only make use of the stable native system libraries provided in this NDK.
Documentation
The NDK package includes a set of documentation that describes the capabilities of the NDK and how to use it to create shared libraries for your Android applications. In this release, the documentation is provided only in the downloadable NDK package. You can find the documentation in the <ndk>/docs/ directory. Included are these files:
* INSTALL.TXT — describes how to install the NDK and configure it for your host system
* OVERVIEW.TXT — provides an overview of the NDK capabilities and usage
* ANDROID-MK.TXT — describes the use of the Android.mk file, which defines the native sources you want to compile
* APPLICATION-MK.TXT — describes the use of the Application.mk file, which describes the native sources required by your Android application
* HOWTO.TXT — information about common tasks associated with NDK development.
* SYSTEM-ISSUES.TXT — known issues in the Android system images that you should be aware of, if you are developing using the NDK.
* STABLE-APIS.TXT — a complete list of the stable APIs exposed by headers in the NDK.
* CPU-ARCH-ABIS.TXT — a description of supported CPU architectures and how to target them.
* CHANGES.TXT — a complete list of changes to the NDK across all releases.
Additionally, the package includes detailed information about the "bionic" C library provided with the Android platform that you should be aware of, if you are developing using the NDK. You can find the documentation in the <ndk>/docs/system/libc/ directory:
* OVERVIEW.TXT — provides an overview of the "bionic" C library and the features it offers.
Sample applications
The NDK includes sample Android applications that illustrate how to use native code in your Android applications. For more information, see Using the Sample Applications.
Click to expand...
Click to collapse
You can download the Android NDK: here
just waiting for it ! Good job!
Kind of makes sense now why the binary 3D driver broke from 1.6->2.0
and i most care about whether our G1 are supported ?!
huhaifan1 said:
and i most care about whether our G1 are supported ?!
Click to expand...
Click to collapse
well if the rumors about every single android device being upgraded to 2.1 in the US are true then id think so. we already have partial 3D working, so i think with this release the devs will be able to make it work
Except the chip in the G1 is not built for 2.0.
IMHO, if you'll see 2.0 drivers on the G1 (or Hero) it'll be software. But I'd love to be proven wrong, so please do.
Chainfire said:
Except the chip in the G1 is not built for 2.0.
IMHO, if you'll see 2.0 drivers on the G1 (or Hero) it'll be software. But I'd love to be proven wrong, so please do.
Click to expand...
Click to collapse
from what ive read on androidspin and phandroid, some phones will receive a slimmer 2.1 that doesnt support lwp OTA. some devs have found ways to use software libs and kernel edits to use partial 3D acceleration in some 2.1 roms. Firerat and Case_ managed to get 3D and Youtube HD working on Canon's Roms. The next OpenEclair should have fully working 3D, lwps, and video according to wesgarner, so i think that this upcoming release mentioned in the article will provide more tools for our devs to use on the G1.
but when EXACTLY - like DATE - are they coming!?
chim4ira312 said:
but when EXACTLY - like DATE - are they coming!?
Click to expand...
Click to collapse
The NDK is available now, maybe the devs should look into it:
http://developer.android.com/intl/de/sdk/ndk/index.html
What is the Android NDK?
The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.
Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.
The NDK provides:
* A set of tools and build files used to generate native code libraries from C and C++ sources
* A way to embed the corresponding native libraries into application package files (.apks) that can be deployed on Android devices
* A set of native system headers and libraries that will be supported in all future versions of the Android platform, starting from Android 1.5
* Documentation, samples, and tutorials
This release of the NDK supports the ARMv5TE machine instruction set and provides stable headers for libc (the C library), libm (the Math library), OpenGL ES (3D graphics library), the JNI interface, and other libraries, as listed in the section below.
The NDK will not benefit most applications. As a developer, you will need to balance its benefits against its drawbacks; notably, using native code does not result in an automatic performance increase, but does always increase application complexity. Typical good candidates for the NDK are self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing, physics simulation, and so on. Simply re-coding a method to run in C usually does not result in a large performance increase. The NDK can, however, can be an effective way to reuse a large corpus of existing C/C++ code.
Please note that the NDK does not enable you to develop native-only applications. Android's primary runtime remains the Dalvik virtual machine.
Contents of the NDK
Development tools
The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin) platforms.
It provides a set of system headers for stable native APIs that are guaranteed to be supported in all later releases of the platform:
* libc (C library) headers
* libm (math library) headers
* JNI interface headers
* libz (Zlib compression) headers
* liblog (Android logging) header
* OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers
* A Minimal set of headers for C++ support
The NDK also provides a build system that lets you work efficiently with your sources, without having to handle the toolchain/platform/CPU/ABI details. You create very short build files to describe which sources to compile and which Android application will use them — the build system compiles the sources and places the shared libraries directly in your application project.
Important: With the exception of the libraries listed above, native system libraries in the Android platform are not stable and may change in future platform versions. Your applications should only make use of the stable native system libraries provided in this NDK.
Documentation
The NDK package includes a set of documentation that describes the capabilities of the NDK and how to use it to create shared libraries for your Android applications. In this release, the documentation is provided only in the downloadable NDK package. You can find the documentation in the <ndk>/docs/ directory. Included are these files:
* INSTALL.TXT — describes how to install the NDK and configure it for your host system
* OVERVIEW.TXT — provides an overview of the NDK capabilities and usage
* ANDROID-MK.TXT — describes the use of the Android.mk file, which defines the native sources you want to compile
* APPLICATION-MK.TXT — describes the use of the Application.mk file, which describes the native sources required by your Android application
* HOWTO.TXT — information about common tasks associated with NDK development.
* SYSTEM-ISSUES.TXT — known issues in the Android system images that you should be aware of, if you are developing using the NDK.
* STABLE-APIS.TXT — a complete list of the stable APIs exposed by headers in the NDK.
* CPU-ARCH-ABIS.TXT — a description of supported CPU architectures and how to target them.
* CHANGES.TXT — a complete list of changes to the NDK across all releases.
Additionally, the package includes detailed information about the "bionic" C library provided with the Android platform that you should be aware of, if you are developing using the NDK. You can find the documentation in the <ndk>/docs/system/libc/ directory:
* OVERVIEW.TXT — provides an overview of the "bionic" C library and the features it offers.
Sample applications
The NDK includes sample Android applications that illustrate how to use native code in your Android applications. For more information, see Using the Sample Applications.
Click to expand...
Click to collapse
This doesn't at all in any way say that we're getting 2.0 drivers for the G1. All it's saying is that phones with 2.0 will be able to directly access ES2.0 functions.
Which, really, has absolutely nothing to do with the driver issue we face. Unless you can point out something I missed.
Gary13579 said:
This doesn't at all in any way say that we're getting 2.0 drivers for the G1. All it's saying is that phones with 2.0 will be able to directly access ES2.0 functions.
Which, really, has absolutely nothing to do with the driver issue we face. Unless you can point out something I missed.
Click to expand...
Click to collapse
sorry i probably misunderstood the article =/
im still not very experienced with android development, i thought this would help the devs a little bit with getting 3d working (since theyre already doing that without official drivers)
I did indeed get a humongous boner on reading this earlier. It was enhanced by 3D.
My favorite part about this is the new ability to use openGL in apps! That means the entire face of our OS is going to change.
...and speaking of OS... Qualcom/htc just released a new radio for the G1. The G1 To this day holds over 50% of the android installed user base. There is no doubt the G1 will live beyond 1.X
bleah writing games in opengl es 1.0 was hard enough...
Gary13579 said:
This doesn't at all in any way say that we're getting 2.0 drivers for the G1. All it's saying is that phones with 2.0 will be able to directly access ES2.0 functions.
Which, really, has absolutely nothing to do with the driver issue we face. Unless you can point out something I missed.
Click to expand...
Click to collapse
agreed
the binary still needs to be available
as far as I can see with have two
the open source one
/system/lib/egl/libGLES_android.so
and the proprietary
/system/lib/egl/libGLES_qcom.so
the quoted text in the OP is basically stating that an Android developer will now be able to mix in a little c/c++ to get direct native access to opengl es
functions
Firerat said:
agreed
the binary still needs to be available
as far as I can see with have two
the open source one
/system/lib/egl/libGLES_android.so
and the proprietary
/system/lib/egl/libGLES_qcom.so
the quoted text in the OP is basically stating that an Android developer will now be able to mix in a little c/c++ to get direct native access to opengl es
functions
Click to expand...
Click to collapse
sorry guys like i said i misunderstood =/ i was hoping the NDK would provide some help but i now see its pretty much for apps, facepalm >_<;
edited the title to avoid further confusion lol
speedysilwady said:
edited the title to avoid further confusion lol
Click to expand...
Click to collapse
Was just about to do that, thanks .
I'm sure we'll get drivers eventually, either hacked or official. Just a matter of time.
Gary13579 said:
Was just about to do that, thanks .
I'm sure we'll get drivers eventually, either hacked or official. Just a matter of time.
Click to expand...
Click to collapse
haha no problem, glad to see i have a moderator type mentality. lol
yeah im sure we will, theyre already partially working, so its only a matter of time hopefully
What Chainfire said is that there is no hardware support for OpenGl ES 2.0 in msm720x chips. (refs here, sorry couldn't find official spec datasheet).
So even if 2.0 is supported, it will only be through software drivers implementation, which means really slow rendering.
spocky12 said:
What Chainfire said is that there is no hardware support for OpenGl ES 2.0 in msm720x chips. (refs here, sorry couldn't find official spec datasheet).
So even if 2.0 is supported, it will only be through software drivers implementation, which means really slow rendering.
Click to expand...
Click to collapse
Thats right.
But most Games will probably/hopefully still be written for OpenGL1.1. (Because of the userbase whatsoever)
For a start, but to focus at the future, too bad, the G1 will get old sooner

[SOURCECODE] Galaxy Fit S5670 GB SOUCECODE

HEllo people,
For people who have been looking for the source code of this phone recently,but are unable to download it due to the registration process at opensource.samsung.com, I am mirroring the source code! Download and Enjoy!
Source Code (127.18 MB)
PLEASE NOTE->
I will not be responsible for any bricking of the device while modification and/or addition of values to the Source Code or the Kernel.
What is Source Code?
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code, which can then be automatically translated to binary machine code that the computer can directly read and execute. An interpreter translates to machine code and executes it on the fly, while a compiler only translates to machine code that it stores as executable files; these can then be executed as a separate step.
Most computer applications are distributed in a form that includes executable files, but not their source code, which is useful to a user, programmer, or system administrator who wishes to modify the program or understand how it works.
The source code which constitutes a program is usually held in one or more text files stored on a computer's hard disk; usually these files are carefully arranged into a directory tree, known as a source tree. Source code can also be stored in a database (as is common for stored procedures) or elsewhere.
Source code also appears in books and other media; often in the form of small code snippets, but occasionally complete code bases; a well-known case is the source code of PGP.
The notion of source code may also be taken more broadly, to include machine code and notations in graphical languages, neither of which are textual in nature. An example from an article presented on the annual IEEE conference on Source Code Analysis and Manipulation:[1]
For the purpose of clarity ‘source code’ is taken to mean any fully executable description of a software system. It is therefore so construed as to include machine code, very high level languages and executable graphical representations of systems.[2]
The code base of a programming project is the larger collection of all the source code of all the computer programs which make up the project.
It has become common practice to maintain code bases in version control systems.
-> The Kernel and Source code is as seen on Samsung's website
-> Uploaded here in order to avoid regestration process on the website
-> Do NOT download this if you are not sure of what it is or how to edit these
-> Also, Do download if:
-You are planning to develop a kernel
-For Stable CM7 or Future releases
-You are studying the Code
- Bug fixing
- You are learning Kernel dev.
- You belong to the Kernel DEV. TEam of Fit!
------------------------------
CLICK ON TEH THANKS BUTTON, IT DOES NOT EXPLODE!!!
Can I change kernel is Windows or what?
No kernel developing is not supported in windows you need linux you need linux or mac os
omarhasan76 said:
No kernel developing is not supported in windows you need linux you need linux or mac os
Click to expand...
Click to collapse
VMWare or Virtual PC does the job.
Yes, Yes it does! You dont need to install Linux!
ya but its the same thing installing linux or using virtual machine
omarhasan76 said:
ya but its the same thing installing linux or using virtual machine
Click to expand...
Click to collapse
I meant the same.....
Which version/baseband ?
hey this source code is for galaxy ace gt s5830
i guess and not for fit ??

Need some help for setting up development environment ?

Hey guys, I have finally started learning a few things how to develop things, mostly I am learning how to develop a kernel and am using XDA university to learn although i have started reading a bit. I need some help setting up a environment on Ubuntu 12.04 and I have limited download speed and pack (2GB) so, I usually go for offline packages for Linux. Recently, I have found a website where I can download offline packages but I am confused allot choose which one and i want to limit my development to offline development (I know you would laugh at me by the word "offline development which makes no sense ). What I mean I can't sync my code online instantly and is there any way I can develop without using git.( I just want to download the source, compile it offline.) And as am still learning, i have exams coming over in March, Which will slow down my learning process.
All i need some help in setting up development environment offline and help me out with some stupid questions. I wanna focus on kernel development cuz am not much into ROM development, i don't know to use Photoshop or gimp for theming and am afraid to handle a big amount of coding in ROMs. I have spent less time with coding i.e. C++ , HTML, CSS( I don't remember anything now except for C++). The books am referring to are Linux kernel development, a few guides from XDA university for now , you could suggest me some books. I am just a Noob there are chances that all that i have written above might be obsolete All i need some help and point me right direction!
Which of the following packages I need?
1.git-arch (1:1.7.9.5-1) [universe]fast, scalable, distributed revision control system (arch interoperability)
2.git-buildpackage (0.5.32) [universe]Suite to help with Debian packages in Git repositories
3.git-cola (1.4.3.5-1) [universe]highly caffeinated git GUI
4.git-core (1:1.7.9.5-1)fast, scalable, distributed revision control system (obsolete)
5.git-corevirtual package provided by
6.gitgit-cvs (1:1.7.9.5-1) [universe]fast, scalable, distributed revision control system (cvs interoperability)
7.git-daemon-run (1:1.7.9.5-1) [universe]fast, scalable, distributed revision control system (git-daemon service)
8.git-doc (1:1.7.9.5-1)fast, scalable, distributed revision control system (documentation)
9.git-email (1:1.7.9.5-1) [universe]fast, scalable, distributed revision control system (email add-on)
10.git-gui (1:1.7.9.5-1) [universe]fast, scalable, distributed revision control system (GUI)
11.git-svn (1:1.7.9.5-1) [universe]fast, scalable, distributed revision control system (svn interoperability)
12.gitk (1:1.7.9.5-1)fast, scalable, distributed revision control system (revision tree visualizer)
13.gitpkg (0.21) [universe]tools for maintaining Debian packages with git
14.gitweb (1:1.7.9.5-1) [universe]fast, scalable, distributed revision control system (web interface )
please use numbers to specify the package!
Click to expand...
Click to collapse
PS:ignore my grammatical mistakes

[Complete INFO guide] ALL ABOUT ANDROID (4.3 updated)

WHAT IS ANDROID
in real mean(in science fiction) A robot with a human appearance.
Android may also refer to:
Android (board game), published by Fantasy Flight Games
Android (drug), brand name for the anabolic steroid methyltestosterone
Android (film), directed by Aaron Lipstadt
"Android" (song), by The Prodigy
the phone os you see(probably you are here for this)
Android is a Linux-based operating system designed primarily for touchscreen mobile devices; such as smartphones and tablet computers. The first Android-powered phone was sold in October 2008.
Android powers hundreds of millions of mobile devices in more than 190 countries around the world. It's the largest installed base of any mobile platform and growing fast—every day another million users power up their Android devices for the first time and start looking for apps, games, and other digital content.
Android gives you a world-class platform for creating apps and games for Android users everywhere, as well as an open marketplace for distributing to them instantly.
MORE DETAILED
Android™ is a computing platform designed for use in some smart phones and other devices. This technology, which is owned by Google, Inc., includes an operating system, software, and applications. The operating system is based on Linux®, which provides advanced computer processing. Android™ technology is maintained and continually developed by the Android Open Source Project (AOSP).
Google releases the code under the Apache License.This open source code and permissive licensing allows the software to be freely modified and distributed by device manufacturers, wireless carriers and enthusiast developers. Additionally, Android has a large community of developers writing applications ("apps") that extend the functionality of devices, written primarily in a customized version of the Java programming language. In October 2012, there were approximately 700,000 apps available for Android, and the estimated number of applications downloaded from Google Play, Android's primary app store, was 25 billion.
These factors have allowed Android to become the world's most widely used smartphone platform, overtaking Symbian in the fourth quarter of 2010, and the software of choice for technology companies who require a low-cost, customizable, lightweight operating system for high tech devices without developing one from scratch. As a result, despite being primarily designed for phones and tablets, it has seen additional applications on televisions, games consoles, digital cameras and other electronics. Android's open nature has further encouraged a large community of developers and enthusiasts to use the open source code as a foundation for community-driven projects, which add new features for advanced users or bring Android to devices which were officially released running other operating systems.
Android had a worldwide smartphone market share of 75% during the third quarter of 2012, with 500 million devices activated in total and 1.3 million activations per day.The operating system's success has made it a target for patent litigation as part of the so-called "smartphone wars" between technology companies
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.Tips & guides for learning how to better use Android Whether you're brand new to Android, or just want to learn how to get more out of your Android phone or Android tablet
INTERFACE
Android's user interface is based on direct manipulation, using touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching and reverse pinching to manipulate on-screen objects. The response to user input is designed to be immediate and provides a fluid touch interface, often using the vibration capabilities of the device to provide haptic feedback to the user. Internal hardware such as accelerometers, gyroscopes and proximity sensors are used by some applications to respond to additional user actions, for example adjusting the screen from portrait to landscape depending on how the device is oriented, or allowing the user to steer a vehicle in a racing game by rotating the device, simulating control of a steering wheel.
Android devices boot to the home-screen, the primary navigation and information point on the device, which is similar to the desktop found on PCs. Android home-screens are typically made up of app icons and widgets; app icons launch the associated app, whereas widgets display live, auto-updating content such as the weather forecast, the user's email inbox, or a news ticker directly on the home-screen. A home-screen may be made up of several pages that the user can swipe back and forth between, though Android's home-screen interface is heavily customizable, allowing the user to adjust the look and feel of the device to their tastes. Third party apps available on Google Play and other app stores can extensively re-theme the homescreen, and even mimic the look of other operating systems, such as Windows Phone. Most manufacturers, and some wireless carriers, customize the look and feel of their Android devices to differentiate themselves from the competition.
Present along the top of the screen is a status bar, showing information about the device and its connectivity. This status bar can be "pulled" down to reveal a notification screen where apps display important information or updates, such as a newly received email or SMS text, in a way that does not immediately interrupt or inconvenience the user. In early versions of Android these notifications could be tapped to open the relevant app, but recent updates have provided enhanced functionality, such as the ability to call a number back directly from the missed call notification without having to open the dialer app first. Notifications are persistent until read or dismissed by the user.
APPLICATIONS
Android has a growing selection of third party applications, which can be acquired by users either through an app store such as Google Play or the Amazon Appstore, or by downloading and installing the application's APK file from a third-party site. The Play Store application allows users to browse, download and update apps published by Google and third-party developers, and is pre-installed on devices that comply with Google's compatibility requirements. The app filters the list of available applications to those that are compatible with the user's device, and developers may restrict their applications to particular carriers or countries for business reasons. Purchases of unwanted applications can be refunded within 15 minutes of the time of download, and some carriers offer direct carrier billing for Google Play application purchases, where the cost of the application is added to the user's monthly bill. As of September 2012, there were more than 675,000 apps available for Android, and the estimated number of applications downloaded from the Play Store was 25 billion.
Applications are developed in the Java language using the Android software development kit (SDK). The SDK includes a comprehensive set of development tools, including a debugger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) plugin. Other development tools are available, including a Native Development Kit for applications or extensions in C or C++, Google App Inventor, a visual environment for novice programmers, and various cross platform mobile web applications frameworks.
In order to work around limitations on reaching Google services due to Internet censorship in the People's Republic of China, Android devices sold in the PRC are generally customized to use state approved services instead.
DEVELOPMENT
Android is developed in private by Google until the latest changes and updates are ready to be released, at which point the source code is made available publicly. This source code will only run without modification on select devices, usually the Nexus series of devices.
Linux architecture diagram
Android consists of a kernel based on Linux kernel version 2.6 and, from Android 4.0 Ice Cream Sandwich onwards, version 3.x, with middleware, libraries and APIs written in C, and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony. Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik 'dex-code' (Dalvik Executable), which is usually translated from Java bytecode. The main hardware platform for Android is the ARM architecture. There is support for x86 from the Android x86 project, and Google TV uses a special x86 version of Android. In 2013, Freescale announced Android on its i.MX processor, i.MX5X and i.MX6X series.
Android's Linux kernel has further architecture changes by Google outside the typical Linux kernel development cycle. Android does not have a native X Window System by default nor does it support the full set of standard GNU libraries, and this makes it difficult to port existing Linux applications or libraries to Android. Support for simple C and SDL applications is possible by injection of a small Java shim and usage of the JNI[60] like, for example, in the Jagged Alliance 2 port for Android.
Certain features that Google contributed back to the Linux kernel, notably a power management feature called "wakelocks", were rejected by mainline kernel developers partly because they felt that Google did not show any intent to maintain its own code. Google announced in April 2010 that they would hire two employees to work with the Linux kernel community,[65] but Greg Kroah-Hartman, the current Linux kernel maintainer for the stable branch, said in December 2010 that he was concerned that Google was no longer trying to get their code changes included in mainstream Linux. Some Google Android developers hinted that "the Android team was getting fed up with the process," because they were a small team and had more urgent work to do on Android.
In August 2011, Linus Torvalds said that "eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years". In December 2011, Greg Kroah-Hartman announced the start of the Android Mainlining Project, which aims to put some Android drivers, patches and features back into the Linux kernel, starting in Linux 3.3. Linux included the autosleep and wakelocks capabilities in the 3.5 kernel, after many previous attempts at merger. The interfaces are the same but the upstream Linux implementation allows for two different suspend modes: to memory (the traditional suspend that Android uses), and to disk (hibernate, as it is known on the desktop). The merge will be complete starting with Kernel 3.8, Google has opened a public code repository that contains their experimental work to re-base Android off Kernel 3.8.
The flash storage on Android devices is split into several partitions, such as "/system" for the operating system itself and "/data" for user data and app installations. In contrast to desktop Linux distributions, Android device owners are not given root access to the operating system and sensitive partitions such as /system are read-only. However, root access can be obtained by exploiting security flaws in Android, which is used frequently by the open source community to enhance the capabilities of their devices, but also by malicious parties to install viruses and malware.
Whether or not Android counts as a Linux distribution is a widely debated topic, with the Linux Foundation and Chris DiBona, Google's open source chief, in favour. Others, such as Google engineer Patrick Brady disagree, noting the lack of support for many GNU tools, including glibc, in Android.
Proprietary binary dependencies
With many devices, there are proprietary binaries which have to be provided by the manufacturer, in order for Android to work.
Memory management
Since Android devices are usually battery-powered, Android is designed to manage memory (RAM) to keep power consumption at a minimum, in contrast to desktop operating systems which generally assume they are connected to unlimited mains electricity. When an Android app is no longer in use, the system will automatically suspend it in memory - while the app is still technically "open," suspended apps consume no resources (e.g. battery power or processing power) and sit idly in the background until needed again. This has the dual benefit of increasing the general responsiveness of Android devices, since apps don't need to be closed and reopened from scratch each time, but also ensuring background apps don't waste power needlessly.
Android manages the apps stored in memory automatically: when memory is low, the system will begin killing apps and processes that have been inactive for a while, in reverse order since they were last used (i.e. oldest first). This process is designed to be invisible to the user, such that users do not need to manage memory or the killing of apps themselves. However, confusion over Android memory management has resulted in third-party task killers becoming popular on the Google Play store; these third-party task killers are generally regarded as doing more harm than good.[80]
Update schedule
Google provides major updates, incremental in nature, to Android every six to nine months, which most devices are capable of receiving over the air. The latest major update is Android 4.2 Jelly Bean.
Compared to its chief rival mobile operating system, namely iOS, Android updates are typically slow to reach actual devices. For devices not under the Nexus brand, updates often arrive months from the time the given version is officially released. This is caused partly due to the extensive variation in hardware of Android devices, to which each update must be specifically tailored, as the official Google source code only runs on their flagship Nexus devices. Porting Android to specific hardware is a time- and resource-consuming process for device manufacturers, who prioritize their newest devices and often leave older ones behind. Hence, older smartphones are frequently not updated if the manufacturer decides it is not worth their time, regardless of whether the phone is capable of running the update. This problem is compounded when manufacturers customize Android with their own interface and apps, which must be reapplied to each new release. Additional delays can be introduced by wireless carriers who, after receiving updates from manufacturers, further customize and brand Android to their needs and conduct extensive testing on their networks before sending the update out to users.
The lack of after-sale support from manufacturers and carriers has been widely criticised by consumer groups and the technology media.[84][85] Some commentators have noted that the industry has a financial incentive not to update their devices, as the lack of updates for existing devices fuels the purchase of newer ones, an attitude described as "insulting". The Guardian has complained that the complicated method of distribution for updates is only complicated because manufacturers and carriers have designed it that way.[85] In 2011, Google partnered with a number of industry players to announce an "Android Update Alliance", pledging to deliver timely updates for every device for 18 months after its release. As of 2013, this alliance has never been mentioned since.
Open source community
Android has an active community of developers and enthusiasts who use the Android source code to develop and distribute their own modified versions of the operating system. These community-developed releases often bring new features and updates to devices faster than through the official manufacturer/carrier channels, albeit without as extensive testing or quality assurance; provide continued support for older devices that no longer receive official updates; or bring Android to devices that were officially released running other operating systems, such as the HP Touchpad. Community releases often come pre-rooted and contain modifications unsuitable for non-technical users, such as the ability to overclock or over/undervolt the device's processor. CyanogenMod is the most widely used community firmware, and acts as a foundation for numerous others.
Historically, device manufacturers and mobile carriers have typically been unsupportive of third-party firmware development. Manufacturers express concern about improper functioning of devices running unofficial software and the support costs resulting from this. Moreover, modified firmwares such as CyanogenMod sometimes offer features, such as tethering, for which carriers would otherwise charge a premium. As a result, technical obstacles including locked bootloaders and restricted access to root permissions are common in many devices. However, as community-developed software has grown more popular, and following a statement by the Librarian of Congress in the United States that permits the "jailbreaking" of mobile devices, manufacturers and carriers have softened their position regarding third party development, with some, including HTC, Motorola, Samsung and Sony, providing support and encouraging development. As a result of this, over time the need to circumvent hardware restrictions to install unofficial firmware has lessened as an increasing number of devices are shipped with unlocked or unlockable bootloaders, similar to the Nexus series of phones, although usually requiring that users waive their devices' warranties to do so. However, despite manufacturer acceptance, some carriers in the US still require that phones are locked down.
The unlocking and "hackability" of smartphones and tablets remains a source of tension between the community and industry, with the community arguing that unofficial development is increasingly important given the failure of industry to provide timely updates and/or continued support to their devices.
Security and privacy
App permissions in the Play Store
Android applications run in a sandbox, an isolated area of the system that does not have access to the rest of the system's resources, unless access permissions are explicitly granted by the user when the application is installed. Before installing an application, the Play Store displays all required permissions: a game may need to enable vibration or save data to an SD card, for example, but should not need to read SMS messages or access the phonebook. After reviewing these permissions, the user can choose to accept or refuse them, installing the application only if they accept.
The sandboxing and permissions system lessens the impact of vulnerabilities and bugs in applications, but developer confusion and limited documentation has resulted in applications routinely requesting unnecessary permissions, reducing its effectiveness. Several security firms, such as Lookout Mobile Security, AVG Technologies, and McAfee, have released antivirus software for Android devices. This software is ineffective as sandboxing also applies to such applications, limiting their ability to scan the deeper system for threats.
Research from security company Trend Micro lists premium service abuse as the most common type of Android malware, where text messages are sent from infected phones to premium-rate telephone numbers without the consent or even knowledge of the user. Other malware displays unwanted and intrusive adverts on the device, or sends personal information to unauthorised third parties. Security threats on Android are reportedly growing exponentially; however, Google engineers have argued that the malware and virus threat on Android is being exaggerated by security companies for commercial reasons, and have accused the security industry of playing on fears to sell virus protection software to users. Google maintains that dangerous malware is actually extremely rare, and a survey conducted by F-Secure showed that only 0.5% of Android malware reported had come from the Google Play store.
Google currently uses their Google Bouncer malware scanner to watch over and scan the Google Play store apps. It is intended to flag up suspicious apps and warn users of any potential issues with an application before they download it. Android version 4.2 Jelly Bean was released in 2012 with enhanced security features, including a malware scanner built into the system, which works in combination with Google Play but can scan apps installed from third party sources as well, and an alert system which notifies the user when an app tries to send a premium-rate text message, blocking the message unless the user explicitly authorises it.
Android smartphones have the ability to report the location of Wi-Fi access points, encountered as phone users move around, to build databases containing the physical locations of hundreds of millions of such access points. These databases form electronic maps to locate smartphones, allowing them to run apps like Foursquare, Google Latitude, Facebook Places, and to deliver location-based ads. Third party monitoring software such as TaintDroid, an academic research-funded project, can, in some cases, detect when personal information is being sent from applications to remote servers.
The open source nature of Android allows security contractors to take existing devices and adapt them for highly secure uses. For example Samsung has worked with General Dynamics through their Open Kernel Labs acquisition to rebuild Jelly Bean on top of their hardened microvisor for the "Knox" project.
Licensing
The source code for Android is available under free and open source software licenses. Google publishes most of the code (including network and telephony stacks) under the Apache License version 2.0, and the rest, Linux kernel changes, under the GNU General Public License version 2. The Open Handset Alliance develops the changes to the Linux kernel, in public, with source code publicly available at all times. The rest of Android is developed in private by Google, with source code released publicly when a new version is released. Typically Google collaborates with a hardware manufacturer to produce a 'flagship' device (part of the Google Nexus series) featuring the new version of Android, then makes the source code available after that device has been released.
In early 2011, Google chose to temporarily withhold the Android source code to the tablet-only 3.0 Honeycomb release. The reason, according to Andy Rubin in an official Android blog post, was because Honeycomb was rushed for production of the Motorola Xoom, and they did not want third parties creating a "really bad user experience" by attempting to put onto smartphones a version of Android intended for tablets. The source code was once again made available in November 2011 with the release of Android 4.0.
Non-free software
Even though the software is open-source, device manufacturers cannot use Google's Android trademark unless Google certifies that the device complies with their Compatibility Definition Document (CDD). Devices must also meet this definition to be eligible to license Google's closed-source applications, including Google Play. As Android is not completely released under a GPL compatible license, e.g. Google's code is under the Apache license, and also because Google Play allows proprietary software, Richard Stallman and the Free Software Foundation have been critical of Android and have recommended the usage of alternatives such as Replicant.
Reception
Android received a lukewarm reaction when it was unveiled in 2007. Although analysts were impressed with the respected technology companies that had partnered with Google to form the Open Handset Alliance, it was unclear whether mobile phone manufacturers would be willing to replace their existing operating systems with Android. The idea of an open source, Linux-based development platform sparked interest, but there were additional worries about Android facing strong competition from established players in the smartphone market, such as Nokia and Microsoft, and rival Linux mobile operating systems that were in development. These established players were skeptical: Nokia was quoted as saying "we don't see this as a threat," and a member of Microsoft's Windows Mobile team stated "I don't understand the impact that they are going to have."
Since then Android has grown to become the most widely used smartphone operating system and "one of the fastest mobile experiences available." Reviewers have highlighted the open source nature of the operating system as one of its defining strengths, allowing companies such as Amazon (Kindle Fire), Barnes & Noble (Nook), Ouya, Baidu, and others to fork the software and release hardware running their own customised version of Android. As a result, it has been described by technology website Ars Technica as "practically the default operating system for launching new hardware" for companies without their own mobile platforms. This openness and flexibility is also present at the level of the end user: Android allows extensive customisation of devices by their owners and apps are freely available from non-Google app stores and third party websites. These have been cited as among the main advantages of Android phones over others.
Despite Android's popularity, including an activation rate three times that of iOS, there have been reports that Google has not been able to leverage their other products and web services successfully to turn Android into the money maker that analysts had expected. The Verge suggested that Google is losing control of Android due to the extensive customization and proliferation of non-Google apps and services - for instance the Amazon Kindle Fire points users to the Amazon app store that competes directly with the Google Play store - and speculated that Rubin was blamed for failing to establish a lucrative partnership with cell phone makers. The chief beneficiary of Android has been Samsung, whose Galaxy brand has surpassed that of Android in terms of brand recognition since 2011. Meanwhile other Android manufacturers have struggled since 2011, such as LG, HTC, and Google's own Motorola Mobility. Ironically, while Google directly earns nothing from the sale of each Android device, Microsoft and Apple have successfully sued to extract patent royalty payments from handset manufacturers using Android.
TABLETS
Despite its success on smartphones, Android tablet adoption has been slow. One of the main causes is the chicken or the egg situation where consumers are hesitant to buy an Android tablet due to a lack of high quality tablet apps, but developers are hesitant to spend time and resources developing tablet apps until there's a significant market for them. The content and app "ecosystem" proved more important than hardware specs as the selling point for tablets. Due to the lack of Android tablet-specific apps in 2011, early Android tablets had to make do with existing smartphone apps that were ill-suited to larger screen sizes, whereas the dominance of Apple's iPad was reinforced by the large number of tablet-specific iOS apps.
Despite app support in its infancy, a considerable number of Android tablets (alongside those using other operating systems, such as the HP TouchPad and BlackBerry Playbook) were rushed out to market in an attempt to capitalize on the success of the iPad. InfoWorld has suggested that some Android manufacturers initially treated their first tablets as a "Frankenphone business", a short-term low-investment opportunity by placing a smartphone-optimized Android OS (before Android 3.0 Honeycomb for tablets was available) on a device while neglecting user interface. This approach, such as with the Dell Streak, failed to gain market traction with consumers as well as damaging the early reputation of Android tablets. Furthermore, several Android tablets such as the Motorola Xoom were priced the same or higher than the iPad, which hurt sales. An exception was the Amazon Kindle Fire, which relied upon lower pricing as well as access to Amazon's ecosystem of apps and content.
This began to change in 2012 with the release of the affordable Nexus 7 and a push by Google for developers to write better tablet apps. Android tablet market share is expected to overtake the iPad's by the end of 2013.
Market share and rate of adoption
Research company Canalys estimated in the second quarter of 2009 that Android had a 2.8% share of worldwide smartphone shipments. By the fourth quarter of 2010 this had grown to 33% of the market, becoming the top-selling smartphone platform. By the third quarter of 2011 Gartner estimated that more than half (52.5%) of the smartphone market belongs to Android. By the third quarter of 2012 Android had a 75% share of the global smartphone market according to the research firm IDC.
In July 2011, Google said that 550,000 new Android devices were being activated every day, up from 400,000 per day in May, and more than 100 million devices had been activated with 4.4% growth per week. In September 2012, 500 million devices had been activated with 1.3 million activations per day.
Android market share varies by location. In July 2012, Android's market share in the United States was 52%,and rose to 90% in China.
Usage share of Android versions
Usage share of the different versions as of March 4, 2013.[151] Over half of Android devices in 2013 2Q still run a pre 4.x OS version -mostly 2.3 Gingerbread that was released on December 6, 2010, due to many lower-end devices still being released with it.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Application piracy
There has been some concern about the ease with which paid Android apps can be pirated. In a May 2012 interview with Eurogamer, the developers of Football Manager stated that the ratio of pirated players vs legitimate players was 9:1 for their game Football Manager Handheld. However, not every developer agreed that piracy rates were an issue; for example, in July 2012 the developers of the game Wind-up Knight said that piracy levels of their game were only 12%, and most of the piracy came from China, where people cannot purchase apps from Google Play.
In 2010, Google released a tool for validating authorised purchases for use within apps, but developers complained that this was insufficient and trivial to crack. Google responded that the tool, especially its initial release, was intended as a sample framework for developers to modify and build upon depending on their needs, not as a finished security solution. In 2012 Google released a feature in Android 4.1 that encrypted paid applications so that they would only work on the device on which they were purchased, but this feature has been temporarily deactivated due to technical issues.
Copyrights and patents
Further information: Oracle v. Google, Smartphone wars, and Patent troll
Both Android and Android phone manufacturers have been involved in numerous patent lawsuits. On August 12, 2010, Oracle sued Google over claimed infringement of copyrights and patents related to the Java programming language. Oracle originally sought damages up to $6.1 billion, but this valuation was rejected by a United States federal judge who asked Oracle to revise the estimate. In response, Google submitted multiple lines of defense, counterclaiming that Android did not infringe on Oracle's patents or copyright, that Oracle's patents were invalid, and several other defenses. They said that Android is based on Apache Harmony, a clean room implementation of the Java class libraries, and an independently developed virtual machine called Dalvik. In May 2012 the jury in this case found that Google did not infringe on Oracle's patents, and the trial judge ruled that the structure of the Java APIs used by Google was not copyrightable.
In addition to lawsuits against Google directly, various proxy wars have been waged against Android indirectly by targeting manufacturers of Android devices, with the effect of discouraging manufacturers from adopting the platform by increasing the costs of bringing an Android device to market. Both Apple and Microsoft have sued several manufacturers for patent infringement, with Apple's ongoing legal action against Samsung being a particularly high-profile case. In October 2011 Microsoft said they had signed patent license agreements with ten Android device manufacturers, whose products account for 55% of the worldwide revenue for Android devices. These include Samsung and HTC. Samsung's patent settlement with Microsoft includes an agreement that Samsung will allocate more resources to developing and marketing phones running Microsoft's Windows Phone operating system.
Google has publicly expressed its frustration for the current patent landscape in the United States, accusing Apple, Oracle and Microsoft of trying to take down Android through patent litigation, rather than innovating and competing with better products and services. In 2011–12, Google purchased Motorola Mobility for US$12.5 billion, which was viewed in part as a defensive measure to protect Android, since Motorola Mobility held more than 17,000 patents. In December 2011 Google bought over a thousand patents from IBM.
Beyond smartphones and tablets
The Sony SmartWatch: an example of how Android is used on electronics other than smartphones and tablets
The open and customizable nature of Android allows it to be used on other electronics, including laptops and netbooks, smartbooks[169] smart TVs (Google TV) and cameras (Nikon Coolpix S800c and Galaxy Camera). In addition, the Android operating system has seen applications on smart glasses (Project Glass), wristwatches, headphones, car CD and DVD players, mirrors, portable media players and landlines and Voice over IP phones. Ouya, an upcoming videogames console running Android, became one of the most successful Kickstarter campaigns, crowdfunding US$8.5m for its development, and was later followed by other Android-based video games consoles such as Project Shield from NVIDIA.
In 2011, Google demonstrated "[email protected]", a new home automaton technology which uses Android to control a range of household devices including light switches, power sockets and thermostats. Prototype light bulbs were announced that could be controlled from an Android phone or tablet, but Android head Andy Rubin was cautious to note that "turning a lightbulb on and off is nothing new," pointing to numerous failed home automation services. Google, he said, was thinking more ambitiously and the intention was to use their position as a cloud services provider to bring Google products into customers' homes.
Android Ecosystem
The very obvious stakeholders are the consumers that own Android devices, right! But there are others as well:
Google, because it develops Android.
OEMs (Original Equipment Manufacturers), who manufacture the hardware, and also the custom application components.
Application Development Companies: They are the biggest contributors to the ecosystem. They employ Android developers, and also outsource the product development to services companies.
Freelance Android developers, because they have the skill-set to contribute to the ecosystem. They create their apps, and publish them on Google playstore. Freelancers can also make money by developing applications for product companies.
Now, you know who all form a part of the ecosystem. This is where you would belong too on learning Android development.
Global partnerships and large installed base
Building on the contributions of the open-source Linux community and more than 300 hardware, software, and carrier partners, Android has rapidly become the fastest-growing mobile OS.
Every day more than 1 million new Android devices are activated worldwide.
Android’s openness has made it a favorite for consumers and developers alike, driving strong growth in app consumption. Android users download more than 1.5 billion apps and games from Google Play each month.
With its partners, Android is continuously pushing the boundaries of hardware and software forward to bring new capabilities to users and developers. For developers, Android innovation lets you build powerful, differentiated applications that use the latest mobile technologies.
Powerful development framework
Easily optimize a single binary for phones, tablets, and other devices.
Android gives you everything you need to build best-in-class app experiences. It gives you a single application model that lets you deploy your apps broadly to hundreds of millions of users across a wide range of devices—from phones to tablets and beyond.
Android also gives you tools for creating apps that look great and take advantage of the hardware capabilities available on each device. It automatically adapts your UI to look its best on each device, while giving you as much control as you want over your UI on different device types.
For example, you can create a single app binary that's optimized for both phone and tablet form factors. You declare your UI in lightweight sets of XML resources, one set for parts of the UI that are common to all form factors and other sets for optimzations specific to phones or tablets. At runtime, Android applies the correct resource sets based on its screen size, density, locale, and so on.
History of Android™
Google purchased Android Inc., a 22-month-old Palo Alto, California, startup in July 2005. Android Inc. was co-founded by Andy Rubin, maker of mobile device Danger Inc.™ The purchase was key in Google's move into the wireless technology market. In 2008, Google introduced the HTC Dream™ as the first marketed phone to use Android™ technology. Since that time, this platform use has expanded to other smart phones, tablet computers, E-readers, netbooks, and other devices.
Programming for Android™
Android™ technology is based on Java® software applications. This technology requires the use of a special software development kit (SDK) to create applications for an Android™ device. The SDK is freely available for download from the Internet. For this reason, and because it will work on multiple operating systems, many software developers prefer Android™ technology over that used in other smart phones.
Smart phones have evolved into devices that use touch screens for navigation. Android™ technology provides specific application programming interface (API) modules to developers that take advantage of this. The touch screen enables the user to select and scroll through information with the stroke of a finger.
How Android™ Is Different
One of the key differences between Android™ technology and other smart phone systems is that it is open for modification. This gives vendors the opportunity to change and enhance their products based on their own preferences. This has created many versions of Android™ phones, which can vary by vendor, as well as a range of other devices that use this platform. In 2011, Google introduced a new arena for Android™ when it announced plans to launch [email protected], a network that could allow users to automate and control home appliances.
Android version history
The version history of the Android mobile operating system began with the release of the Android beta in November 2007. The first commercial version, Android 1.0, was released in September 2008. Android is under ongoing development by Google and the Open Handset Alliance (OHA), and has seen a number of updates to its base operating system since its original release. These updates typically fix bugs and add new features.
Since April 2009, Android versions have been developed under a codename and released in alphabetical order: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, and Jelly Bean. As of 2013, over 500 million active devices use the Android OS worldwide. The most recent major Android update was Jelly Bean 4.2, which was released on commercial devices in November 2012.
Android Version logs,changes and info
Android alpha
There were at least two internal releases inside Google and the OHA before the Android beta was released in November 2007. In a temporary naming scheme, the second of these releases was code-named "R2-D2". Dan Morrill created some of the first mascot logos, but the current green Android logo was designed by Irina Blok. Ryan Gibson conceived of the confections naming scheme that has been used for the majority of the public releases, starting with Android 1.5 Cupcake in April 2009.
Android beta
The Android beta was released on 5 November 2007, while the software development kit (SDK) was released on 12 November 2007. The 5 November date is popularly celebrated as Android's "birthday". Public beta versions of the SDK were released in the following order:
16 November 2007: m3-rc22a
14 December 2007: m3-rc37a
13 February 2008: m5-rc14
3 March 2008: m5-rc15
18 August 2008: 0.9
23 September 2008: 1.0-r1
Version history by API level
Android 1.0 (API level 1)
Android 1.0, the first commercial version of the software, was released on 23 September 2008. The first Android device, the HTC Dream, incorporated the following Android 1.0 features:
Android 1.0
Version Release date Features Image(s)
1.0 23 September 2008
Android Market application download and updates through the Market app
Web browser to show, zoom and pan full HTML and XHTML web pages – multiple pages show as windows ("cards")
Camera support – however, this version lacked the option to change the camera's resolution, white balance, quality, etc.
Folders allowing the grouping of a number of app icons into a single folder icon on the Home screen
Access to web email servers, supporting POP3, IMAP4, and SMTP
Gmail synchronization with the Gmail app
Google Contacts synchronization with the People app
Google Calendar synchronization with the Calendar app
Google Maps with Latitude and Street View to view maps and satellite imagery, as well as find local business and obtain driving directions using GPS
Google Sync, allowing management of over-the-air synchronization of Gmail, People, and Calendar
Google Search, allowing users to search the Internet and phone apps, contacts, calendar, etc.
Google Talk instant messaging
Instant messaging, text messaging, and MMS
Media Player, enabling management, importing, and playback of media files – however, this version lacked video and stereo Bluetooth support
Notifications appear in the Status bar, with options to set ringtone, LED or vibration alerts
Voice Dialer allows dialing and placing of phone calls without typing a name or number
Wallpaper allows the user to set the background image or photo behind the Home screen icons and widgets
YouTube video player
Other apps include: Alarm Clock, Calculator, Dialer (Phone), Home screen (Launcher), Pictures (Gallery), and Settings
Wi-Fi and Bluetooth support
Android 1.0 on the HTC Dream
Android 1.1 (API level 2)
On 9 February 2009, the Android 1.1 update was released, initially for the HTC Dream only. Android 1.1 was known as "Petit Four" internally, though this name was not used officially. The update resolved bugs, changed the Android API and added a number of features:
Android 1.1
Version Release date Features Image(s)
1.1 9 February 2009
Details and reviews available when a user searches for businesses on Maps
Longer in-call screen timeout default when using the speakerphone, plus ability to show/hide dialpad
Ability to save attachments in messages
Support added for marquee in system layouts
Android 1.5 Cupcake (API level 3)
On 30 April 2009, the Android 1.5 update was released, based on Linux kernel 2.6.27. This was the first release to officially use a codename based on a dessert item ("Cupcake"), a theme which would be used for all releases henceforth. The update included several new features and UI amendments:
Android 1.5 Cupcake
Version Release date Features Image(s)
1.5 30 April 2009
Support for third-party virtual keyboards with text prediction and user dictionary for custom words
Support for Widgets – miniature application views that can be embedded in other applications (such as the Home screen) and receive periodic updates
Video recording and playback in MPEG-4 and 3GP formats
Auto-pairing and stereo support for Bluetooth (A2DP and AVRCP profiles)
Copy and paste features in web browser
User pictures shown for Favorites in Contacts
Specific date/time stamp shown for events in call log, and one-touch access to a contact card from call log event
Animated screen transitions
Auto-rotation option
New stock boot animation
Ability to upload videos to YouTube
Ability to upload photos to Picasa
Android 1.5 on the HTC Magic
Android 1.6 Donut (API level 4)
On 15 September 2009, the Android 1.6 SDK – dubbed Donut – was released, based on Linux kernel 2.6.29. Included in the update were numerous new features:
Android 1.6 Donut
Version Release date Features Image(s)
1.6 15 September 2009
Voice and text entry search enhanced to include bookmark history, contacts, and the web
Ability for developers to include their content in search results
Multi-lingual speech synthesis engine to allow any Android application to "speak" a string of text
Easier searching and ability to view app screenshots in Android Market
Gallery, camera and camcorder more fully integrated, with faster camera access
Ability for users to select multiple photos for deletion
Updated technology support for CDMA/EVDO, 802.1x, VPNs, and a text-to-speech engine
Support for WVGA screen resolutions
Speed improvements in searching and camera applications
Expanded Gesture framework and new GestureBuilder development tool
Android 2.0 Eclair (API level 5)
On 26 October 2009, the Android 2.0 SDK – codenamed Eclair – was released, based on Linux kernel 2.6.29. Changes included:
Android 2.0 Eclair
Version Release date Features Image(s)
2.0 26 October 2009
Expanded Account sync, allowing users to add multiple accounts to a device for synchronization of email and contacts
Microsoft Exchange email support, with combined inbox to browse email from multiple accounts in one page
Bluetooth 2.1 support
Ability to tap a Contacts photo and select to call, SMS, or email the person
Ability to search all saved SMS and MMS messages, with delete oldest messages in a conversation automatically deleted when a defined limit is reached
Numerous new camera features, including flash support, digital zoom, scene mode, white balance, color effect and macro focus
Improved typing speed on virtual keyboard, with smarter dictionary that learns from word usage and includes contact names as suggestions
Refreshed browser UI with bookmark thumbnails, double-tap zoom and support for HTML5
Calendar agenda view enhanced, showing attending status for each invitee, and ability to invite new guests to events
Optimized hardware speed and revamped UI
Support for more screen sizes and resolutions, with better contrast ratio
Improved Google Maps 3.1.2
MotionEvent class enhanced to track multi-touch events
Addition of live wallpapers, allowing the animation of home-screen background images to show movement
Android 2.0 Eclair on the Motorola Droid
Android 2.0.1 Eclair (API level 6)
Android 2.0.1 Eclair
Version Release date Features Image(s)
2.0.1 3 December 2009
Minor API changes, bug fixes and framework behavioral changes
Android 2.1 Eclair (API level 7)
Android 2.1 Eclair
Version Release date Features Image(s)
2.1 12 January 2010
Minor amendments to the API and bug fixes
Android 2.2–2.2.3 Froyo (API level 8)
On 20 May 2010, the SDK for Android 2.2 (Froyo, short for frozen yogurt) was released, based on Linux kernel 2.6.32.
Android 2.2 Froyo
Version Release date Features Image(s)
2.2 20 May 2010
Speed, memory, and performance optimizations
Additional application speed improvements, implemented through JIT compilation
Integration of Chrome's V8 JavaScript engine into the Browser application
Support for the Android Cloud to Device Messaging (C2DM) service, enabling push notifications
Improved Microsoft Exchange support, including security policies, auto-discovery, GAL look-up, calendar synchronization and remote wipe
Improved application launcher with shortcuts to Phone and Browser applications
USB tethering and Wi-Fi hotspot functionality
Option to disable data access over mobile network
Updated Market application with batch and automatic update features
Quick switching between multiple keyboard languages and their dictionaries
Voice dialing and contact sharing over Bluetooth
Support for Bluetooth-enabled car and desk docks
Support for numeric and alphanumeric passwords
Support for file upload fields in the Browser application
Support for installing applications to the expandable memory
Adobe Flash support
Support for high-PPI displays (up to 320 ppi), such as 4" 720p screens
Gallery allows users to view picture stacks using a zoom gesture
Android 2.2 Froyo on the Nexus One
2.2.1 18 January 2011
Bug fixes, security updates and performance improvements
2.2.2 22 January 2011
Minor bug fixes, including SMS routing issues that affected the Nexus One
2.2.3 21 November 2011
Two security patches
Android 2.3–2.3.2 Gingerbread (API level 9)
On 6 December 2010, the Android 2.3 (Gingerbread) SDK was released, based on Linux kernel 2.6.35.[45][46] Changes included:[45]
Android 2.3 Gingerbread
Version Release date Features Image(s)
2.3 6 December 2010
Updated user interface design with increased simplicity and speed
Support for extra-large screen sizes and resolutions (WXGA and higher)
Native support for SIP VoIP internet telephony
Faster, more intuitive text input in virtual keyboard, with improved accuracy, better suggested text and voice input mode
Enhanced copy/paste functionality, allowing users to select a word by press-hold, copy, and paste
Support for Near Field Communication (NFC), allowing the user to read an NFC tag embedded in a poster, sticker, or advertisement
New audio effects such as reverb, equalization, headphone virtualization, and bass boost
New Download Manager, giving users easy access to any file downloaded from the browser, email, or another application
Support for multiple cameras on the device, including a front-facing camera, if available
Support for WebM/VP8 video playback, and AAC audio encoding
Improved power management with a more active role in managing apps that are keeping the device awake for too long
Enhanced support for native code development
Switched from YAFFS to ext4 on newer devices
Audio, graphical, and input enhancements for game developers
Concurrent garbage collection for increased performance
Native support for more sensors (such as gyroscopes and barometers)
Android 2.3 on Google's Nexus S
2.3.1 December 2010
Improvements and bug fixes for the Google Nexus S
2.3.2 January 2011
Android 2.3.3–2.3.7 Gingerbread (API level 10)
Android 2.3.3 Gingerbread
Version Release date Features Image(s)
2.3.3 9 February 2011
Several improvements and API fixes
2.3.4 28 April 2011
Support for voice or video chat using Google Talk
Open Accessory Library support. Open Accessory was introduced in 3.1 (Honeycomb) but the Open Accessory Library grants 2.3.4 added support when connecting to a USB peripheral with compatible software and a compatible application on the device
2.3.5 25 July 2011
Improved network performance for the Nexus S 4G, among other fixes and improvements
Fixed Bluetooth bug on Samsung Galaxy S
Improved Gmail application
Shadow animations for list scrolling
Camera software enhancements
Improved battery efficiency
2.3.6 2 September 2011
Fixed a voice search bug
(The 2.3.6 update had the side-effect of impairing the Wi-Fi hotspot functionality of many Canadian Nexus S phones. Google acknowledged this problem and fixed it in late September.)
2.3.7 21 September 2011
Google Wallet support for the Nexus S 4G
Android 3.0 Honeycomb (API level 11)
On 22 February 2011, the Android 3.0 (Honeycomb) SDK – the first tablet-only Android update – was released, based on Linux kernel 2.6.36. The first device featuring this version, the Motorola Xoom tablet, was released on 24 February 2011. The update's features included:
Android 3.0 Honeycomb
Version Release date Features Image(s)
3.0 22 February 2011
Optimized tablet support with a new virtual and “holographic” user interface
Added System Bar, featuring quick access to notifications, status, and soft navigation buttons, available at the bottom of the screen
Added Action Bar, giving access to contextual options, navigation, widgets, or other types of content at the top of the screen
Simplified multitasking – tapping Recent Apps in the System Bar allows users to see snapshots of the tasks underway and quickly jump from one app to another
Redesigned keyboard, making typing fast, efficient and accurate on larger screen sizes
Simplified, more intuitive copy/paste interface
Multiple browser tabs replacing browser windows, plus form auto-fill and a new “incognito” mode allowing anonymous browsing
Quick access to camera exposure, focus, flash, zoom, front-facing camera, time-lapse, and other camera features
Ability to view albums and other collections in full-screen mode in Gallery, with easy access to thumbnails for other photos
New two-pane Contacts UI and Fast Scroll to let users easily organize and locate contacts
New two-pane Email UI to make viewing and organizing messages more efficient, allowing users to select one or more messages
Support for video chat using Google Talk
Hardware acceleration
Support for multi-core processors
Ability to encrypt all user data
HTTPS stack improved with Server Name Indication (SNI)
Filesystem in Userspace (FUSE; kernel module)
Android 3.0 on the Motorola Xoom tablet
Android 3.1 Honeycomb (API level 12)
Android 3.1 Honeycomb
Version Release date Features Image(s)
3.1 10 May 2011
UI refinements
Connectivity for USB accessories
Expanded Recent Apps list
Resizable Home screen widgets
Support for external keyboards and pointing devices
Support for joysticks and gamepads
Support for FLAC audio playback
High-performance Wi-Fi lock, maintaining high-performance Wi-Fi connections when device screen is off
Support for HTTP proxy for each connected Wi-Fi access point
Android 3.2 Honeycomb (API level 13)
Most first- and second-generation Google TV-enabled devices utilize Honeycomb 3.2.
Android 3.2 Honeycomb
Version Release date Features Image(s)
3.2 15 July 2011
Improved hardware support, including optimizations for a wider range of tablets
Increased ability of apps to access files on the SD card, e.g. for synchronization
Compatibility display mode for apps that have not been optimized for tablet screen resolutions
New display support functions, giving developers more control over display appearance on different Android devices
3.2.1 20 September 2011
Bug fixes and minor security, stability and Wi-Fi improvements
Update to Android Market with automatic updates and easier-to-read Terms and Conditions text
Update to Google Books
Improved Adobe Flash support in browser
Improved Chinese handwriting prediction
3.2.2 30 August 2011
Bug fixes and other minor improvements for the Motorola Xoom 4G
3.2.3
Bug fixes and other minor improvements for the Motorola Xoom and Motorola Xoom 4G
3.2.4 December 2011
"Pay as You Go" support for 3G and 4G tablets
3.2.5 January 2012
Bug fixes and other minor improvements for the Motorola Xoom and Motorola Xoom 4G
3.2.6 February 2012
Fixed data connectivity issues when coming out of airplane mode on the US 4G Motorola Xoom
Android 4.0–4.0.2 Ice Cream Sandwich (API level 14)
The SDK for Android 4.0.1 (Ice Cream Sandwich), based on Linux kernel 3.0.1, was publicly released on 19 October 2011. Google's Gabe Cohen stated that Android 4.0 was "theoretically compatible" with any Android 2.3.x device in production at that time. The source code for Android 4.0 became available on 14 November 2011. The update introduced numerous new features, including:
Android 4.0 Ice Cream Sandwich
Version Release date Features Image(s)
4.0 19 October 2011
Soft buttons from Android 3.x are now available for use on phones
Separation of widgets in a new tab, listed in a similar manner to apps
Easier-to-create folders, with a drag-and-drop style
A customizable launcher
Improved visual voicemail with the ability to speed up or slow down voicemail messages
Pinch-to-zoom functionality in the calendar
Integrated screenshot capture (accomplished by holding down the Power and Volume-Down buttons)
Improved error correction on the keyboard
Ability to access apps directly from lock screen
Improved copy and paste functionality
Better voice integration and continuous, real-time speech to text dictation
Face Unlock, a feature that allows users to unlock handsets using facial recognition software
New tabbed web browser under Google's Chrome brand, allowing up to 16 tabs
Automatic syncing of browser with users' Chrome bookmarks
A new typeface family for the UI, Roboto
Data Usage section in settings that lets users set warnings when they approach a certain usage limit, and disable data use when the limit is exceeded
Ability to shut down apps that are using data in the background
Improved camera app with zero shutter lag, time lapse settings, panorama mode, and the ability to zoom while recording
Built-in photo editor
New gallery layout, organized by location and person
Refreshed "People" app with social network integration, status updates and hi-res images
Android Beam, a near-field communication feature allowing the rapid short-range exchange of web bookmarks, contact info, directions, YouTube videos and other data
Support for the WebP image format
Hardware acceleration of the UI
Wi-Fi Direct
1080p video recording for stock Android devices
Android VPN Framework (AVF), and TUN (but not TAP) kernel module. Prior to 4.0, VPN software required rooted Android.
Android 4.0 on the Samsung Galaxy Nexus
4.0.1 21 October 2011
Fixed minor bugs for the Samsung Galaxy Nexus.
4.0.2 28 November 2011
Fixed minor bugs on the Verizon Galaxy Nexus, the US launch of which was later delayed until December 2011
(For Canadian consumers, 4.0.2 reportedly created a bug on the Galaxy Nexus that crashed the application market when users attempted to view details of any Android application. It also inadvertently reduced the NFC capabilities of the Nexus phone).
Android 4.0.3–4.0.4 Ice Cream Sandwich (API level 15)
Android 4.0.3 Ice Cream Sandwich
Version Release date Features Image
4.0.3 16 December 2011
Numerous bug fixes and optimizations
Improvements to graphics, databases, spell-checking and Bluetooth functionality
New APIs for developers, including a social stream API in the Contacts provider
Calendar provider enhancements
New camera apps enhancing video stabilization and QVGA resolution
Accessibility refinements such as improved content access for screen readers
4.0.4 29 March 2012
Stability improvements
Better camera performance
Smoother screen rotation
Improved phone number recognition
Support for Adobe Systems' Flash player ended with Ice Cream Sandwich.
Android 4.1 Jelly Bean (API level 16)
Google announced Android 4.1 (Jelly Bean) at the Google I/O conference on 27 June 2012. Based on Linux kernel 3.0.31, Jelly Bean was an incremental update with the primary aim of improving the functionality and performance of the user interface. The performance improvement involved "Project Butter", which uses touch anticipation, triple buffering, extended vsync timing and a fixed frame rate of 60 fps to create a fluid and "buttery-smooth" UI. Android 4.1 Jelly Bean was released to the Android Open Source Project on 9 July 2012, and the Nexus 7 tablet, the first device to run Jelly Bean, was released on 13 July 2012.
Android 4.1 Jelly Bean
Version Release date Features Image
4.1 9 July 2012
Smoother user interface:
Vsync timing across all drawing and animation done by the Android framework, including application rendering, touch events, screen composition and display refresh
Triple buffering in the graphics pipeline
Enhanced accessibility
Bi-directional text and other language support
User-installable keyboard maps
Expandable notifications
Ability to turn off notifications on an app specific basis
Shortcuts and widgets can automatically be re-arranged or re-sized to allow new items to fit on home screens
Bluetooth data transfer for Android Beam
Offline voice dictation
Tablets with smaller screens now use an expanded version of the interface layout and home screen used by phones.
Improved voice search
Improved camera app
Google Wallet (for the Nexus 7)
High-resolution Google+ contact photos
Google Now search application
Multichannel audio
USB audio (for external sound DACs)
Audio chaining (also known as gapless playback)
Stock Android browser is replaced with the Android mobile version of Google Chrome in devices with Android 4.1 preinstalled
Ability for other launchers to add widgets from the app drawer without requiring root access
Android 4.1 on the Asus Nexus 7 tablet
4.1.1 23 July 2012
Fixed a bug on the Nexus 7 regarding the inability to change screen orientation in any application
4.1.2 9 October 2012
Lock/home screen rotation support for the Nexus 7
One-finger gestures to expand/collapse notifications
Bug fixes and performance enhancements
Android 4.2 Jelly Bean (API level 17)
Google was expected to announce Jelly Bean 4.2 at an event in New York City on 29 October 2012, but the event was cancelled due to Hurricane Sandy.[93] Instead of rescheduling the live event, Google announced the new version with a press release, under the slogan "A new flavor of Jelly Bean". The first devices to run Android 4.2 were LG's Nexus 4 and Samsung's Nexus 10, which were released on 13 November 2012.
Android 4.2 Jelly Bean
Version Release date Features Image
4.2 13 November 2012
"Photo Sphere" panorama photos
Keyboard with gesture typing
Lock screen improvements, including widget support and the ability to swipe directly to camera
Notification power controls ("Quick Settings")
"Daydream" screensavers, showing information when idle or docked
Multiple user accounts (tablets only)
Support for wireless display (Miracast)
Accessibility improvements: triple-tap to magnify the entire screen, pan and zoom with two fingers. Speech output and Gesture Mode navigation for blind users
New clock app with built-in world clock, stop watch and timer
All devices now use the same interface layout, previously adapted from phones on 4.1 for smaller tablets (with centered software buttons, the system bar at the top of the screen, and a home screen with a dock and centered application menu), regardless of screen size
Increased number of extended notifications and Actionable Notifications for more apps, allowing users to respond to certain notifications within the notification bar and without launching the app directly
SELinux
Always-on VPN
Premium SMS confirmation
Group Messaging
Android 4.2 on the Google Nexus 4
4.2.1 27 November 2012
Fixed a bug in the People app where December was not displayed on the date selector when adding an event to a contact
Added Bluetooth gamepads and joysticks as supported HID
4.2.2 11 February 2013
Fixed Bluetooth audio streaming bugs
Long-pressing the Wi-Fi and Bluetooth icons in Quick Settings now toggles the on/off state
New download notifications, which now shows the percentage and estimated time remaining for active app downloads
New sounds for wireless charging and low battery
New Gallery app animation allows faster loading
USB debug whitelist
Bug fixes and performance enhancements
Android 4.3 Jelly Bean (API level 18)
Google released Jelly Bean 4.3 under the slogan "An even sweeter Jelly Bean" on 24 July 2013 during an event in San Fransisco called "Breakfast with Sundar Pichai". The version will debut on the new 2nd generation Nexus 7 set to be released on July 30 2013.
Version Release date Features Image(s)
4.3 24 July 2013
Bluetooth Low Energy support
OpenGL ES 3.0
Restricted access mode for profiles
Improved DRM APIs
Easier text input
Faster user switching
Hebrew and Arabic RTL support
Background Wi-Fi location
Dial pad auto-complete
Support added for 5 more languages
App-Specific Developer Options
Developer logging and analysing enhancements
System level support for Geofencing and Wi-Fi scanning APIs
Security enhancements
Android 5.0
Android 5.0 the successor to Android 4.x, Jelly Bean is widely rumored to be code named Key Lime Pie, although no official statements have been made confirming this. In February 2013, a leaked document from semiconductor manufacturer Qualcomm revealed that Key Lime Pie will be released in the second quarter of 2013.
but the release for 4.3 was done enhancing many features
Android 5.0 is expected in Future in Q1/Q2 of 2014
Android rooting
Android rooting is the process of allowing users of smartphones, tablets, and other devices running the Android mobile operating system to attain privileged control (known as "root access") within Android's subsystem.
Rooting is often performed with the goal of overcoming limitations that carriers and hardware manufacturers put on some devices, resulting in the ability to alter or replace system applications and settings, run specialized apps that require administrator-level permissions, or perform other operations that are otherwise inaccessible to a normal Android user. On Android, rooting can also facilitate the complete removal and replacement of the device's operating system, usually with a more recent release of its current operating system.
As Android was derived from the Linux kernel, rooting an Android device is similar in practice to accessing administrative permissions on Linux or any other Unix-like operating system such as FreeBSD or OS X.
The process of rooting varies widely by device, but usually includes exploiting a security weakness in the firmware of the device, and then copying the su binary to a location in the current process's PATH (e.g. /system/xbin/su) and granting it executable permissions with the chmod command. A supervisor application like SuperUser or SuperSU can regulate and log elevated permission requests from other applications. Many guides, tutorials, and automatic processes exist for popular Android devices facilitating a fast and easy rooting process.
For example, shortly after the HTC Dream was released, it was quickly discovered that anything typed using the keyboard was being interpreted as a command in a privileged (root) shell. Although Google quickly released a patch to fix this, a signed image of the old firmware leaked, which gave users the ability to downgrade and use the original exploit to gain root access. Once an exploit is discovered, a custom recovery image that skips the digital signature check of a firmware update package can be flashed. In turn, using the custom recovery, a modified firmware update can be installed that typically includes the utilities (for example the Superuser app) needed to run apps as root.
The Google-branded Android phones, the Nexus One, Nexus S, Galaxy Nexus and Nexus 4, as well as their tablet counter parts, the Nexus 7 and Nexus 10, can be boot-loader unlocked by simply connecting the device to a computer while in boot-loader mode and running the Fastboot program with the command "fastboot oem unlock". After accepting a warning the boot-loader will be unlocked so that a new system image can be written directly to flash without the need for an exploit.
Recently, Motorola, LG Electronics and HTC have added security features to their devices at the hardware level in an attempt to prevent retail Android devices from being rooted.[citation needed] For instance, the Motorola Droid X has a security boot-loader that will put the phone in "recovery mode" if unsigned firmware is loaded onto the device, and the Samsung Galaxy S II will display a yellow triangle indicator if the device firmware has been modified.
Legality
Australia
Rooting of any device is legal if the purpose is to run legal apps
Europe
The Free Software Foundation Europe argues that it is legal to root or flash any device. According to the European Directive 1999/44/CE, replacing the original operating system with another does not void the statutory warranty that covers the hardware of the device for two years unless the seller can prove that the modification caused the defect.
United States
On July 26, 2010, the United States Copyright Office announced a new exemption making it officially legal to root a device and run unauthorized third-party applications, as well as the ability to unlock any cell phone for use on multiple carriers.
On October 28, 2012, the US Copyright Office updated their exemption policies. The rooting of smartphones continues to be legal "where circumvention is accomplished for the sole purpose of enabling interoperability of [lawfully obtained software] applications with computer programs on the telephone handset." However, the U.S. Copyright office refused to extend this exemption to tablets, arguing that the term "tablets" is broad and ill-defined, and an exemption to this class of devices could have unintended side effects
related thing in android
Accelerometer
Accelerometers are increasingly being incorporated into personal electronic devices to detect the orientation of the device, for example, a display screen.
A free-fall sensor is an accelerometer used to detect if a system has been dropped and is falling. It can then apply safety measures such as parking the head of a hard disk to prevent a head crash and resulting data loss upon impact. This device is included in the many common computer and consumer electronic products that are produced by a variety of manufacturers. It is also used in some data loggers to monitor handling operations for shipping containers. The length of time in free fall is used to calculate the height of drop and to estimate the shock to the package.
Motion input
Some smartphones, digital audio players and personal digital assistants contain accelerometers for user interface control; often the accelerometer is used to present landscape or portrait views of the device's screen, based on the way the device is being held
Android Debug Bridge
The Android Debug Bridge (ADB) is a toolkit included in the Android SDK package. It consists of both client and server-side programs that communicate with one another. The ADB is typically accessed through the command-line interface.
The format for issuing commands through the ADB is typically:
adb [-d|-e|-s <serialNumber>] <command>
In a security issue reported in March 2011, ADB was targeted as a vector to attempt to install a rootkit on connected phones using a "resource exhaustion attack".
Android Developer Lab
Android Developer Lab is a series of mobile software development-focused events around the world held annually by Google. They include bootcamp and technical sessions focused on Android and give participants an excellent chance to learn about the state of the Android platform, get hands-on with the latest version of the SDK, test applications on the latest sample Android devices, get questions answered by Google engineers from the Android team as well as meet other like-minded members of the local Android developer community.
Bootcamp is a hands-on training experience where Google engineers show attendees how to get started with Android development, from Android SDK installation to the creation of Android applications. Technical Sessions are presentations where Google engineers speak about key Android features and show developers how to use them effectively to create high quality applications.
Android Open Accessory Development Kit
The Android platform introduces Android Open Accessory support, which allows external USB hardware (an Android USB accessory) to interact with an Android-powered device in a special "accessory" mode. When an Android-powered device is in accessory mode, the connected accessory acts as the USB host (powers the bus and enumerates devices) and the Android-powered device acts as the USB device. Android USB accessories are specifically designed to attach to Android-powered devices and adhere to a simple protocol (Android accessory protocol) that allows them to detect Android-powered devices that support accessory mode
Android Dev Phone
The Android Dev Phone (ADP) is a SIM-unlocked and bootloader unlocked Android device that is designed for advanced developers. While developers can use regular consumer devices purchased at retail to test and use their apps, some developers may choose not to use a retail device, preferring an unlocked or no-contract device
Android Developer kit
The Android software development kit (SDK) includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. Currently supported development platforms include computers running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, Windows XP or later. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA IDE (all editions) fully supports Android development out of the box, and NetBeans IDE also supports Android development via a plugin. Additionally, developers may use any text editor to edit Java and XML files, then use command line tools (Java Development Kit and Apache Ant are required) to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely)
APK (file format)
Android application package file (APK) is the file format used to distribute and install application software and middleware onto Google's Android operating system. To make an APK file, a program for Android is first compiled, and then all of its parts are packaged into one file. This holds all of that program's code (such as .dex files), resources, assets, certificates, and manifest file. As is the case with many file formats, APK files can have any name needed, provided that the file name ends in ".apk"
APK files are ZIP file formatted packages based on the JAR file format, with .apk file extensions. The MIME type associated with APK files is application/vnd.android.package-archive.
Apache harmony
Apache Harmony was an open source, free Java implementation, developed by the Apache Software Foundation.[2] It was announced in early May 2005 and on October 25, 2006, the Board of Directors voted to make Apache Harmony a top-level project. The Harmony project achieved (as of February 2011) 99% completeness for JDK 5.0, and 97% for Java SE 6.[3]
On October 29, 2011 a vote was started by the project lead Tim Ellison whether to retire the project. The outcome was 20 to 2 in favor,[4] and the project was retired on November 16, 2011.[5]
Bionic (software)
The Bionic libc is a derivation of the BSD standard C library code that was originally developed by Google for the Android embedded operating system. Bionic has several major Linux-specific features and development continues independent of other code bases. The publicly stated goals for Bionic are:
BSD license: Android uses a Linux kernel which is under the GNU General Public License (GPL), but Google wished to isolate Android applications from the effects of the GPL.
Small size: Bionic is much smaller than the GNU C Library (glibc) and somewhat smaller than uClibc.
Speed: Bionic is designed for CPUs at relatively low clock frequencies.
Bionic lacks many features found in full libc implementations, such as wide character and C++ exception handling support. Also some functions defined in the Bionic header are still unimplemented, which may trigger unexpected behavior in some cases.
As of Android Jelly Bean MR1 (4.2), bionic includes support for Glibc's FORTIFY_SOURCE. FORTIFY_SOURCE is a feature where unsafe string and memory functions (such as strcpy, strcat, and memcpy) include checks for buffer overruns when buffer sizes can be determined at compile time. This feature is only available for applications compiled with gcc for ARM processors.
The recommended way of using Bionic is with the Android Native Development Kit.
Bluetooth profile
A Bluetooth profile is a specification regarding an aspect of Bluetooth-based wireless communication between devices. In order to use Bluetooth technology, a device must be compatible with the subset of Bluetooth profiles necessary to use the desired services. A Bluetooth profile resides on top of the Bluetooth Core Specification and (optionally) additional protocols. While the profile may use certain features of the core specification, specific versions of profiles are rarely tied to specific versions of the core specification. For example, there are Hands-Free Profile (HFP) 1.5 implementations using both Bluetooth 2.0 and Bluetooth 1.2 core specifications.
The way a device uses Bluetooth technology depends on its profile capabilities. The profiles provide standards which manufacturers follow to allow devices to use Bluetooth in the intended manner. For the Bluetooth low energy stack according to Bluetooth V4.0 a special set of profiles applies.
At a maximum, each profile specification contains information on the following topics:
Dependencies on other formats
Suggested user interface formats
Specific parts of the Bluetooth protocol stack used by the profile. To perform its task, each profile uses particular options and parameters at each layer of the stack. This may include an outline of the required service record, if appropriate.
CyanogenMod
CyanogenMod is an open source replacement firmware for smart phones and tablet computers based on the Android mobile operating system. It offers features and options not found in the official firmware distributed by vendors of these devices.
Features supported by CyanogenMod include native theming support, FLAC audio codec support, a large Access Point Name list, an OpenVPN client, an enhanced reboot menu, support for Wi-Fi, Bluetooth, and USB tethering, CPU overclocking and other performance enhancements, soft buttons and other "tablet tweaks", toggles in the notification pull-down (such as Wi-Fi, Bluetooth and GPS), app permissions management, as well as other interface enhancements. According to its developers, CyanogenMod does not contain spyware or bloatware. CyanogenMod is also stated to increase performance and reliability compared with official firmware releases.
CyanogenMod is developed as free and open source software based on the official releases of Android by Google, with added original and third-party code.
Although only a subset of total CyanogenMod users elect to report their use of the firmware, as of 30 March 2013, CyanogenMod has recorded over four million active installs on a multitude of devices.
Dalvik
Dalvik is the process virtual machine (VM) in Google's Android operating system. It is the software that runs the apps on Android devices. Dalvik is thus an integral part of Android, which is typically used on mobile devices such as mobile phones and tablet computers as well as more recently on embedded devices such as smart TVs and media streamers. Programs are commonly written in Java and compiled to bytecode. They are then converted from Java Virtual Machine-compatible .class files to Dalvik-compatible .dex (Dalvik Executable) files before installation on a device. The compact Dalvik Executable format is designed to be suitable for systems that are constrained in terms of memory and processor speed.
db4o (database for objects)
db4o (database for objects) is an embeddable open source object database for Java and .NET developers. It is developed, commercially licensed and supported by Versant.
db4o is written in Java and .NET and provides the respective APIs. db4o can run on any operating system that supports Java or .NET. db4o is offered under multiple licenses, including the GNU General Public License (GPL), the db4o Opensource Compatibility License (dOCL), and a commercial license for use in proprietary software.
Eclipse
In computer programming, Eclipse is a multi-language software development environment comprising a base workspace and an extensible plug-in system for customizing the environment. It is written mostly in Java. It can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Fortran, Haskell, JavaScript, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy, Scheme, and Erlang. It can also be used to develop packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others.
Embedded Java
In discussions of Java ME specifications, such as the CDC/CLDC device capability sets and the MIDP profile definition, attention needs to be given to Embedded Java, which additionally requires very specialized, optimized JVMs, and the means to update the installed software and services such as OSGi.
Recent developments in the field are
In January 2013, STMicroelectronics announced full Java support for STM32 F3/F4-series microcontrollers STM32 and stm32java
In March 2013, MicroEJ product line from IS2T for ARM Cortex-M (all RTOS), ARM Cortex-A (Linux, Integrity, VxWorks), ARM7-TDMI (all RTOS), ARM9 (Linux, Integrity), AVR32 UC3 (all RTOS), V850 (all RTOS).
Before 2012, the Squawk Virtual Machine, a JVM developed by Sun Microsystems and deployed as part of Project Sun SPOT.
The principal difference between Embedded Java and the several Java ME configurations is that the former is envisioned for use only in closed systems. That is, Embedded Java is for use in products that cannot be upgraded in the field. All of the Java code in these embedded systems is contained in flash memory. Thus the only class libraries that need to be present are the very methods and fields actually used by the Java application code; all the rest can be prestripped from the statically linked executable.
Embedded Linux
Embedded Linux is the use of Linux in embedded computer systems such as mobile phones, personal digital assistants (PDA), media players, set-top boxes, and other consumer electronics devices, networking equipment, machine control, industrial automation, navigation equipment and medical instruments.
Android has embedded linux
Java (programming language)
Java is a general-purpose, concurrent, class-based, object-oriented computer programming language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to bytecode (class file) that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is, as of 2012, one of the most popular programming languages in use, particularly for client-server web applications, with a reported 10 million users.[10][11] Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.
The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1991 and first released in 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath.
Mobile application development
Mobile application development is the process by which application software is developed for low-power handheld devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These applications can be pre-installed on phones during manufacturing, downloaded by customers from various mobile software distribution platforms, or delivered as web applications using server-side or client-side processing (e.g. JavaScript) to provide an "application-like" experience within a Web browser. Application software developers also have to consider a lengthy array of screen sizes, hardware specifications and configurations because of intense competition in mobile software and changes within each of the platforms.
sources (credits)
- wiki
-from sony
-edureka
-android.com
-wisegeek
-wiki
-wiki
Re: Complete guide about android
Ok, good job...:thumbup:
In the whole the last few words, explaining about api level was nice....
But it seems like copy paste job??
Thanks for the info.
sanjaykumar.sanjay69 said:
Ok, good job...:thumbup:
In the whole the last few words, explaining about api level was nice....
But it seems like copy paste job??
Click to expand...
Click to collapse
it's taken from other sources
i am combining many
to give complete info
rabies876 said:
Thanks for the info.
Click to expand...
Click to collapse
much more comin soon
Very nice guide. Thanks. :good:
Good job at compiling this information. I'll stick it for now until my team and I have time to review it.
very useful...great guide
thank you for sharing this
nice
thanks for sharing.
good read
Android Developer
The Android software development kit (SDK) includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. Currently supported development platforms include computers running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, Windows XP or later. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA IDE (all editions) fully supports Android development out of the box, and NetBeans IDE also supports Android development via a plugin. Additionally, developers may use any text editor to edit Java and XML files, then use command line tools (Java Development Kit and Apache Ant are required) to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely).
mike hussey said:
The Android software development kit (SDK) includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. Currently supported development platforms include computers running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, Windows XP or later. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA IDE (all editions) fully supports Android development out of the box, and NetBeans IDE also supports Android development via a plugin. Additionally, developers may use any text editor to edit Java and XML files, then use command line tools (Java Development Kit and Apache Ant are required) to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely).
Click to expand...
Click to collapse
thanks
hi guys please i have upgraded my coby kyros mid 8128 from 2.3 to 4.1 but it is giving me problems so i want to go back to 2.3 please how do i do that. i need to return back to 2.3 because the 4.1 keeps freezing, sometimes the media player stops working i mean the are a whole lot of probles please help me to do that. thanks very mach for your help.
nice guide.
What is the mean from 3rd ?
-Forz- said:
What is the mean from 3rd ?
Click to expand...
Click to collapse
this means the things which related in android
thanks for infor....

Custom firmware for a TV - GPL & stuff

By analyzing the firmware update of a Toshiba TV I own some GPL text popped up. The TV actually has a menu that describes the OSS used, accompanying licenses and the means to request source code.
After writing an email I have received the offer to have the source code for the GPL code only, even though I specifically asked for a compilable format:
"
We can provide the only GPL source code.
We cannot provide that are licensed except for GPL.
Due to the mention above, it is not possible to install executable binary.
"
Since my intention is to replace some of the built-in apps (Youtube, Media Player) with my own versions how should I go about this ?
1. Should I push for a source code offer that is able to produce flashable binaries? The only user-accesible way to update the TV is via Ethernet/WiFi or USB.
2. Should I request help from someone to help me fully decompile the binaries so I can have access to the linked resources (drivers, apps, basically the file system) ?
As far as I was able to dig out, the TV is based on Linux, U-boot, some Webkit derivative. I suspect the processor is MIPS-based ("VDLinux 1.1.x MIPS 2010-02-13") but I cannot find any mention of this. The browser identifies itself as ~ "Mozilla/5.0 (X11; U; Linux i686; B AL) eWebKit/534.1 (KHTML, like Gecko) HbbTV/1.1} ". The panel is sourced by MSTAR which is probably providing most of the LCD boards for TV and projector makers.
I have no idea where to post this but this forum seems like a good start.

Categories

Resources