Intro to android development
This presentation is the property of its rightful owner.
Sponsored Links
1 / 40

Intro to Android Development PowerPoint PPT Presentation


  • 164 Views
  • Uploaded on
  • Presentation posted in: General

Intro to Android Development. Written by Keren Kalif, Edited by Liron Blecher Contains slides from Google I/O presentation. Content. Android development environment Android project structure Example with threads Example with networking. Android Development Tools.

Download Presentation

Intro to Android Development

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Intro to android development

Intro to Android Development

Written by Keren Kalif, Edited by Liron Blecher

Contains slides from Google I/O presentation


Content

Content

  • Android development environment

  • Android project structure

  • Example with threads

  • Example with networking


Android development tools

Android Development Tools

  • The Android Development Tools (ADT) is a collection of classes and utilities needed to develop for Android

  • It’s basically Eclipse + Android SDK + Android Plugin for Eclipse

  • Download the SDK from: http://developer.android.com

  • Extract the zip file into a folder on your hard drive


Android emulator

Android Emulator

  • The Android emulator is a software that runs the Android OS on your local (Windows) OS.

  • Go into the Android SDK directory and run the program Manager.exe

  • The Manager will enable you to create Android Virtual Devices on your system.


Android virtual device manager

Android Virtual Device Manager


Android virtual device manager cont

Android Virtual Device Manager – cont.

Name of the device

Android Version

Memory on the device

Screen Type (affects resolution)

Additional Hardware


Running the emulator

Running the Emulator


Create a new android project

Create a new Android Project

  • Go toFile  New  Project  Android Project

Project Name

Android OS Version

Application Name

Package Name (must have at least two levels)

Startup Activity


The created project

The created project

This is the top “frame” of the project


What is an android application

What is an Android Application

  • An Android application is actually a collection of several components, each defined in AndroidManifest.xml


Anatomy of an app

Anatomy of an App

Anatomy of an App

  • Activity

  • Service

  • Content Provider

  • Broadcast Receiver

  • Intents

  • Manifest


Anatomy of an app activity

Anatomy of an App - Activity

  • A single screen with a user interface

  • Independent but work together to form a cohesive whole

  • Possible to invoke from other applications

  • Extends the Activity class


Anatomy of an app service

Anatomy of an App - Service

  • Perform long-running operations in the background

  • Does not provide a user interface

  • Other components can bind/interact

  • Extends the Service class


Anatomy of an app content provider

Anatomy of an App - Content provider

  • Manages a shared set of application data

  • Consistent interface to retrieve/store data

    • RESTful model

    • CRUD operations

  • Can be backed by different stores

    • e.g. File System, SQLite DB, Web

  • Can expose your data to other applications

  • Can consumer data from other Content Providers

    • e.g. Contacts or Call Log

  • Extend the ContentProvider class


Anatomy of an app broadcast receiver

Anatomy of an App - Broadcast receiver

  • Respond to system wide messages

  • Messages can be initiated by the system or an app

  • 2 type of broadcast:

    • Normal - delivered async to all receivers

    • Ordered - delivered in priority order & can be aborted

  • Can programatically register or statically register via the manifest

  • Should be very light, pass any work onto a Service

  • Extend the BroadcastReceiver class


Anatomy of an app intents

Anatomy of an App - Intents

  • Intents are the messages that link app components together

  • Explicit / implicit

  • An abstract description of an operation to be performed

    • An Action to be performed

    • The Data to operate upon

    • Extra metadata

  • Standardise on a common vocabulary of Actions

    • e.g. 'View', 'Edit', 'Send'

  • Apps register their ability to handle Actions for a given data type via IntentFilter


Anatomy of an app intents1

Anatomy of an App - Intents

  • Publish an 'Intent API'

    • Specify Action & Extras to invoke your component


Anatomy of an app intents2

Anatomy of an App - Intents

  • Achieve complex tasks by calling other Application's Intents, e.g. scanning a barcode


Anatomy of an app activity lifecycle

Anatomy of an App - Activity lifecycle

  • Running in a multitasking environment

  • Users switch apps, calls come in, system runs low on memory

  • System invokes callbacks in your app

  • The system will kill your app

  • Be sure to save state!


Anatomy of an app activity lifecycle1

Anatomy of an App - Activity lifecycle

Activity created


Anatomy of an app activity lifecycle2

Anatomy of an App - Activity lifecycle

Activity created

onCreate()

onResume()

Activity running


Anatomy of an app activity lifecycle3

Anatomy of an App - Activity lifecycle

onResume()

Activity running

Call comes in

onPause()


Anatomy of an app activity lifecycle4

Anatomy of an App - Activity lifecycle

onResume()

Activity running

Return to app

Call comes in

onPause()


Anatomy of an app activity lifecycle5

Anatomy of an App - Activity lifecycle

onResume()

Activity running

Return to app

Activity destroyed

Call comes in

Low Memory

onPause()


Resources

Resources

  • In Android, anything that is not pure code is written in a separate resource file (not a java file), for example strings, images, etc.

  • This separation enables easier multi-language support since only the resource file needs to be changed – not the code itself

  • Resource files are saved as XML file and the Resource Complier generates a Java file which reference the data in these XML files.

  • The generated Java file is called R.java

  • Using this file you can access the data in java code


Resources cont

Resources – cont.

  • Resources live in the res folder

  • Qualifiers provide specific resources for different device configuration

  • e.g. layout-land, drawable-hdpi

  • Resources IDs automatically generated in R.java

  • e.g. R.layout.main


Resources cont1

Resources – cont.

  • When creating UI elements in Android, the components and their layout are saved in an XML file

  • The Android compiler generates the R.java file under the “gen” folder

  • Whenever a new resource is changed, the R file will be re-generted


Resources1

משאבים (Resources)


Main xml

main.xml

  • main.xml contains the layout in a form of XML declaration.

  • It will be used in setContentView


Resources cont2

Resources – cont.


Resources cont3

Resources – cont.

  • main.xml defines all the components that will be displayed in the activity

  • Each view will have its own ID in order to be able to access it directly

  • strings.xml defines all the strings in the system


Views

Views

  • In Android, all UI elements are Views (or inherit from the View class) – it’s kind of like JComponent in Swing.

  • The Activity class has a method called setContentView which sets the View that will be displayed in the Activity.

  • The XML file is translated into a View instance


Permissions

Permissions

  • Each Android application must declare what external actions/resources its going to access (GPS, address book, phone, etc)

  • Required permissions are declared in the manifest.xml file.

  • To be able to access the internet:

  • AndroidManifest.xml:

    • To allow an Android application access to the internet, add the following tag under the permissions tag:

      <uses-permission android:name="android.permission.INTERNET" />


Default activity

Default Activity

  • You can define the default Activity in the manifest.xml file


Accessing localhost of the host machine

Accessing localhost of the host machine

  • Since the Android emulator runs as a virtual machine, trying to access localhost or 127.0.0.1 will direct you to the Android VM, and not your host machine (your computer)

  • To access your host machine from within the Android VM, use the IP address: 10.0.2.2 (example: http://10.0.2.2:8084/chat)


Toast popups replacement

Toast - Popups replacement

To show a popup use: Toast.makeToast(…).show()


Switching to another activity

Switching to another Activity

  • Each Activity is like a card with a specific logic to handle.

  • To switch to another Activity (for example, when a user click a login screen):

Intent myIntent = new Intent(view.getContext(), Activity2.class);

startActivityForResult(myIntent, 0);


Installing an android application

Installing an Android Application

  • Under the “dist” directory in your project there will be a *.apk file (which is like a war file or jar file = zip file with a different extension)

  • Send this file as an email attachment and that’s it!


Links

Links

  • Intro: http://www.io-bootcamp.com/sessions#TOC-Android

    • http://developer.android.com/sdk/installing.html

  • http://developer.android.com/guide/index.html

  • http://www.vogella.de/articles/Android/article.html

  • http://thenewboston.org/tutorials.php

  • http://www.androidhive.info/

  • http://blog.js-development.com/2009/10/accessing-host-machine-from-your.html


  • Last thing

    Last Thing…

    • [email protected]


  • Login