Showing posts with label Developer Guide. Show all posts
Showing posts with label Developer Guide. Show all posts

Saturday, August 11, 2012

Best & Most Popular Android Devices For Developer


What are the best android devices for developers ?

Android Devices For developer is optional steps but some development process will not available in the emulator, so we need the android devices. So let explore the top popular android device category .

Many developers ask What is the best android devices fro developer, in terms of ease of development, debugging features , Samsung  or Htc or other !! ?
Before we discuss the android developer devices  let know more details about android devices that available in the market .

Android Devices in the Market .

Android device companies like htc, Samsung  provide us a different shapes and sizes of Android devices . Most popular android devices can be categorized  into the following:

-  Smartphones 
- Tablets
- E-reader devices
- Netbooks
- MP4 players
- Internet TVs

Most popular android devices in the market that run Android OS  is Samsung Galaxy S II, the Motorola Atrix 4G, and the HTC EVO 4G Smartphones, etc see the picture below.
top & most android devices
Samsung Galaxy S II


Another popular category of devices that manufacturers  are rushing out is the tablet . Tablets typically come in two sizes: seven inches and ten inches, measured diagonally. The images below show the  Samsung Galaxy Tab 10.1  and the Asus Eee Pad Transformer TF101, both 10.1-inch tablets. Both the Samsung Galaxy 10.1 and the Asus Eee Pad Transfer TF101 run on Android 3.

Tablets Android devices
Samsung Galaxy 10.1 and the Asus Eee Pad Transfer TF101


Besides Smartphones and tablets, Android is also beginning to appear in dedicated devices, such as e-book readers. The images below show the Barnes and Noble’s NOOK Color  and Amazon’s Kindle Fire , both of which are color e-book readers running the Android OS.

e-book readers Android devices
Noble’s NOOK Color & Amazon’s Kindle Fire
In addition to these popular mobile devices, Android is also slowly finding its way into your living room. People of Lava, a Swedish company, has developed an Android-based TV, called the Scandinavia Android TV see the image below.
 Scandinavia Android TV devices
 Scandinavia Android TV 


Google has also ventured into a proprietary smart TV platform based on Android and codeveloped with companies such as Intel, Sony, and Logitech. Figure 1-6 shows Sony’s Google TV.
Now google lunch android 4.xx , the Samsung Galaxy Nexus  is one of the devices running on Android 4.0.

 Samsung Galaxy Nexus android devices
 Samsung Galaxy Nexus android 

At the end of this article and In my opinion Nexus One or any phone that is using the Google experience meaning that the manufacturer did not put a custom user - interface on the phone , so I recommend this device for developer also check this link for more details.


Google Nexus 7 Tablet - 8GB 

Google Nexus 7 Tablet (16 GB) 



Best phone for developing Android software 





Friday, August 10, 2012

Android Architecture For System Application Software Stack


Android Software Stack & Native Application Architecture

NATIVE Android  APPLICATIONS 

Before diving into the Android architecture we begin with the native application then we will explore the Android architecture which called Android software stack . Android devices typically come with a suite of preinstalled applications like :- 
- An e-mail client
- An SMS management application
- A full PIM (personal information management) suite, including a calendar and contacts list
- A WebKit-based web browser
- A music player and picture gallery
- A camera and video recording application
- A calculator
- A home screen
- An alarm clock
Android devices also ship with the following proprietary Google mobile applications:
- The Google Play Store for downloading  third-party Android applications
- ‹A fully featured mobile Google Maps application, including Street View, driving directions, and turn-by-turn navigation, satellite views, and traffic conditions
- The Gmail email client
- The Google Talk instant-messaging client
- The YouTube video player
OEMs company can customize the user interface and the applications bundled with each Android device. Several OEMs have done this, including HTC with Sense, Motorola with MotoBlur, and Samsung with TouchWiz.
The look and feel of the user interface may vary, but your applications will function in the same way across all compatible Android devices.

Android Software Stack

The Android software stack is, put simply, a Linux kernel and a collection of C/C++ libraries exposed through an application framework that provides services for, and management of, the run time and applications. The Android software stack is composed of the elements shown in Figure .

Android architecture for system application - software stack
Android architecture 
Linux kernel — Core services (including hardware drivers, process and memory management, security, network, and power management) are handled by a Linux 2.6 kernel. 
The kernel also provides an abstraction layer between the hardware and the remainder of the android architecture stack.
  ‹ Libraries — Running on top of the kernel, Android includes various C/C++ core libraries such as libc and SSL, as well as the following:
- A media library for playback of audio and video media
- A surface manager to provide display management
  ‹ Graphics libraries that include SGL and OpenGL for 2D and 3D graphics
  ‹ SQLite for native database support
  ‹ SSL and WebKit for integrated web browser and Internet security
  ‹ Android run time — The run time is what makes an Android phone an Android phone rather than a mobile Linux implementation. Including the core libraries and the Dalvik VM, the Android run time is the engine that powers your applications and, along with the libraries, forms the basis for the application framework.
  ‹ Core libraries — Although most Android application development is written using the Java language, Dalvik is not a Java VM. The core Android libraries provide most of the functionality available in the core Java libraries, as well as the Android-specific libraries.
  ‹ Dalvik VM — Dalvik is a register-based Virtual Machine that’s been optimized to ensure that a device can run multiple instances efficiently. It relies on the Linux kernel for threading and low-level memory management.
  ‹ Application framework — The application framework provides the classes used to create Android applications. It also provides a generic abstraction for hardware access and manages the user interface and application resources.
  ‹ Application layer —  All applications, both native and third-party, are built on the application layer by means of the same API libraries. The application layer runs within the Android run time, using the classes and services made available from the application framework.

The Dalvik Virtual Machine

One of the key elements of  android architecture  is the Dalvik VM. Rather than using a traditional Java VM such as Java ME, Android uses its own custom VM designed to ensure that multiple instances run efficiently on a single device.
The Dalvik VM uses the device’s underlying Linux kernel to handle low-level functionality, including security, threading, and process and memory management. It’s also possible to write C/C++  applications that run closer to the underlying Linux OS. Although you can  do this, in most cases there’s no reason you should need to.
If the speed and efficiency of C/C++ is required for your application, Android provides a native development kit (NDK). The NDK is designed to enable you to create C++ libraries using the libc and libm libraries, along with native access to OpenGL. (but This Blog focuses exclusively on writing applications that run within Dalvik using the SDK; NDK development is not within the scope of this blog. If your inclinations run toward NDK development, exploring the Linux kernel  and C/C++ underbelly of Android, modifying Dalvik, or otherwise tinkering with things under the hood, check out the Android Internals Google Group .)

All Android hardware and system service access is managed using Dalvik as a middle tier. By using  a VM to host application execution, developers have an abstraction layer that ensures they should never have to worry about a particular hardware implementation.
The Dalvik VM executes Dalvik executable files, a format optimized to ensure minimal memory footprint. You create  .dex executables by transforming Java language compiled classes using the tools supplied within the SDK.
-   The android system uses a special virtual machine, Dalvik Virtual Machine to run Java based applications. 
- Dalvik uses an own bytecode format which is different from Java bytecode.
- You cannot directly run Java class files on Android, they need to get converted in the Dalvik bytecode format.

Android Application Architecture

we discuses  android application architecture  with more details in the following article : 

Android Libraries

Android architecture offers a number of APIs for developing your applications. Rather than list them all here, check out the documentation , which gives a complete list of packages included in the Android SDK.
Android and android architecture is intended to target a wide range of mobile hardware, so be aware that the suitability and implementation of some of the advanced or optional APIs may vary depending on the host device.

Monday, August 6, 2012

Android Vs Other Platforms & Feature For Android Users.

android vs ios platforms
In the previous article (Why Developing For Android Mobile Devices? Marketer, Developer Perspective.) we discuss why DEVELOP FOR ANDROID also why develop of general mobile platforms from the developer perspective, in this article we will continue explain why you must develop for android from user perspective and  why android different from other platforms and finally will explained the major difference between j2me and IOS and compare them with an android platform.
First of all let us explore the feature that android provide for the end user.

For end users - android user perspective 

- No license fee
- More than 30K application in the market with 61% are free apps
- Supported by dozens of hardware manufacturers
- Low price smart-phone devices
- Abilities to integrate with Google’s services
- Android Takes Lead in US Smartphone Market
- In January 2011, 31.2% of smartphone market, (7.1% in 2010), 30.4% Blackberry, and 24.7% iPhone

What Android Has That Other Platforms Don’t Have


Many of the features listed in the previous article (what is android? Developer applications guide), such as 3D graphics and native database support, are also available in other native mobile SDKs, as well as becoming available on mobile browsers. 
The following non comprehensive list details some of the features available on Android that may not be available on all modern mobile development platforms:
- Google Maps applications 
 The Map View lets you display, manipulate, and annotate a Google Map within your Activities to build map-based applications.
- Background services and applications 
You can create applications based on an event-driven model, working silently while other applications are being used or while your mobile sits ignored until it rings, flashes, or vibrates to get your attention. 
Android provides the same opportunities for all applications and developers.
- Shared data and inter-process communication 
 Using Intents and Content Providers, Android lets your applications exchange messages, perform processing, and share data between other application. 
- All applications are created equal 
Android doesn’t differentiate between native applications and those developed by third parties. This gives consumers unprecedented power to change the look and feel of their devices by letting them completely replace every native application with a third-party alternative that has access to the same underlying data and hardware.
- Wi-Fi Direct and Android Beam
Using these innovative new inter-device communication APIs, you can include features such as instant media sharing and streaming. 
- Home-screen Widgets, Live Wallpaper, and the quick search box 
 Using Widgets and Live Wallpaper, you can create windows into your application from the phone’s home screen.  
The quick search box lets you integrate search results from your application directly into the phone’s search functionality.

Android vs. J2ME

- Multiple device configurations
- J2ME has 2 classes of micro devices
- Android offers only one
- Ease of understanding
- J2ME has multiple UI model (MIDlets, Xlets, AWT, Swing …)
- Android support for only one, so it would be more easier to understandthan J2ME
- Responsiveness
- Dalvik VM vs. JVM
- Dalvik VM vs. KVM
- Java compatibility
- Android runs .dex bytecode
- Runtime interpretation of Java bytecode is not possible
- Adoption
- Most of mobile phone support for J2ME
- But uniformity, cost, ease of development in Android are the reasons for java developer to program for it
- Java SE support
- Android support for J2SE more complete than J2ME CDC (except AWT & Swing)

Apple vs. Android


- Games 52.2% of app sales in 2010
- 350K apps in iStore, 130K in Android market - 294K in may .
 - Android easiest to write for Tools plus getting published
-  Fragmented hardware

Why Developing For Android Mobile Devices? Marketer, Developer Perspective.

WHY DEVELOP FOR MOBILE?

In market terms, the development of modern mobile Smartphones multifunction devices including a phone but featuring a full featured web browser, cameras, media players, WI-Fi, and location-based services have fundamentally changed the way people interact with their mobile devices and access the Internet which increasing the development trends for  Developing Android Mobile application for a lot of devices.

-  More than 3 billion mobile phone users around the worldwide and many developers.
- 2009 marked the year that more people accessed the Internet for the first time from a mobile phone rather than a PC.
- Access the Internet by mobile phone like android and IOS devices will increase than using personal computers.
- High-speed mobile data and WI-Fi hotspots, has created a huge opportunity for advanced mobile applications.
- Smartphone applications have changed the way people use their phones. This gives you, the application developer a unique opportunity to create dynamic, compelling new applications that become a vital part of people’s lives.

WHY DEVELOP FOR ANDROID?

The first question that every developer is asking himself, before learning, or take training about new technology or spending a time to search a resources is why develop for Android? Why Android platforms and not any other platforms? I'm going to show you the answer of this question into those reasons in this Blog.

From Developer perspective 

ANDROID MARKET SHARE

- The number of Android phones sold every day is larger than that of any other mobile phone operating system (at least in the United States and Europe). Moreover the number of Android phones sold in those regions keeps growing, so after applying some simplest math skills, it becomes evident that unless something extraordinary happens we can clearly say that Android is the platform that's going to have the most users in the future, maybe it will even become a standard for all phones. And that means that you will have more people who can buy or use your product also more developer for Android OS. 
-  Android represents a clean break, a mobile framework based on the reality of modern mobile devices designed by developers, for developers.
-  Simple, powerful, and open SDK which include all tools for the Android mobile developer.
 - Licensing fees except Google market account 25$ for ever.
 - Very good and excellent documentation.
- Huge developer community, Android represents an opportunity to create software that changes how and why people use their mobile phones.
- No certification is required to become an Android developer.
- Google Play provides free, up-front purchase, and in-app billing options for distribution and monetization of your applications.
- There is no approval process for application distribution.  Developers have total control over their brands.
- More than 850,000 new Android devices are activated daily, with many studies showing the largest proportion of new Smartphone sales belonging to Android devices.
As of March 2012, Google Play (formerly Android Market) has expanded its support for application sales to 131 countries, supporting more than 10 billion installs at a growth rate of 1 billion downloads per month.

- JAVA PROGRAMMING LANGUAGE 

Apple products, like the iPhone, use Objective C (all developer talk is complicated language when compares it with other common language) that was invented by Apple. However if you want to develop apps for Android the only thing that you need to know is Java and Android API for Java. Unlike Objective C, Java is a very powerful programming language that has been around for 15 years and thus has millions of pages of articles about it, tutorials, books, courses, learning materials, also very powerful integrated with oracle products etc. As well as a lot of professionals who have experience working with Java and a lot of libraries and other kinds of enhancements. And besides that - the experience that you get from programming for Android you might also use in a lot of other fields.
Remember : Java is the android programming language which needs it to build our applications .

Publishing the app to the Market (Google play ) .

Google offers the Google Play service in which programmers can offer their Android application to Android users. Google phones include the Google Play application which allows installing applications.
Google Play also offers an update service, e.g. If android developer uploads a new version of his application to Google Play, this service will notify existing users that an update is available and allow to install it.
Google Play used to be called Android Market.
To be able to publish the app on the google play you need the following
- Requires Google Developer Account
- $25 fee
- Link to a Merchant Account
- Google Checkout
- Link to your checking account
-  Google gets 30% you get 70% .

Saturday, August 4, 2012

What is Android? Developer Applications Guide

How to develop Android applications ? First You need What is Android?

Google’s Andy Rubin describes Android as: 

The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation.

What I need For developing Android Application? 

To develop Android applications  you needs the following thing :

First of All , you must Know  a Few  about Android operating system which is based on Linux with a Java programming interface.   [ So You must Know Java Programming To write the Android App] .
All Android applications written in Java and converted to the Dalvik executable .dex

Second : you need (Android SDK)  Software Development Kit  .
The SDK provides all necessary tools to develop Android applications also The Android SDK provides you the API libraries  and developer tools necessary to build, test, and debug apps for Android.
We will discuss all tools later step by step which we needed to develop application , but now just keep in mind you need know Java [ if you not java developer , don't worry about it ] and install The SDK .

Features of Android

Storage

Uses SQLite, a lightweight relational database, for data storage

Connectivity

Supports GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth includes A2DP and AVRCP, WiFi, LTE, and WiMAX

Messaging

Supports both SMS and MMS

Web browser

Based on the open-source WebKit, together with Chrome’s V8 JavaScript engine

Media support

Includes support for the following media: H.263, H.264 (in 3GP or MP4
Container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in
MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and
BMP)

Hardware support

Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor, and GPS
Multi-touch
Supports multi-touch screens

Multitasking

Supports multi-tasking applications

Flash support

Android 2.3 supports Flash 10.1

Tethering

Supports sharing of Internet connections as a wired/wireless hotspot

Security

Android is a multi-process system, in which each application (and parts of the system) runs in its own process. Most security between applications and the system is enforced at the process level through standard Linux facilities, such as user and group IDs that are assigned to applications.  On the other word the Android system will create a unique user and group ID for every Android application. Each application file is private to this generated user, e.g. other applications cannot access these files. 

Additional finer-grained security features are provided through a "permission" mechanism that enforces restrictions on the specific operations that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.

The Android market

Google Play - Android Market  .

Google offers the Google Play service in which programmers (Android Developer) can offer their Android application to Android users. Google phones include the Google Play application which allows to install applications.
Google Play also offers an update service, e.g. if a programmer (Android Developer) uploads a new version of his application to Google Play, this service will notify existing users that an update is available and allow to install it. 

Other Feature For Android Market


- Google Market - Part of GMS Apps .

- 3party apps submitted to Google, approved and distributed through the market.

- Both Free and Paid apps.

- Apps now limited to 50 MB; updates possible through Market Monetization through ads available.

- Available in many countries, not all countries have support for paid apps.

- Other Marketplace applications available – Amazon has announced its own Android Marketplace.

- App searches filtered based on Manifest file - eg. if a device does not have trackball, apps using trackball will be filtered out.

- Every app publishes a list of components the app will access and permissions need to be granted before installation.  
- Apps installed on device and SD card - SD Card from Froyo.

Future possibilities :


- Google Android Sales to Overtake iPhone in 2012

- The OHA is committed to making their vision a reality: to deploy the Android platform for every mobile operator, handset manufacturers and developers to build innovative devices

- Intel doesn’t want to lose ownership of the notebook market, so they need to prepare for anything, including Android

- Fujitsu launched an initiative to offer consulting and engineering expertise to help run Android on embedded hardware, which aside from cell phones, mobile internet devices, and portable media players, could include GPS devices, thin-client computers and set-top boxes.

- More Android devices are coming and some will push the envelope even further .