SlideShare a Scribd company logo
1 of 43
Android Overview

                                                  Raju Kadam



Note: Few slides from this presentation are taken from internet or slideshare.com as it is or modified little bit. I have no intention
of saying someone’s else work as mine. I prepared this presentation to just educate co-workers about android. So I want the best
material from internet and slideshare.com.
                                                                                                                                         1
Main Topics
1.   Introduction
2.   Platform
3.   IDE and Tools
4.   Applications Development Walkthrough
5.   Overall evaluation




                                            2
1.1 What is Android?

• A software platform and operating system for mobile devices

• Based on the Linux kernel

• Developed by Google and later the Open Handset Alliance (OHA)

• Allows writing managed code in the Java language

• Possibility to write applications in other languages and compiling it to
  ARM native code (support of Google? No)

• Unveiling of the Android platform was announced on 5 November 2007
  with the founding of OHA




                                                                             3
1.2 What is the Open Handset Alliance (OHA)?
  → It's a consortium of several companies




                                               4
1.3 What is the role of OHA in Android development?

•   Devoted to advancing open standards for mobile devices
•   Develop technologies that will significantly lower the cost of developing and
    distributing mobile devices and services




                                                                                    5
1.4 License
•   Android is under version 2 of the Apache Software License (ASL)

Developer License & Device Costs
• For developing on Android Device, you must first register as an Android developer
   on the Android Market site. Android Developer Registration fee is $25 (USD).

•   No other licensing cost associated with software as Android is Open Source
    product.

•   Available Devices
     –   Consumer devices

     –   Android Dev Phone 1: The device currently costs $399 (USD) and is available for purchase in 18
         international markets.




          Ref: http://developer.android.com/guide/developing/device.html#dev-phone-1                      6
2. Platform
•   Hardware
•   Operating System (Android) Architecture
•   File System
•   Database Support
•   Network Connectivity
•   Security and Permissions
•   Programming Languages support
•   Development requirements




                                              7
2.1 Hardware
• Android is not a single piece of hardware; it's a complete, end-to-end
  software platform that can be adapted to work on any number of
  hardware configurations. Everything is there, from the boot loader to all
  the way up to the applications.




                                                                              8
2.2 Android Architecture




    Ref: http://developer.android.com/guide/basics/what-is-android.html   9
2.2.1 Linux Kernel




• Android runs on Linux (version 2.6).
• Linux provides :
    –   Hardware abstraction layer
    –   Memory management
    –   Process management
    –   Networking
• Users never see Linux sub system
• The adb shell command opens Linux shell



                                            10
2.2.2 Libraries




•   Bionic, a super fast and small GPL-based standard C system library (libc)
    optimized for embedded Linux-based devices

•   Surface Manager for composing window manager with off-screen buffering 2D
    and 3D graphics hardware support or software simulation

•   Media codecs offer support for major audio/video codecs

•   SQLite database

•   WebKit library for fast HTML rendering
                                                                                11
2.2.3 Android Runtime




Dalvik :
• Dalvik VM is Google’s implementation of Java
• Optimized for mobile devices
• Key Dalvik differences:
    –   Register-based versus stack-based VM
    –   Dalvik runs .dex files
    –   More efficient and compact implementation
    –   Different set of Java libraries than SDK




                                                    12
2.2.4 Application Framework




• Activity manager controls the life cycle of the app

• Content providers encapsulate data that is shared (e.g. contacts)

• Resource manager manages everything that is not the code

• Location manager figures out the location of the phone (GPS, GSM, WiFi)

• Notification manager keeps track of events such as arriving messages,
  appointments etc.
                                                                            13
2. 3 File System
• The file system has three main mount points.
    – One for system,
    – one for the apps,
    – and one for whatever.


• Each app has its own sandbox easily accessible to
it. No one else can access its data. The sandbox is in
  /data/data/package_name/

• SDCard is always there. It’s a good place for
large files, such as movies and music.
Everyone can access it.




                                                         14
2.4 Database Support

• The Android API contains support for creating and using SQLite databases.
  Each database is private to the application that creates it.

• Android ships with the sqlite3 database tool, which enables you to browse
  table contents, run SQL commands, and perform other useful functions on
  SQLite databases.

• All databases, SQLite and others, are stored on the device in
  /data/data/package_name/databases.




                                                                          15
2.5 Network Connectivity
• Android supports wireless communications using:
    –   GSM mobile-phone technology
    –   3G
    –   Edge
    –   802.11 Wi-Fi networks
    –   BlueTooth


• HTTP : Android has org.apache.http package that has the core interfaces
  and classes of the HTTP components.

• HTTPS & SSL: Android provides javax.net.ssl package that has all the
  classes and interfaces needed to implement and program the Secure
  Socket abstraction based on the SSL protocol SSSLv3.0 or TLSv1.2.

• XML : Most of Java's XML-related APIs are fully supported on Android.
  Java's Simple API for XML (SAX) and the Document Object Model (DOM)
  are both available on Android.

        Ref: http://developer.android.com/reference/org/apache/http/package-summary.html
             http://developer.android.com/reference/javax/net/ssl/package-summary.html     16
             http://www.ibm.com/developerworks/opensource/library/x-android/index.html
2.6 Security and Permissions (1)
Security Architecture:
• A central design point of the Android security architecture is that no
   application, by default, has permission to perform any operations that
   would adversely impact other applications, the operating system, or the
   user.

• An application's process is a secure sandbox. It can't disrupt other
  applications.

• The permissions required by an application are declared statically in that
  application, so they can be known up-front at install time and will not
  change after that.




        Ref: http://developer.android.com/guide/topics/security/security.html   17
2.6 Security and Permissions (2)
a.   Process level security

b.   User & File level security

c.   Using Permissions




                                   18
2.6 Security and Permissions (3)
a. Process level security:
• Each Android application
  runs inside its own Linux
  process.

• Additionally, each application
  has its own sandbox file
  system with its own set of
  preferences and its own
  database.

• Other applications cannot
  access any of its data,
  unless it is explicitly shared.

                                    19
2.6 Security and Permissions (4)
b. User and File level security :
•   Each Android package (.apk) file installed on the device is given its own unique
    Linux user ID, creating a sandbox for it and preventing it from touching other
    applications (or other applications from touching it).

•   This user ID is assigned to it when the application is installed on the device,
    and remains constant for the duration of its life on that device.

•   Security enforcement happens at the process level, the code of any two
    packages can not normally run in the same process, since they need to run as
    different Linux users.

•   Any data stored by an application will be assigned to that application's user ID,
    and not normally accessible to other packages.

•   The file created by your application is owned by your application, but its global
    read and/or write permissions have been set appropriately so any other
    application can see it.



         Ref: http://developer.android.com/guide/topics/security/security.html        20
2.6 Security and Permissions (5)
c. Using Permissions:
• A basic Android application has no permissions associated with it.

•   To make use of protected features of the device, you must include in your
    AndroidManifest.xml one or more <uses-permission> tags declaring the
    permissions that your application needs.

• For example, an application that needs to monitor incoming SMS
  messages would specify:
• <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.app.myapp" >

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

    </manifest>


        Ref: http://developer.android.com/guide/topics/security/security.html   21
2.7 Programming Languages support
• Java – officially supported

• C/C++ – also possible but not supported




                                            22
2.8 Development requirements
• Java

• Android SDK

• Eclipse IDE (optional)




                               23
3. IDE and Tools
•   Android SDK
•   Eclipse IDE + Android Development Tools (ADT) plug in
•   Other IDEs
•   Tools for debugging, compiling and packaging




                                                            24
3. 1 Android SDK




• Overview of how to get started with the Android SDK:
    – make sure that development computer meets the hardware and software requirements
      for the Android SDK.
    – install the JDK (version 5 or 6 required) and Eclipse (version 3.4 or 3.5, needed only if
      you want to develop using the ADT Plugin)
    – Download and install the SDK starter package
    – Install the Android Development Tool (ADT) Plugin for Eclipse
    – Add Android platforms (Android 1.6 or Android 2.0) and other components to your SDK




        Ref: http://developer.android.com/sdk/index.html                                      25
3.2 Other IDEs
• Android Applications can be developed in other IDEs such as :
    – IntelliJ
    – a basic editor such as Emacs


• The recommended way to develop an Android application is to use Eclipse
  with the ADT plugin. The ADT plugin provides editing, building, debugging,
  and .apk packaging and signing functionality integrated right into the IDE.

• When developing in IDEs or editors other than Eclipse, you'll require
  familiarity with the following Android SDK tools:
    – android To create/update Android projects and to create/move/delete AVDs.
    – Android Emulator To run your Android applications on an emulated Android platform.
    – Android Debug Bridge To interface with your emulator or connected device (install apps,
      shell the device, issue commands, etc.).




                                                                                           26
3.3 Other tools
Other Open source and third-party tools :
• Ant - To compile and build your Android project into an installable .apk
  file.
• Keytool - To generate a keystore and private key, used to sign your .apk
  file.
• Jarsigner (or similar signing tool) - To sign your .apk file with a private key
  generated by keytool

    – Note: The SDK includes all the tools you need to set up an Android project, build
      it, debug it and then package it for distribution.




                                                                                          27
4. Applications Development Walkthrough
•   Developing Applications on an Emulator
•   Singing your application
•   Versioning your application
•   Preparing to publish your application
•   Publish your App on Android Market
•   Sample Applications




                                             28
4.1 Developing Applications on an Emulator
  1.   Setting up Environment for Development

  2.   Create Android Virtual Device (AVD)

  3.   Creating and running a sample App Walkthrough




                                                       29
4.1.1 Setting up Environment for Development
• Downloading the ADT Plugin
    – Use Update Manager feature of Eclipse installation to install the latest revision of ADT on
      development computer.


• Configuring the ADT Plugin
    – Once ADT has been successfully downloaded, the next step is to modify ADT preferences
      in Eclipse to point to the Android SDK directory




                                                                                               30
4.1.2 Create Android Virtual Device(AVD)
• An AVD defines the system image and device settings used by the
  emulator.
• Command : android create avd --target 2 --name my_avd




                                                                    31
4.1.3 Creating and running a sample App Walkthrough




     http://developer.android.com/guide/tutorials/hello-world.html   32
4.2 Singing your application
• The Android system requires that all installed applications must be
  digitally signed with a certificate whose private key is held by the
  application's developer.

• The Android system uses the certificate as a means of identifying the
  author of an application and establishing trust relationships between
  applications.

• The certificate is not used to control which applications the user can
  install.

• The certificate does not need to be signed by a certificate authority.

• Android has no default keytool available. For Keytool it relies on JDK
  keytool.
                                                                           33
4.3 Versioning your application
• Versioning is a critical component of your application upgrade /
  maintenance strategy.

• The Android system itself does not ever check the application version
  information for an application, such as to enforce restrictions on
  upgrades, compatibility, and so on.

•   Only users or applications themselves are responsible for enforcing any
    version restrictions for applications themselves.




                                                                              34
4.4 Preparing to publish your application
• Publishing an application means testing it, packaging it appropriately, and
  making it available to users of Android-powered mobile devices for
  download.

• Before you consider your application ready for release
    –   Test your application on device
    –   add an End User License Agreement
    –   Specify an icon and label in the application's manifest
    –   Turn off logging and debugging
    –   Version your application
    –   Obtain a suitable cryptographic key
    –   Sign your application




                                                                            35
4.5 Publish your App on Android Market
• Android Market is a hosted service that makes it easy for
    – Android Users to find and download Android applications
    – Android Developers to publish their applications


• To publish your application on Android Market you:
    – first need to register with the service using your Google account
    – must agree to the terms of service


• To register as an Android Market developer visit
    – http://market.android.com/publish


• Requirements enforced by the Android Market server:
    – application must be signed with a cryptographic private key whose validity period ends
      after 22 October 2033.
    – Application must define version code, version name, icon and label attributes in
      manifest


                                                                                               36
4.6.1 Sample applications
• Developing Application using Android UI Controls in Eclipse Galileo 3.5




        http://www.vogella.de/articles/Android/article.html                 37
4.6.2 Sample applications
Developing Google maps application on Android in Eclipse Galileo 3.5
• To obtain data from Google maps you must register with Google Maps
  service and obtain Maps API Key.

• Step for registering for a Maps API Key :
    – Use JDK Keytool to obtain MD5 fingerprint of the certificate that you used to sign your
      application
    – Command : keytool -list -keystore “C:path of key store”
    – Register the MD5 fingerprint
    – Obtain Maps API Key
    – Add reference to the Maps API Key in each MapView


• Maps API Key Signup:
• http://code.google.com/android/add-ons/google-apis/maps-api-
  signup.html

        http://www.vogella.de/articles/Android/article.html                                     38
4.6.3 Sample applications
• Using mobile Android device for Barcode Reading (video)
   Android - Apps without borders
  http://www.youtube.com/watch?v=3LkNlTNHZzE




                                                            39
5.1 Overall Evaluation
Advantages :
Being an open source software Android has following advantages :

•   The ability for anyone to customize the Google Android platform

•   The consumer will benefit from having a wide range of mobile applications to
    choose from since the monopoly will be broken by Google Android

•   Men will be able to customize a mobile phones using Google Android platform like
    never before

•   Features like weather details, opening screen, live RSS feeds and even the icons on
    the opening screen will be able to be customized

•   As a result of many mobile phones carrying Google Android, companies will come
    up with innovative products

•   In addition the entertainment functionalities will be taken a notch higher by
    Google Android being able to offer online real time multiplayer games


                                                                                      40
5.2 Overall Evaluation
Limitations

 Bluetooth limitations
  Android doesn't support:
      • Bluetooth stereo
      • Contacts exchange
      • Modem pairing
      • Wireless keyboards
      Only support Bluetooth headsets!

 Firefox Mobile is not coming to Android
• Apps in Android Market need to be programmed with a custom form of Java
• Mozilla and the Fennec does not have that custom java




                                                                            41
6. References
• www.android.com
• www.ibm.com/developerworks/opensource/library/x-android/index.html
• http://devcon.momob.in
• Android Development with Eclipse
  www.vogella.de/articles/Android/article.html
• Artesis, HogeSchool Antwerpen (ppt from slideshare)
• Android Internals by Marko Gargenta and Marakana (ppt from slideshare)

    – Note: Few slides from this presentation are taken from internet or slideshare.com as it is
      or modified little bit. I have no intention of saying someone’s else work as mine. I
      prepared this presentation to just educate co-workers about android. So I want the best
      material from internet and slideshare.com.




                                                                                              42
Q&A



      Questions & Answers

      android.com & google.com 




                                   43

More Related Content

What's hot

Android 101 - Introduction to Android Development
Android 101 - Introduction to Android DevelopmentAndroid 101 - Introduction to Android Development
Android 101 - Introduction to Android DevelopmentAndy Scherzinger
 
Android Training - Part 2
Android Training - Part 2Android Training - Part 2
Android Training - Part 2Tbldevelopment
 
Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1Usman Chaudhry
 
An introduction to Android
An introduction to AndroidAn introduction to Android
An introduction to AndroidRajesh Jambukia
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorialmaster760
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersBoom Shukla
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & ComponentsVijay Rastogi
 
Android Programming Basic
Android Programming BasicAndroid Programming Basic
Android Programming BasicDuy Do Phan
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easyLars Vogel
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 

What's hot (19)

Getting Started With Android
Getting Started With AndroidGetting Started With Android
Getting Started With Android
 
Android 101 - Introduction to Android Development
Android 101 - Introduction to Android DevelopmentAndroid 101 - Introduction to Android Development
Android 101 - Introduction to Android Development
 
Android Training - Part 2
Android Training - Part 2Android Training - Part 2
Android Training - Part 2
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android Training
Android TrainingAndroid Training
Android Training
 
Ci for Android
Ci for AndroidCi for Android
Ci for Android
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Android session-1-sajib
Android session-1-sajibAndroid session-1-sajib
Android session-1-sajib
 
Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1Developing Applications for Android - Lecture#1
Developing Applications for Android - Lecture#1
 
An introduction to Android
An introduction to AndroidAn introduction to Android
An introduction to Android
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & Components
 
Andriod
Andriod Andriod
Andriod
 
Android
AndroidAndroid
Android
 
Android Programming Basic
Android Programming BasicAndroid Programming Basic
Android Programming Basic
 
Android architechture
Android architechtureAndroid architechture
Android architechture
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 

Viewers also liked

Farmers Managing Information Lost Kids
Farmers Managing Information Lost KidsFarmers Managing Information Lost Kids
Farmers Managing Information Lost Kidscdcrespin
 
eGovernment interoperability
eGovernment interoperabilityeGovernment interoperability
eGovernment interoperabilityLuis Guijarro
 
Adrian peterson presentation
Adrian peterson presentationAdrian peterson presentation
Adrian peterson presentationwildcat34
 
02 sas baf short fsl comm labs itb
02 sas baf short   fsl comm labs itb02 sas baf short   fsl comm labs itb
02 sas baf short fsl comm labs itbFSL ComLabs USDI ITB
 
Rama mamuaya tech change-the-world
Rama mamuaya tech change-the-worldRama mamuaya tech change-the-world
Rama mamuaya tech change-the-worldFSL ComLabs USDI ITB
 
Milk - Managing Info Lost Kids
Milk - Managing Info Lost Kids Milk - Managing Info Lost Kids
Milk - Managing Info Lost Kids cdcrespin
 

Viewers also liked (7)

Farmers Managing Information Lost Kids
Farmers Managing Information Lost KidsFarmers Managing Information Lost Kids
Farmers Managing Information Lost Kids
 
eGovernment interoperability
eGovernment interoperabilityeGovernment interoperability
eGovernment interoperability
 
Dari ide-ke-tulisan
Dari ide-ke-tulisanDari ide-ke-tulisan
Dari ide-ke-tulisan
 
Adrian peterson presentation
Adrian peterson presentationAdrian peterson presentation
Adrian peterson presentation
 
02 sas baf short fsl comm labs itb
02 sas baf short   fsl comm labs itb02 sas baf short   fsl comm labs itb
02 sas baf short fsl comm labs itb
 
Rama mamuaya tech change-the-world
Rama mamuaya tech change-the-worldRama mamuaya tech change-the-world
Rama mamuaya tech change-the-world
 
Milk - Managing Info Lost Kids
Milk - Managing Info Lost Kids Milk - Managing Info Lost Kids
Milk - Managing Info Lost Kids
 

Similar to Android Overview: Platform, IDE, Apps Development

Similar to Android Overview: Platform, IDE, Apps Development (20)

Android Overview
Android OverviewAndroid Overview
Android Overview
 
3. Android Architecture.pptx
3. Android Architecture.pptx3. Android Architecture.pptx
3. Android Architecture.pptx
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android Seminar BY Suleman Khan.pdf
Android Seminar BY Suleman Khan.pdfAndroid Seminar BY Suleman Khan.pdf
Android Seminar BY Suleman Khan.pdf
 
Android Applications
Android ApplicationsAndroid Applications
Android Applications
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android ppt
Android ppt Android ppt
Android ppt
 
My androidpresentation
My androidpresentationMy androidpresentation
My androidpresentation
 
Cc4201519521
Cc4201519521Cc4201519521
Cc4201519521
 
Android
AndroidAndroid
Android
 
Google android white paper
Google android white paperGoogle android white paper
Google android white paper
 
Android 130923124440-phpapp01
Android 130923124440-phpapp01Android 130923124440-phpapp01
Android 130923124440-phpapp01
 
Android technology
Android technology Android technology
Android technology
 
Android Security Humla Part 1
Android Security Humla Part 1Android Security Humla Part 1
Android Security Humla Part 1
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA
 
Mobile Application Development powerpoint
Mobile Application Development powerpointMobile Application Development powerpoint
Mobile Application Development powerpoint
 
128-ch4.pptx
128-ch4.pptx128-ch4.pptx
128-ch4.pptx
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: Android
 
Android 1
Android 1 Android 1
Android 1
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

Android Overview: Platform, IDE, Apps Development

  • 1. Android Overview Raju Kadam Note: Few slides from this presentation are taken from internet or slideshare.com as it is or modified little bit. I have no intention of saying someone’s else work as mine. I prepared this presentation to just educate co-workers about android. So I want the best material from internet and slideshare.com. 1
  • 2. Main Topics 1. Introduction 2. Platform 3. IDE and Tools 4. Applications Development Walkthrough 5. Overall evaluation 2
  • 3. 1.1 What is Android? • A software platform and operating system for mobile devices • Based on the Linux kernel • Developed by Google and later the Open Handset Alliance (OHA) • Allows writing managed code in the Java language • Possibility to write applications in other languages and compiling it to ARM native code (support of Google? No) • Unveiling of the Android platform was announced on 5 November 2007 with the founding of OHA 3
  • 4. 1.2 What is the Open Handset Alliance (OHA)? → It's a consortium of several companies 4
  • 5. 1.3 What is the role of OHA in Android development? • Devoted to advancing open standards for mobile devices • Develop technologies that will significantly lower the cost of developing and distributing mobile devices and services 5
  • 6. 1.4 License • Android is under version 2 of the Apache Software License (ASL) Developer License & Device Costs • For developing on Android Device, you must first register as an Android developer on the Android Market site. Android Developer Registration fee is $25 (USD). • No other licensing cost associated with software as Android is Open Source product. • Available Devices – Consumer devices – Android Dev Phone 1: The device currently costs $399 (USD) and is available for purchase in 18 international markets. Ref: http://developer.android.com/guide/developing/device.html#dev-phone-1 6
  • 7. 2. Platform • Hardware • Operating System (Android) Architecture • File System • Database Support • Network Connectivity • Security and Permissions • Programming Languages support • Development requirements 7
  • 8. 2.1 Hardware • Android is not a single piece of hardware; it's a complete, end-to-end software platform that can be adapted to work on any number of hardware configurations. Everything is there, from the boot loader to all the way up to the applications. 8
  • 9. 2.2 Android Architecture Ref: http://developer.android.com/guide/basics/what-is-android.html 9
  • 10. 2.2.1 Linux Kernel • Android runs on Linux (version 2.6). • Linux provides : – Hardware abstraction layer – Memory management – Process management – Networking • Users never see Linux sub system • The adb shell command opens Linux shell 10
  • 11. 2.2.2 Libraries • Bionic, a super fast and small GPL-based standard C system library (libc) optimized for embedded Linux-based devices • Surface Manager for composing window manager with off-screen buffering 2D and 3D graphics hardware support or software simulation • Media codecs offer support for major audio/video codecs • SQLite database • WebKit library for fast HTML rendering 11
  • 12. 2.2.3 Android Runtime Dalvik : • Dalvik VM is Google’s implementation of Java • Optimized for mobile devices • Key Dalvik differences: – Register-based versus stack-based VM – Dalvik runs .dex files – More efficient and compact implementation – Different set of Java libraries than SDK 12
  • 13. 2.2.4 Application Framework • Activity manager controls the life cycle of the app • Content providers encapsulate data that is shared (e.g. contacts) • Resource manager manages everything that is not the code • Location manager figures out the location of the phone (GPS, GSM, WiFi) • Notification manager keeps track of events such as arriving messages, appointments etc. 13
  • 14. 2. 3 File System • The file system has three main mount points. – One for system, – one for the apps, – and one for whatever. • Each app has its own sandbox easily accessible to it. No one else can access its data. The sandbox is in /data/data/package_name/ • SDCard is always there. It’s a good place for large files, such as movies and music. Everyone can access it. 14
  • 15. 2.4 Database Support • The Android API contains support for creating and using SQLite databases. Each database is private to the application that creates it. • Android ships with the sqlite3 database tool, which enables you to browse table contents, run SQL commands, and perform other useful functions on SQLite databases. • All databases, SQLite and others, are stored on the device in /data/data/package_name/databases. 15
  • 16. 2.5 Network Connectivity • Android supports wireless communications using: – GSM mobile-phone technology – 3G – Edge – 802.11 Wi-Fi networks – BlueTooth • HTTP : Android has org.apache.http package that has the core interfaces and classes of the HTTP components. • HTTPS & SSL: Android provides javax.net.ssl package that has all the classes and interfaces needed to implement and program the Secure Socket abstraction based on the SSL protocol SSSLv3.0 or TLSv1.2. • XML : Most of Java's XML-related APIs are fully supported on Android. Java's Simple API for XML (SAX) and the Document Object Model (DOM) are both available on Android. Ref: http://developer.android.com/reference/org/apache/http/package-summary.html http://developer.android.com/reference/javax/net/ssl/package-summary.html 16 http://www.ibm.com/developerworks/opensource/library/x-android/index.html
  • 17. 2.6 Security and Permissions (1) Security Architecture: • A central design point of the Android security architecture is that no application, by default, has permission to perform any operations that would adversely impact other applications, the operating system, or the user. • An application's process is a secure sandbox. It can't disrupt other applications. • The permissions required by an application are declared statically in that application, so they can be known up-front at install time and will not change after that. Ref: http://developer.android.com/guide/topics/security/security.html 17
  • 18. 2.6 Security and Permissions (2) a. Process level security b. User & File level security c. Using Permissions 18
  • 19. 2.6 Security and Permissions (3) a. Process level security: • Each Android application runs inside its own Linux process. • Additionally, each application has its own sandbox file system with its own set of preferences and its own database. • Other applications cannot access any of its data, unless it is explicitly shared. 19
  • 20. 2.6 Security and Permissions (4) b. User and File level security : • Each Android package (.apk) file installed on the device is given its own unique Linux user ID, creating a sandbox for it and preventing it from touching other applications (or other applications from touching it). • This user ID is assigned to it when the application is installed on the device, and remains constant for the duration of its life on that device. • Security enforcement happens at the process level, the code of any two packages can not normally run in the same process, since they need to run as different Linux users. • Any data stored by an application will be assigned to that application's user ID, and not normally accessible to other packages. • The file created by your application is owned by your application, but its global read and/or write permissions have been set appropriately so any other application can see it. Ref: http://developer.android.com/guide/topics/security/security.html 20
  • 21. 2.6 Security and Permissions (5) c. Using Permissions: • A basic Android application has no permissions associated with it. • To make use of protected features of the device, you must include in your AndroidManifest.xml one or more <uses-permission> tags declaring the permissions that your application needs. • For example, an application that needs to monitor incoming SMS messages would specify: • <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission.RECEIVE_SMS" /> </manifest> Ref: http://developer.android.com/guide/topics/security/security.html 21
  • 22. 2.7 Programming Languages support • Java – officially supported • C/C++ – also possible but not supported 22
  • 23. 2.8 Development requirements • Java • Android SDK • Eclipse IDE (optional) 23
  • 24. 3. IDE and Tools • Android SDK • Eclipse IDE + Android Development Tools (ADT) plug in • Other IDEs • Tools for debugging, compiling and packaging 24
  • 25. 3. 1 Android SDK • Overview of how to get started with the Android SDK: – make sure that development computer meets the hardware and software requirements for the Android SDK. – install the JDK (version 5 or 6 required) and Eclipse (version 3.4 or 3.5, needed only if you want to develop using the ADT Plugin) – Download and install the SDK starter package – Install the Android Development Tool (ADT) Plugin for Eclipse – Add Android platforms (Android 1.6 or Android 2.0) and other components to your SDK Ref: http://developer.android.com/sdk/index.html 25
  • 26. 3.2 Other IDEs • Android Applications can be developed in other IDEs such as : – IntelliJ – a basic editor such as Emacs • The recommended way to develop an Android application is to use Eclipse with the ADT plugin. The ADT plugin provides editing, building, debugging, and .apk packaging and signing functionality integrated right into the IDE. • When developing in IDEs or editors other than Eclipse, you'll require familiarity with the following Android SDK tools: – android To create/update Android projects and to create/move/delete AVDs. – Android Emulator To run your Android applications on an emulated Android platform. – Android Debug Bridge To interface with your emulator or connected device (install apps, shell the device, issue commands, etc.). 26
  • 27. 3.3 Other tools Other Open source and third-party tools : • Ant - To compile and build your Android project into an installable .apk file. • Keytool - To generate a keystore and private key, used to sign your .apk file. • Jarsigner (or similar signing tool) - To sign your .apk file with a private key generated by keytool – Note: The SDK includes all the tools you need to set up an Android project, build it, debug it and then package it for distribution. 27
  • 28. 4. Applications Development Walkthrough • Developing Applications on an Emulator • Singing your application • Versioning your application • Preparing to publish your application • Publish your App on Android Market • Sample Applications 28
  • 29. 4.1 Developing Applications on an Emulator 1. Setting up Environment for Development 2. Create Android Virtual Device (AVD) 3. Creating and running a sample App Walkthrough 29
  • 30. 4.1.1 Setting up Environment for Development • Downloading the ADT Plugin – Use Update Manager feature of Eclipse installation to install the latest revision of ADT on development computer. • Configuring the ADT Plugin – Once ADT has been successfully downloaded, the next step is to modify ADT preferences in Eclipse to point to the Android SDK directory 30
  • 31. 4.1.2 Create Android Virtual Device(AVD) • An AVD defines the system image and device settings used by the emulator. • Command : android create avd --target 2 --name my_avd 31
  • 32. 4.1.3 Creating and running a sample App Walkthrough http://developer.android.com/guide/tutorials/hello-world.html 32
  • 33. 4.2 Singing your application • The Android system requires that all installed applications must be digitally signed with a certificate whose private key is held by the application's developer. • The Android system uses the certificate as a means of identifying the author of an application and establishing trust relationships between applications. • The certificate is not used to control which applications the user can install. • The certificate does not need to be signed by a certificate authority. • Android has no default keytool available. For Keytool it relies on JDK keytool. 33
  • 34. 4.3 Versioning your application • Versioning is a critical component of your application upgrade / maintenance strategy. • The Android system itself does not ever check the application version information for an application, such as to enforce restrictions on upgrades, compatibility, and so on. • Only users or applications themselves are responsible for enforcing any version restrictions for applications themselves. 34
  • 35. 4.4 Preparing to publish your application • Publishing an application means testing it, packaging it appropriately, and making it available to users of Android-powered mobile devices for download. • Before you consider your application ready for release – Test your application on device – add an End User License Agreement – Specify an icon and label in the application's manifest – Turn off logging and debugging – Version your application – Obtain a suitable cryptographic key – Sign your application 35
  • 36. 4.5 Publish your App on Android Market • Android Market is a hosted service that makes it easy for – Android Users to find and download Android applications – Android Developers to publish their applications • To publish your application on Android Market you: – first need to register with the service using your Google account – must agree to the terms of service • To register as an Android Market developer visit – http://market.android.com/publish • Requirements enforced by the Android Market server: – application must be signed with a cryptographic private key whose validity period ends after 22 October 2033. – Application must define version code, version name, icon and label attributes in manifest 36
  • 37. 4.6.1 Sample applications • Developing Application using Android UI Controls in Eclipse Galileo 3.5 http://www.vogella.de/articles/Android/article.html 37
  • 38. 4.6.2 Sample applications Developing Google maps application on Android in Eclipse Galileo 3.5 • To obtain data from Google maps you must register with Google Maps service and obtain Maps API Key. • Step for registering for a Maps API Key : – Use JDK Keytool to obtain MD5 fingerprint of the certificate that you used to sign your application – Command : keytool -list -keystore “C:path of key store” – Register the MD5 fingerprint – Obtain Maps API Key – Add reference to the Maps API Key in each MapView • Maps API Key Signup: • http://code.google.com/android/add-ons/google-apis/maps-api- signup.html http://www.vogella.de/articles/Android/article.html 38
  • 39. 4.6.3 Sample applications • Using mobile Android device for Barcode Reading (video)  Android - Apps without borders http://www.youtube.com/watch?v=3LkNlTNHZzE 39
  • 40. 5.1 Overall Evaluation Advantages : Being an open source software Android has following advantages : • The ability for anyone to customize the Google Android platform • The consumer will benefit from having a wide range of mobile applications to choose from since the monopoly will be broken by Google Android • Men will be able to customize a mobile phones using Google Android platform like never before • Features like weather details, opening screen, live RSS feeds and even the icons on the opening screen will be able to be customized • As a result of many mobile phones carrying Google Android, companies will come up with innovative products • In addition the entertainment functionalities will be taken a notch higher by Google Android being able to offer online real time multiplayer games 40
  • 41. 5.2 Overall Evaluation Limitations Bluetooth limitations Android doesn't support: • Bluetooth stereo • Contacts exchange • Modem pairing • Wireless keyboards Only support Bluetooth headsets! Firefox Mobile is not coming to Android • Apps in Android Market need to be programmed with a custom form of Java • Mozilla and the Fennec does not have that custom java 41
  • 42. 6. References • www.android.com • www.ibm.com/developerworks/opensource/library/x-android/index.html • http://devcon.momob.in • Android Development with Eclipse www.vogella.de/articles/Android/article.html • Artesis, HogeSchool Antwerpen (ppt from slideshare) • Android Internals by Marko Gargenta and Marakana (ppt from slideshare) – Note: Few slides from this presentation are taken from internet or slideshare.com as it is or modified little bit. I have no intention of saying someone’s else work as mine. I prepared this presentation to just educate co-workers about android. So I want the best material from internet and slideshare.com. 42
  • 43. Q&A Questions & Answers android.com & google.com  43

Editor's Notes

  1. Adding SDK Components Android 2.1 Platform new! Android 1.6 PlatformAndroid 1.5 PlatformOlder PlatformsAndroid 2.0.1 PlatformAndroid 2.0 PlatformAndroid 1.1 PlatformSDK Tools, r5 new!USB Driver for Windows, r3Android Dev Phone 1 is available in 18 international markets, including the US, UK, Germany, Japan, India, Canada, France, Taiwan, Spain, Australia, Singapore, Switzerland, Netherlands, Austria, Sweden, Finland, Poland, and Hungary.
  2. GPL – General Public License
  3. Mount :All files accessible in a Unix system are arranged in one big tree, the file hierarchy, rooted at /. These files can be spread out over several devices. The mount command serves to attach the file system found on some device to the big file tree. Conversely, the umount(8) command will detach it again. The standard form of the mount command, is mount -t type device dirThis tells the kernel to attach the file system found on device (which is of type type) at the directory dir. The previous contents (if any) and owner and mode of dir become invisible, and as long as this file system remains mounted, the pathname dir refers to the root of the file system on device.===================================================================Sandbox:In computer security, a sandbox is a security mechanism for separating running programs. It is often used to execute untested code, or untrusted programs from unverified third-parties, suppliers and untrusted users.The sandbox typically provides a tightly-controlled set of resources for guest programs to run in, such as scratch space on disk and memory. Network access, the ability to inspect the host system or read from input devices are usually disallowed or heavily restricted. In this sense, sandboxes are a specific example of virtualization.
  4. EDGE :EDGE is an abbreviation for Enhanced Data rates for GSM Evolution.The EDGE network is a data network used by AT&amp;T and T-Mobile. It&apos;s not a true 3G network, as its speeds don&apos;t exceed 200 Kbps, but it is sometimes called a &quot;high-speed&quot; network.====================================================SSL :Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), are cryptographic protocols that provide security for communications over networks such as the Internet. TLS and SSL encrypt the segments of network connections at the Transport Layer end-to-end.Several versions of the protocols are in widespread use in applications like web browsing, electronic mail, Internet faxing, instant messaging and voice-over-IP (VoIP).====================================================Hypertext Transfer Protocol Secure (HTTPS) is a combination of the Hypertext Transfer Protocol with the SSL/TLS protocol to provide encryption and secure identification of the server. HTTPS connections are often used for payment transactions on the World Wide Web and for sensitive transactions in corporate information systems. HTTPS should not be confused with Secure HTTP (S-HTTP) specified in RFC 2660==============================================================HTTPS &amp; SSL : http://developer.android.com/reference/javax/net/ssl/package-summary.htmlClasses HttpsURLConnection , SSLContext etc==========================================================HTTP :http://developer.android.com/reference/org/apache/http/package-summary.htmlClasses HttpConnection, HttpRequest etc.==========================================================
  5. This includes reading or writing the user&apos;s private data (such as contacts or e-mails), reading or writing another application&apos;s files, performing network access, keeping the device awake, etc.
  6. 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. Additional finer-grained security features are provided through a &quot;permission&quot; 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.Uniform Resource Identifier (URI) is a string of characters used to identify a name or a resource on the Internet. Such identification enables interaction with representations of the resource over a network (typically the World Wide Web) using specific protocols. Schemes specifying a concrete syntax and associated protocols define each URI.
  7. You can use the sharedUserId attribute in the AndroidManifest.xml&apos;smanifest tag of each package to have them assigned the same user ID. By doing this, for purposes of security the two packages are then treated as being the same application, with the same user ID and file permissions. Note that in order to retain security, only two applications signed with the same signature (and requesting the same sharedUserId) will be given the same user ID.
  8. Downloading the ADT PluginEclipse 3.5 (Galileo) :1. Start Eclipse, then select Help &gt; Install New Software. 2. In the Available Software dialog, click Add....3. In the Add Site dialog that appears, enter a name for the remote site (for example, &quot;Android Plugin&quot;) in the &quot;Name&quot; field. In the &quot;Location&quot; field, enter this URL:https://dl-ssl.google.com/android/eclipse/ Note: If you have trouble acquiring the plugin, you can try using &quot;http&quot; in the URL, instead of &quot;https&quot; (https is preferred for security reasons).Click OK.4. Back in the Available Software view, you should now see &quot;Developer Tools&quot; added to the list. Select the checkbox next to Developer Tools, which will automatically select the nested tools Android DDMS and Android Development Tools. Click Next. 5. In the resulting Install Details dialog, the Android DDMS and Android Development Tools features are listed. Click Next to read and accept the license agreement and install any dependencies, then click Finish. 6. Restart Eclipse. ===================================================================Configuring the ADT PluginOnce you&apos;ve successfully downnloaded ADT as described above, the next step is to modify your ADT preferences in Eclipse to point to the Android SDK directory:1. Select Window &gt; Preferences... to open the Preferences panel (Mac OS X: Eclipse &gt; Preferences).2. Select Android from the left panel. 3. For the SDK Location in the main panel, click Browse... and locate your downloaded SDK directory. 4. Click Apply, then OK.
  9. To create an AVD, use the &quot;android&quot; tool provided in the Android SDK. Open a command prompt or terminal, navigate to the tools/ directory in the SDK package and execute: android create avd --target 2 --name my_avdThe tool now asks if you would like to create a custom hardware profile. For the time being, press Return to skip it (&quot;no&quot; is the default response). That&apos;s it.This configures an AVD named &quot;my_avd&quot; that uses the Android 1.5 platform. The AVD is now ready for use in the emulator.In the above command, the --target option is required and specifies the deployment target to run on the emulator. The --name option is also required and defines the name for the new AVD.
  10. http://developer.android.com/guide/tutorials/hello-world.htmlFill in the project details with the following values: Project name:HelloAndroidApplication name: Hello, AndroidPackage name:com.example.helloandroid (or your own private namespace)Create Activity:HelloAndroidMin SDK Version: 2Here is a description of each field:Project Name This is the Eclipse Project name — the name of the directory that will contain the project files. Application Name This is the human-readable title for your application — the name that will appear on the Android device. Package Name This is the package namespace (following the same rules as for packages in the Java programming language) that you want all your source code to reside under. This also sets the package name under which the stub Activity will be generated. Your package name must be unique across all packages installed on the Android system; for this reason, it&apos;s very important to use a standard domain-style package for your applications. The example above uses the &quot;com.example&quot; namespace, which is a namespace reserved for example documentation — when you develop your own applications, you should use a namespace that&apos;s appropriate to your organization or entity.Create Activity This is the name for the class stub that will be generated by the plugin. This will be a subclass of Android&apos;s Activity class. An Activity is simply a class that can run and do work. It can create a UI if it chooses, but it doesn&apos;t need to. As the checkbox suggests, this is optional, but an Activity is almost always used as the basis for an application. Min SDK Version This value specifies the minimum API Level required by your application. If the API Level entered here matches the API Level provided by one of the available targets, then that Build Target will be automatically selected (in this case, entering &quot;2&quot; as the API Level will select the Android 1.1 target). With each new version of the Android system image and Android SDK, there have likely been additions or changes made to the APIs. When this occurs, a new API Level is assigned to the system image to regulate which applications are allowed to be run. If an application requires an API Level that is higher than the level supported by the device, then the application will not be installed. Other fields: The checkbox for &quot;Use default location&quot; allows you to change the location on disk where the project&apos;s files will be generated and stored. &quot;Build Target&quot; is the platform target that your application will be compiled against (this should be selected automatically, based on your Min SDK Version).Notice that the &quot;Build Target&quot; you&apos;ve selected uses the Android 1.1 platform. This means that your application will be compiled against the Android 1.1 platform library. If you recall, the AVD created above runs on the Android 1.5 platform. These don&apos;t have to match; Android applications are forward-compatible, so an application built against the 1.1 platform library will run normally on the 1.5 platform. The reverse is not true.Your Android project is now ready. It should be visible in the Package Explorer on the left. Open the HelloAndroid.java file, located inside HelloAndroid &gt; src &gt; com.example.helloandroid). It should look like this:================================================================Construct the UI-------package com.android.helloandroid;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class HelloAndroid extends Activity {   /** Called when the activity is first created. */   @Override   public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       TextViewtv = new TextView(this);       tv.setText(&quot;Hello, Android&quot;);       setContentView(tv);   }}
  11. class Hello white #FFFFFFButton Handler : myClickHandler=======================================================import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class Hello extends Activity { private EditText text; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main); // bind the layout to the activity text = (EditText) findViewById(R.id.EditText01);text.setText(&quot;No button pressed&quot;); } // Will be connected with the buttons via XML public void myClickHandler(View view) { switch (view.getId()) { case R.id.Button01:text.setText(&quot;Button 1 was clicked&quot;); break; case R.id.Button02:text.setText(&quot;Button 2 was clicked&quot;); break; case R.id.Button03:text.setText(&quot;Button 3 was clicked&quot;); break; } }}===============================================================Maps API Key — an alphanumeric string that uniquely identifies the certificate and developer registered with the service.Registering for a Maps API Key is simple, free, and has two parts: 1. Registering the MD5 fingerprint of the certificate that you will use to sign your application. The Maps registration service then provides you a Maps API Key that is associated with your application&apos;s signer certificate. 2. Adding a reference to the Maps API Key in each MapView, whether declared in XML or instantiated directly from code. You can use the same Maps API Key for any MapView in any Android application, provided that the application is signed with the certificate whose fingerprint you registered with the service.==========================================================
  12. Maps API Key — an alphanumeric string that uniquely identifies the certificate and developer registered with the service.Activity class:CurrentLocationAndroidManifest.xml : User library = com.google.android.maps========================================================Layout  &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;RelativeLayoutxmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;android:id=&quot;@+id/mainlayout&quot;android:orientation=&quot;vertical&quot;android:layout_width=&quot;fill_parent&quot;android:layout_height=&quot;fill_parent&quot; &gt; &lt;com.google.android.maps.MapViewandroid:id=&quot;@+id/mapview&quot;android:layout_width=&quot;fill_parent&quot;android:layout_height=&quot;fill_parent&quot;android:clickable=&quot;true&quot;android:apiKey=&quot;Your Maps API Key&quot; /&gt;&lt;/RelativeLayout&gt;===========================================================import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.widget.RelativeLayout;import android.widget.ZoomControls;import com.google.android.maps.GeoPoint;import com.google.android.maps.MapActivity;import com.google.android.maps.MapController;import com.google.android.maps.MapView;public class CurrentLocation extends MapActivity { private MapControllermapController; private MapViewmapView; private LocationManagerlocationManager; public void onCreate(Bundle bundle) {super.onCreate(bundle);setContentView(R.layout.main); // bind the layout to the activity // create a map viewRelativeLayoutlinearLayout = (RelativeLayout) findViewById(R.id.mainlayout);mapView = (MapView) findViewById(R.id.mapview);ZoomControlsmZoom = (ZoomControls) mapView.getZoomControls();linearLayout.addView(mZoom);mapController = mapView.getController(); // Zoon 1 is world viewmapController.setZoom(14);locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new GeoUpdateHandler()); } @Override protected booleanisRouteDisplayed() { return false; } public class GeoUpdateHandler implements LocationListener { @Override public void onLocationChanged(Location location) {int lat = (int) (location.getLatitude() * 1E6);intlng = (int) (location.getLongitude() * 1E6);GeoPoint point = new GeoPoint(lat, lng);mapController.setCenter(point);// setContentView(mapView); } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }}
  13. Fennec :Firefox for mobile (codenamed Fennec) is the name of the build of the Mozilla Firefox web browser for smaller non-PC devices, mobile phones and PDAs.