23
1. INTRODUCTION A 2 I Private Limited is a premier organization founded in 1998, growing as an IT Training/service providers and determined to set high standards in IT industry. Initially started as an IT training institute, the institute has now expanded to include software development as well as IT Consultant Services. Currently the institute, operate as three strategic business units focusing on – IT Training, IT Development, and IT Solutions. The mission of the A 2 I Private Limited is to provide its students with the foundation for lifelong learning. Whether they choose to continue their education or enter the workforce, SCA students are trained to succeed. Here, at Bhopal, we believe in creating a dynamic learning environment, both inside and outside of the classroom. Whether students need help within individual courses or are simply looking to expand their horizons through a variety of educational activities, we provide the resources to enable our students’ success. Mentoring and tutoring services Confidential counseling services Workshops on resume writing and interviewing techniques Career Services assistance after graduation Refresher courses for alumni to keep them up to speed Android is most popular mobile platform in other word it is mobile Operating system which can provide multi-function operation in mobile and with the help of android working is fast. It is Linux based operating system generally design for touchscreen mobile. Android is an operating system. This OS is the most popular OS found in mobile devices like, smartphones, tablets, fitness gadgets, etc. The advantages of Android are: Multitasking – Yups, Android phones can run many applications, it means you can browse, Facebook while listened to the song. Ease of Notification – Any SMS, Email, or even the latest articles from an RSS Reader, there will always be a notification on the Home Screen Android phone, do not miss the LED indicator is blinking, so you will not miss a single SMS, Email or even Misscall .

Android Training Report 1

Embed Size (px)

DESCRIPTION

Full fledged android training report.

Citation preview

Table of Contents

1. INTRODUCTION

A2I Private Limited is a premier organization founded in 1998, growing as an IT Training/service providers and determined to set high standards in IT industry. Initially started as an IT training institute, the institute has now expanded to include software development as well as IT Consultant Services. Currently the institute, operate as three strategic business units focusing on IT Training, IT Development, and IT Solutions.The mission of the A2I Private Limited is to provide its students with the foundation for lifelong learning. Whether they choose to continue their education or enter the workforce, SCA students are trained to succeed. Here, at Bhopal, we believe in creating a dynamic learning environment, both inside and outside of the classroom.

Whether students need help within individual courses or are simply looking to expand their horizons through a variety of educational activities, we provide the resources to enable our students success.

Mentoring and tutoring services Confidential counseling services Workshops on resume writing and interviewing techniques Career Services assistance after graduation Refresher courses for alumni to keep them up to speed

Android is most popular mobile platform in other word it is mobile Operating system which can provide multi-function operation in mobile and with the help of android working is fast. It is Linux based operating system generally design for touchscreen mobile.Android is an operating system. This OS is the most popular OS found in mobile devices like, smartphones, tablets, fitness gadgets, etc. The advantages of Android are: Multitasking Yups, Android phones can run many applications, it means you can browse, Facebook while listened to the song. Ease of Notification Any SMS, Email, or even the latest articles from an RSS Reader, there will always be a notification on the Home Screen Android phone, do not miss the LED indicator is blinking, so you will not miss a single SMS, Email or even Misscall . Easy access to thousands of applications via the Google Android Android App Market When you love to install applications or games, through Googles Android App Market, Agan can download applications for free. There are many thousands of applications and games that are ready for download on Android phones You. Phone options are diverse Talk Android phone, it will feel different than the IOS, if the IOS is limited to the iPhone from Apple, then Android is available on mobile phones from various manufacturers, from Sony Ericsson, Motorola, HTC to Samsung. And each handset manufacturer also presents an Android phone in the style of each, such as Motorola with its Motoblur, Sony Ericsson with its Timescape. So You can freely choose the Android phone in accordance with the brand favorite. Can install a modified ROM not satisfied with the standard view of Android, do not worry there are many custom ROM that can be used in your mobile phones Android . Widget absolutely right, with the widgets on the homescreen, You can easily access a variety of settings quickly and easily. Google Maniac If you are a loyal user of Google services ranging from Gmail to Google Reader Android phone has integrated with Google services, so you can quickly check e-mail from Gmail.The reasons for the growing popularity of android are: Open-Source Platform: As android is an open source platform, the developers can able to get more chances of developing new and inventive android applications. Also, the platform is more affordable for the developers who build the applications and for the customers who use the applications. Developer-friendly: Android provides a Software development kit (SDK), which consists of uncomplicated tools for developers to develop their projects easily. The SDK offers an ease of developing Android applications and hence helps developers to transform their ideas into android applications. Thus, it provides a great experience for developers when they develop android applications. Ample opportunities: Due to this invariable growth and popularity of android applications, the developers in various IT organizations get more opportunities to get associated with android. Ample options for tools: Android proffers sundry options for developers to use various tools for the development process. If developers need some extra tools for their development process, the android allows them to exploit third-party tools effectively. Popularity of Android Apps: Nowadays, people are moving towards the android because of the increasing popularity of Smartphones. Hence, the developers have started concentrating more on the android application development. When compared to other operating systems, the android based smartphones are more user-friendly and constructive. Various security options: The major reason for the popularity of android is that the security options obtainable by android applications for Smartphones. The Orbot application on android allows users to perform instant messaging, access internet and access emails without being scrutinized and blocked by the provider of mobile internet services. Vast availability: Unlike the iPhone and Blackberry, Android phones proffer varied availability options to other companies who develop mobile applications. Because of this reason, different variety of Android devices have drastically increased in recent times. Better Performance: As android is supposed to be a Linux-based operating system, it provides smooth operation and advanced performance stability without having the panic of crashes. Supports flash: The newest android version gives great support to flash. Therefore, the Android users get the similar experience of using desktops on their mobile phones. By using Android phones, people enjoy playing graphic games and other entertainment stuffs. Saves Money: As android is an open source platform, it allows developers to develop applications at very low-cost. Also, the time that is taken during the development process is considerably reduced in android. Therefore, Android helps developers to save both time and money. Application Store: The android application store facilitates users to analysis, exploit and download a large variety of android applications. Almost all applications are freely available for users whereas some carries price tags. According to the survey, around 7 lakhs applications are at present available in the Android application store and estimated over 25 billion applications have been downloaded.

Due to these advantages android is quite famous in mobile market. As we can see that android has its own app store through which users can download apps for their phone. This same app store can be used to publish the apps developed by the developers. Google provides an android software development kit (android sdk) for developers to develop applications anywhere around the world. This advantage given by Google for android users and android app developers is one of the major reasons for the success of android. The applications uploaded by the developers is first approved by Google and then made available for the users to download. This feature of having so many developers around the world is not found in ios or blackberry os.During my training period I was assigned a computer loaded with the android sdk which included eclipse (with an android plugin) and a virtual android device with different versions of Android. This software was used for the development of android application.

2. TRAINING

As per Google:Android is a software stack for mobile devices that includes an operating system, middleware and key applications.Figure 1

History of Android At Google, the team led by Rubin developed a mobile device platform powered by the Linux kernel In 2007, the Open Handset Alliance a consortium of several companies which included Google, HTC, Intel, LG, Motorola, Samsung, T-Mobile, etc., was announced. The goal of the Open Handset Alliance is to develop open standards for mobile devices. In 2008, 14 new members joined, including Sony Ericsson, Toshiba Corp, and Vodafone Group. As of today OHA is group of 86 companies.

Versions of Android

PlatformCodeName

1.5CupCake

1.6Donut

2.1clair

2.2Froyo

2.3.0 2.3.7GingerBread

3.0 3.2HoneyComb

4.0 4.0.3IceCreamSandwich

4.1 4.3JellyBean

4.4 4.4.4KitKat

5.0 (Current)Lollipop

Android Architecture

Figure 2

The architectural diagram shows that the Android platform can be broken down into 4 sections: Operating system Middleware libraries Application framework Applications

Operating System:At the very bottom of the Android stack is the operating system. Android's OS is Linux based and performs tasks similar to a desktop computer OS. This includes: 1. Interfacing with the hardware through a set of device drivers (such as audio or video drivers)2. Processing user input3. Managing application processes, handling file and network I/O, and so forth

Middleware LibrariesThe middleware includes libraries for many functions (data storage, graphics rendering, web browsing, and so on) and it also contains a special sub-section called the Dalvik runtime. This is Android's special non-standard JavaVirtual Machine (JVM) and its core Java application libraries.

Application FrameworkA framework, as we know is a set of basic tools which help a developer to build more complex tools. The developers can access all framework APIs and manage phones basic functions like resource allocation, switching between processes or programs, telephone applications, and keeping track of the phones physical location.

ApplicationsThere are 4 different types of applications available on most Android devices: Core open source applications that are included as part of Android itself, such as the Browser, Camera, Gallery, Music, Phone. Proprietary Google apps that are not open source which are included with most official builds, including: Market, Gmail, Maps, YouTube and more. Handset manufacturer specific applications that is included on specific builds (such as AT&Ts own music player, Verizon's own Navigator, or Sprint's TV). Third party applications that are available in the Android Market.

Android Application Development Process

Android applications are primary written in the Java programming language. The Java source files are converted to Java class files by the Java compiler. Android provides a tooldxwhich converts Java class files into adex(Dalvik Executable) file. All class files of one application are placed in one compressed .dex file.

Figure 3

The .dex file and the resources of an Android project, e.g. the images and XML files are packed into an.apk(Android Package) file. The resulting .apk file contains all necessary data to run the Android application and can be deployed to an Android device

Each student at the training center was provided a computer pre-loaded with android sdk. The basic languages needed to develop applications for android are Java and XML. The XML language is used for designing the app i.e. for its look and feel. Java language is used for providing the app with its functionality. SQLite is used as the database for the application.The development of android application is a short and sweet process with not much complication. The UI is simply designed using XML which gives us no. of layouts and positions due to which the positioning of the objects is managed itself according to the resolution of the screen.Java being a widely known language, basically known for its simplicity and robustness gives the android applications great functionality. The basic steps for developing applications are shown in figure 1. The development steps encompass four development phases, which include:

Setup: During this phase you install and set up your development environment. You also create Android Virtual Devices (AVDs) and connect hardware devices on which you can install your applications.

Figure 4

Development:During this phase you set up and develop your Android project, which contains all of the source code and resource files for your application.

Figure 5

Debugging and Testing:During this phase you build your project into a debuggable .apk package that you can install and run on the emulator or an Android-powered device. If you are using Eclipse, builds are generated each time your project is saved. Next, you debug your application using a JDWP-compliant debugger along with the debugging and logging tools that are provided with the Android SDK. Eclipse already comes packaged with a compatible debugger. Last, you test your application using various Android SDK testing tools. Publishing:During this phase you configure and build your application for release and distribute your application to users.

Figure 6

Components of an Android AppThere are various folders and files that make up an Android App. Following is their description:a. src: Contains .java files.b. Android: Contains a file called android.jar which all the .jar files need for any applicationc. res: Contains all the resources. Two important files are main.xml (which handles the layout) and strings.xml(which contains all the string constants)d. gen: Contains the file R.java which contains the mapping for all the resources found in the project. We should never modify ite. bin: Contains .dex and .apk filesf. AndroidManifest.xml: It is the manifest file for our application and contains all the permissions needed by our application like allowing the application to activate automatically as the phone ringsg. assets: Contains all the assets needed by the application like text files , databases etc.

The DVM in Detail Dalvik is Googles own JVM which is in charge of running java based Android apps It has been optimized to run on mobile platforms It has 3 main criteria It is fast, even on weak CPUs It runs on systems with little memory It runs in an energy-efficient way

JVM vs DVM1. DVM cant interpret java bytecode2. No multiple .class files are executed. Rather a single .dex file is generated by DVM for execution3. JVM is stack based while DVM is register based which results in fewer instruction dispatches and smaller program sizeFewer instructions mean less CPU cycles and therefore less battery consumption. Smaller program size means less memory consumed at runtime.

Major Android Elements

An Android application can have the following important components:a. Activity: Represents the presentation layer of an Android application. A simplified description is that anActivityis the screen which the user sees. An Android application can have several activities and it can be switched between them during runtime of the application.b. Views: Are user interface elements e.g. buttons or text fields. The base class for allViewsis android.view.View. They have attributes which can be used to change their appearance and behaviour.c. Services: Servicesperform background tasks without providing an UI. They can notify the user via the notification framework in Androidd. Receivers: Allows us to code something that can be executed in response to change of the state of the phone like as soon as the phone rings or internet connection is establishede. ContentProvider: Allows us to share the data of one application with the other. Like via ContentProvider we can access the Contacts dataf. Intents: Allows us to call one Activity from the other as well as call other built in applications like Browser , Phone etc from our application

a. Activity

An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a window in which to draw its user interface. The window typically fills the screen, but may be smaller than the screen and float on top of other windows.

An application usually consists of multiple activities that are loosely bound to each other. Typically, one activity in an application is specified as the "main" activity, which is presented to the user when launching the application for the first time. Each activity can then start another activity in order to perform different actions. Each time a new activity starts, the previous activity is stopped, but the system preserves the activity in a stack (the "back stack").b. View

This class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for drawing and event handling. View is the base class for widgets, which are used to create interactive UI components (buttons, text fields, etc.). The ViewGroup subclass is the base class for layouts, which are invisible containers that hold other Views (or other ViewGroups) and define their layout properties.All of the views in a window are arranged in a single tree. You can add views either from code or by specifying a tree of views in one or more XML layout files. There are many specialized subclasses of views that act as controls or are capable of displaying text, images, or other content.

Once you have created a tree of views, there are typically a few types of common operations you may wish to perform:

Set properties: for example setting the text of a TextView. The available properties and the methods that set them will vary among the different subclasses of views. Note that properties that are known at build time can be set in the XML layout files. Set focus: The framework will handled moving focus in response to user input. To force focus to a specific view, call requestFocus(). Set up listeners: Views allow clients to set listeners that will be notified when something interesting happens to the view. For example, all views will let you set a listener to be notified when the view gains or loses focus. You can register such a listener using setOnFocusChangeListener(android.view.View.OnFocusChangeListener). Other view subclasses offer more specialized listeners. For example, a Button exposes a listener to notify clients when the button is clicked. Set visibility: You can hide or show views using setVisibility(int).

c. Services

A Service is an application component that can perform long-running operations in the background and does not provide a user interface. Another application component can start a service and it will continue to run in the background even if the user switches to another application. Additionally, a component can bind to a service to interact with it and even perform interprocess communication (IPC). For example, a service might handle network transactions, play music, perform file I/O, or interact with a content provider, all from the background.A service can essentially take two forms: Started: A service is "started" when an application component (such as an activity) starts it by calling startService(). Once started, a service can run in the background indefinitely, even if the component that started it is destroyed. Usually, a started service performs a single operation and does not return a result to the caller. For example, it might download or upload a file over the network. When the operation is done, the service should stop itself. Bound: A service is "bound" when an application component binds to it by calling bindService(). A bound service offers a client-server interface that allows components to interact with the service, send requests, get results, and even do so across processes with interprocess communication (IPC). A bound service runs only as long as another application component is bound to it. Multiple components can bind to the service at once, but when all of them unbind, the service is destroyed.Although this documentation generally discusses these two types of services separately, your service can work both waysit can be started (to run indefinitely) and also allow binding. It's simply a matter of whether you implement a couple callback methods: onStartCommand() to allow components to start it and onBind() to allow binding.

Regardless of whether your application is started, bound, or both, any application component can use the service (even from a separate application), in the same way that any component can use an activityby starting it with an Intent. However, you can declare the service as private, in the manifest file, and block access from other applications. This is discussed more in the section about Declaring the service in the manifest.

d. Receivers

Base class for code that will receive intents sent by sendBroadcast().

If you don't need to send broadcasts across applications, consider using this class with LocalBroadcastManager instead of the more general facilities described below. This will give you a much more efficient implementation (no cross-process communication needed) and allow you to avoid thinking about any security issues related to other applications being able to receive or send your broadcasts.

You can either dynamically register an instance of this class with Context.registerReceiver() or statically publish an implementation through the tag in your AndroidManifest.xml.

Note: If registering a receiver in your Activity.onResume() implementation, you should unregister it in Activity.onPause(). (You won't receive intents when paused, and this will cut down on unnecessary system overhead). Do not unregister in Activity.onSaveInstanceState(), because this won't be called if the user moves back in the history stack.

There are two major classes of broadcasts that can be received:

Normal broadcasts (sent with Context.sendBroadcast) are completely asynchronous. All receivers of the broadcast are run in an undefined order, often at the same time. This is more efficient, but means that receivers cannot use the result or abort APIs included here.Ordered broadcasts (sent with Context.sendOrderedBroadcast) are delivered to one receiver at a time. As each receiver executes in turn, it can propagate a result to the next receiver, or it can completely abort the broadcast so that it won't be passed to other receivers. The order receivers run in can be controlled with the android:priority attribute of the matching intent-filter; receivers with the same priority will be run in an arbitrary order.Even in the case of normal broadcasts, the system may in some situations revert to delivering the broadcast one receiver at a time. In particular, for receivers that may require the creation of a process, only one will be run at a time to avoid overloading the system with new processes. In this situation, however, the non-ordered semantics hold: these receivers still cannot return results or abort their broadcast.

Note that, although the Intent class is used for sending and receiving these broadcasts, the Intent broadcast mechanism here is completely separate from Intents that are used to start Activities with Context.startActivity(). There is no way for a BroadcastReceiver to see or capture Intents used with startActivity(); likewise, when you broadcast an Intent, you will never find or start an Activity. These two operations are semantically very different: starting an Activity with an Intent is a foreground operation that modifies what the user is currently interacting with; broadcasting an Intent is a background operation that the user is not normally aware of.

The BroadcastReceiver class (when launched as a component through a manifest's tag) is an important part of an application's overall lifecycle.

e. ContentProviderContent providers manage access to a structured set of data. They encapsulate the data, and provide mechanisms for defining data security. Content providers are the standard interface that connects data in one process with code running in another process.

When you want to access data in a content provider, you use the ContentResolver object in your application's Context to communicate with the provider as a client. The ContentResolver object communicates with the provider object, an instance of a class that implements ContentProvider. The provider object receives data requests from clients, performs the requested action, and returns the results.

You don't need to develop your own provider if you don't intend to share your data with other applications. However, you do need your own provider to provide custom search suggestions in your own application. You also need your own provider if you want to copy and paste complex data or files from your application to other applications.

Android itself includes content providers that manage data such as audio, video, images, and personal contact information. You can see some of them listed in the reference documentation for the android.provider package. With some restrictions, these providers are accessible to any Android application.

f. IntentAn Intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service.

An Intent provides a facility for performing late runtime binding between the codes in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.The primary pieces of information in an intent are: action -- The general action to be performed, such as ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, etc. data -- The data to operate on, such as a person record in the contacts database, expressed as a Uri.Some examples of action/data pairs are: ACTION_VIEW content://contacts/people/1 -- Display information about the person whose identifier is "1". ACTION_DIAL content://contacts/people/1 -- Display the phone dialer with the person filled in. ACTION_VIEW tel:123 -- Display the phone dialer with the given number filled in. Note how the VIEW action does what what is considered the most reasonable thing for a particular URI. ACTION_DIAL tel:123 -- Display the phone dialer with the given number filled in. ACTION_EDIT content://contacts/people/1 -- Edit information about the person whose identifier is "1".

Heres a small code for a Login App developed during the training.

Java Code

package com.example.loginapp;

import android.annotation.TargetApi;import android.app.Activity;import android.os.Build;import android.os.Bundle;import android.view.View;import android.widget.*;

@TargetApi(Build.VERSION_CODES.GINGERBREAD) public class MainActivity extends Activity{

TextView tv;EditText usn, pwd;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.fragment_main);tv = (TextView)findViewById(R.id.tv);usn = (EditText)findViewById(R.id.username);pwd = (EditText)findViewById(R.id.password);}public void click(View v){String user = usn.getText().toString();String pass = pwd.getText().toString();if(user.equalsIgnoreCase("Anuj") && pass.equals("password")){tv.setText("Welcome to Ooty! Nice to meet YOU");}else if(user.isEmpty() || pass.isEmpty()){tv.setText("Don't leave the textboxes empty");}else{tv.setText("The username and password do not match");}}}

XML Code

3. OUTCOME OF TRAINING

In this training our main motive was to understand the working of android applications and their development. The main reasons for choosing Android as the platform are:

1. Low Investment & High ROIAndroid comparatively has a low barrier to entry. Android provides freely its Software Development Kit (SDK) to the developer community which minimizes the development and licensing costs. The development costs can be divided into three stages: Stage#1 application development, Stage#2 testing, and Stage#3 hardware cost for testing and deploying the android mobile application.

2. Open SourceGet the open source advantage from licensing, royalty-free, and the best technology framework offered by the Android community. The architecture of the Android SDK is open-source which means you can actually interact with the community for the upcoming expansions of android mobile application development. This is what makes the Android mobile application development platform very attractive for handset manufacturers & wireless operators, which results in a faster development of Android based phones, and better opportunities for developers to earn more. Thats the magic of Android.

3. Easy to IntegrateAre you looking for complex technical customization and integration of a web application or just a smartphone application you already have? Yes. Then an android app can be the right solution for you. The entire platform is ready for customization. You can integrate and tweak the mobile app according to your business need. Android is the best mobile platform between the application and processes architecture. Most of the platforms allow background processes helping you to integrate the apps.

4. Multiple Sales ChannelsUnlike other mobile platforms, Android applications can be deployed in different ways. You do not have to rely on a single market to distribute your applications. You can use third-party application marketplace (especially in Google Android Market), but you can also form your own distribution and sales channel: applications for vertical markets, to develop new application stores, and also place it on your website. You build it, you publish it. With your choice of promotional strategy, you can reach your end users through multiple channels.

5. Easy AdoptionAndroid applications are scripted in Java language with the help of a rich set of libraries. Anyone can build Android applications with the knowledge of Java. According to a recent survey, a lot of Java programmers find it easy to adopt and script code for mobile applications in the Android OS. It is now very beneficial for Java developers to transition the code script into a mobile application, and can also implement android application development services in the app.

During the training I learned how android apps are developed, what type of sensors are used in a mobile, how each sensor works and how we should use them, how to access the services of the system, etc. We also got to know how a mobile works and how it differs from the working of computer.