Tuesday, 26 April 2011

Anybody interested to get started with Android, stay tuned.


Mobile operating systems
Android is an open source software stack for mobile devices that includes an operating system, middleware and key applications.
An open source software is available as source code , that permits the user to study, modify and improve the software.
A mobile operating system(Mobile OS) is the operating system that controls a mobile device  or information appliance – similar to the operating system such as windows, Mac OS or Linux that controls a desktop , computer or Laptop.
 
Following are the list of few main competitors in Mobile OS
1.Android from Google Inc
2.BlackBerry OS
3.iOS from Apple
4.Symbian OS from Symbian Foundation
5.Window Mobile from Microsoft

      
Android













  • open platform http://source.android.com
  • can compile custom firmwares - good for hackers and   other
  • good framework, extended on each new firmware
  • supports multitasking  
  • nice IDE - Eclipse, NetBeans
  • development SDK is free  
  • easy to debug, can send logs to developers
  • programming language is Java but bridges from other languages exist (C# .net - Mono, etc)
  •  Android supports Java 1.5 and translates the byte code to its own custom Dalvik byte code optimized for mobile devices.
  • for the hardcore programmers, Android offers the possibility of programming in C using the native dev kit NDK
  • can run script languages like LUA, Perl, Python, etc
  • can install third party applications from sdcard, random sites - not strict to a specific market
  • applications can hook and override everything - email interface, SMS sending, custom keyboards, etc
  • supports widgets
  • can publish applications on the Android market instantly
  • user has access to the sdcard and can use it as a USB disk
  
iPhone
  • closed platform
  • no multitasking except for some Apple applications. multitasking is probably going to be introduced in the next vertion of the iPhone, the iPhone 4
  • development kit costs ~90E
  • programming language is Objective C - but bridges exist from Java, C#, etc
  • next version of iPhone is supposed to only allow Objective C code, you must program in Objective C if you want to create an iPhone application
  • applications are not allowed to duplicate the iPhone functionality - ie no custom email interface, etc
  • does not support widgets - unless the phone is jail broken
  • user does not have access to the sdcard - user can only do synchronization via internet or LAN  
  • third party applications can only be installed from the Apple store. For testing the applications, developers can use Ad Hoc publishing   
  • publishing on the store is a very lengthy and tiresome process. Apple has many and bizarre rules. Many applications were rejected for strange reasons.
  • no Adobe Flash support

Nokia
  • opened Symbian and says the future will be QT and WRT - they will cut support to any other environment including J2ME
  • QT is a framework that adds a layer of abstraction over gui, network, gps, etc.
  • QT is cross platform and cross programming language - C++, C#, Java, etc. the licenses are GPL and LGPL.
  • QT runs on Maemo, MeeGo, BlackBerry, Symbian, Android, iPhone, Windows Mobile, desktop PC, consumer electronics, car entertainment, etc
  • WRT - web runtime - a cool feature that allows users to write applications in HTML, JS and CS. You build the app like a normal web page, and you interact with the phone platform/hardware using the WRT bridge.
    No need to learn any other technology. Just HTML, JS and CS. Very important: JS can call native code, but also the other way around. It seems you can call WRT JS with native code.
  • supports widgets
  • supports Adobe Flash Lite  

BlackBerry

  •  as it is now, the programming environment is Java native and J2ME
  •  no Adobe Flash support yet.  









Windows Mobile 6.x
  • native C, C# with PInvoke - not worth mentioning since MS released WM7 and broke compatibility with 6.5

Windows Mobile 7 

  • closed platform 
  • MS breaks compatibility with WM 6.x -
  • programming environment is Silverlight and XNA
  • no native programming ie no hooking and overriding keyboard, etc - they removed PInvoke   
  • nice IDE - Visual Studio 2010
  • does not support multitasking for third party applications
  • third party applications can only be installed from the MS marketplace
  • no Adobe Flash support  




Comparison Between Android OS & Other OS (Operating System)




Features
Android
iOS
(Apple)
BlackBerry
Symbian
License
Open Source
Proprietary
Proprietary
Eclipse Public License
OS Family
Linux
Mac OS
Mobile OS
Mobile OS
Programmed In
C, C++ and Java
C, C++, Objective C
Java
C++


















Now everybody might have got an overview of android OS. Lets go with market strategies..




Now you might have had a brief idea of Android OS , Really leading in market with its advanced features compared to other OS.

Here is some market strategy estimated to take over down the line, by experts & users all around the glob.






Yes, down the line its going to rule the mobile world






Guys, still lot more to go ahead with,,, 
continued....





Monday, 25 April 2011


Anybody interested to get started with Android, stay tuned.



Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android's mobile operating system is based on the Linux kernel.

Android, Inc. was founded in Palo Alto, California, United States in October, 2003 by Andy Rubin (co-founder of Danger), Rich Miner (co-founder of Wildfire Communications, Inc.), Nick Sears (once VP at T-Mobile), and Chris White (headed design and interface development at WebTV). to develop, in Rubin's words "...smarter mobile devices that are more aware of its owner's location and preferences. Android Inc. operated secretively, admitting only that it was working on software for mobile phones.

Google acquired Android Inc. in August, 2005, making Android Inc. a wholly owned subsidiary of Google Inc. Key employees of Android Inc., including Andy Rubin, Rich Miner and Chris White, stayed at the company after the acquisition. Not much was known about Android Inc. at the time of the acquisition, but many assumed that Google was planning to enter the mobile phone market with this move.

Android Architecture

The following diagram shows the major components of the Android operating system. Each section is described in more detail below.

Applications

Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.

Application Framework

By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more.
Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.
Underlying all applications is a set of services and systems, including:
·         A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser
·         Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
·         A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
·         A Notification Manager that enables all applications to display custom alerts in the status bar
·         An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack ,
·          see the Notepad Tutorial for more

Libraries

Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:
·         System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
·         Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
·         Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
·         LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
·         SGL - the underlying 2D graphics engine
·         3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
·         FreeType - bitmap and vector font rendering
·         SQLite - a powerful and lightweight relational database engine available to all applications

Android Runtime

Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

Linux Kernel

Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.
To be continued....