Android Tutorial - PowerPoint PPT Presentation

About This Presentation
Title:

Android Tutorial

Description:

Android Classes in Mumbai.. for more visit or – PowerPoint PPT presentation

Number of Views:327

less

Transcript and Presenter's Notes

Title: Android Tutorial


1

Vibrant Technologies Computers
We Provide ANDROID COURSE

Make Career with us !!!
K1/ 4, Second floor, Sector-15/ 16 Market, Vashi,
Navi Mumbai.
Contact 9892900103 / 9892900173 www.vibranttechn
ologies.co.in
2
Android Terminology
  • Component Activities, content providers,
    broadcast receivers, and services that together
    make up an application
  • Activity A single user-based task, usually, but
    not always, containing views
  • Content Provider A component that serves data to
    other applications
  • Broadcast receiver Component receiving
    notifications from other activities
  • Service Background process responding local or
    remote application requests
  • View Base class for most layout components
  • UI Control textView, EditText, CheckBox,
    RadioButton, Spinner, etc.
  • Layout Visual arrangement of containers and
    views
  • Context Object containing the global state of an
    application environment
  • Intent Asynchronous launching (or communication)
    message
  • Intent Filter Criteria an Android device uses to
    find matching activities

3
Android Terminology (cont.)
  • Preference A key/value pair, which defines a
    user option
  • Context Menu A menu executing after a long click
  • Long Click Analogous to right clicks Hold click
    for approximately two seconds
  • Modal Dialog requiring a response before
    continuing an activity
  • Localize Separate data from an application, so
    changes don't require changing source. Refer to
    the data by an identifier name.
  • Faded Edge An edge of a scrollable area that is
    faded to indicate that more information exists
  • Fragment An independent module tightly bound to
    an application
  • Bundle A set of key/value data pairs for
    persisting an application state

4
Android Terminology (cont.)
  • Gravity Determine alignment of text within a
    view of different size. Values can include top,
    bottom, left, center, fill
  • Content Provider Wrapper for data, exposing data
    (SQL for example) to multiple applications, using
    a standard API.
  • Cursor An object containing rows extracted from
    an SQL table
  • Projection The columns of an SQL table of
    interest
  • Live Folder Deprecated mechanism to display data
    on home page
  • Developers now use Widgets
  • Live updates display automatically
  • Widgets Miniature icon-based application view
    (clock, battery charge percent) embedded on the
    home screen or application
  • Live Wallpaper Dynamic interactive home screen
    backgrounds

5
Creating an Android Application
  • Perform the following steps
  • Create a new Android project in Eclipse with the
    wizard icon
  • Register activities, specify Content Providers,
    Services, and security specifications in
    AndroidManifest.xml
  • Create localized literals in the res/values
    directory
  • Create other resources in various res directories
  • Create UI layouts in the res/layouts directory
  • Code the activity java class in the package folder

6
Step 1 Eclipse Android Project Wizard
  • First Screen
  • Name the project
  • Use workspace or browse to a new location
  • Second Screen Pick an Android version
  • The oldest version has the most compatibility
  • Newer versions obviously have more features
  • Some newer features are backwards compatible
  • Third Screen Pick a package name
  • Example com.acorns.lesson or com.cs415.name
  • Click finish to complete the process

7
Android Application Project Structure
8
Automatically Generated Files
  • package com.paad.helloworldpublic final class
    BuildConfig
  • public final static boolean DEBUG true
  • package com.paad.helloworldpublic final class R
  • public static final class attr
  • public static final class drawable
  • public static final int ic_launcher0x7f020000
  • public static final class layout
  • public static final int main0x7f030000
  • public static final class string
  • public static final int app_name0x7f040001
  • public static final int hello0x7f040000

9
Step 2 Create the Manifest
  • The new project wizard
  • Automatically Creates a default
    AndroidManifest.xml file
  • Creates a default activity in the project
    directory
  • Alter the manifest
  • Register activities with intents, permissions,
    content providers, services, etc.
  • There are two possibilities
  • Edit the manifest directly
  • Use the Manifest Editor that displays when
    clicking the AndroidManifest.xml file

10
HelloWorld Manifest
  • lt?xml version"1.0" encoding"utf-8"?gt
  • ltmanifest xmlnsandroid"http//schemas.android.co
    m/apk/res/android" package"com.paad.helloworld"
    androidversionCode"1" androidversionName"1
    .0" gt
  • ltuses-sdk androidminSdkVersion"1" // User
    cannot install if less (1default)
  • androidtargetSdkVersion"15" /gt // Verify
    features between min target
  • ltapplication androidicon"_at_drawable/ic_launc
    her"
  • androidlabel"_at_string/app_name" gt
  • ltactivity androidlabel"_at_string/app_name"
  • androidname".MyActivity" gt
  • ltintent-filter gt
  • ltaction androidname"android.intent.action.MAI
    N" /gt
  • ltcategory androidname"android.intent.category
    .LAUNCHER" /gt
  • lt/intent-filtergt
  • lt/activitygt
  • lt/applicationgt
  • lt/manifestgt

11
Step 2 Register Activities
Definition A focused single task
  • How? Alter the manifest!
  • Create additional activities
  • Create and/or fragments with intents,
    permissions, content providers, services, etc.
  • There are two possibilities
  • Edit the manifest directly
  • Use the GUI that displays when clicking the
    AndroidManifest.xml file(Double click
    AndroidManifest.xml, click on application, scroll
    down and click on add, Choose activity from the
    dropdown, give it a name, and click finish to
    start coding)

12
Intent
Definition Messages that asynchronously launch
or communicate with other applications/activities
  • Android Intent Resolver
  • Applications sends intents to the Android system
  • The Android intent resolver searches all
    application intent filters to find the most
    suitable matching activity
  • Intents can target a single application or
    multiple applications broadcast for sequential
    handling
  • Intent Filters
  • Intent fields contain criteria fields defining
    whether an activity is appropriate
  • Criteria fields include actions, a category, path
    to data, MIME type, a handling class, and
    security restrictions

More Details later
13
Manifest Intent Filter Example
Note An intent launches an activity
  • ltintent-filtergt
  • ltaction androidname"android.inte
    nt.action.MAIN" /gt
  • ltcategory androidname"android.in
    tent.category.LAUNCHER" /gt
  • lt/intent-filtergtltintent-filtergt
  • ltaction androidname"android.inte
    nt.action.VIEW" /gt
  • ltaction androidname"android.inte
    nt.action.EDIT" /gt
  • ltaction androidname"android.inte
    nt.action.PICK" /gt
  • ltcategory androidname"android.in
    tent.category.DEFAULT" /gt
  • ltdata androidmimeType"vnd.androi
    d.cursor.dir/vnd.google.note" /gt
  • lt/intent-filtergtltintent-filtergt
  • ltaction androidname"android.inte
    nt.action.GET_CONTENT" /gt
  • ltcategory androidname"android.in
    tent.category.DEFAULT" /gt
  • ltdata androidmimeType"vnd.androi
    d.cursor.item/vnd.google.note" /gt
  • lt/intent-filtergt

The Main Entry when a user launches the
application
Launched by other applications for list access
Launched by other applications for single item
access
14
Providing Access to NotePad Data
  • ltintent-filtergt
  • ltaction androidname"android.intent.action.VIEW"
    /gt
  • ltaction androidname"android.intent.action.EDIT"
    /gt
  • ltaction androidname"android.intent.action.PICK
    " /gt
  • ltcategory androidname"android.intent.category.D
    EFAULT" /gt
  • ltdata androidmimeType"vnd.android.cursor.dir/vn
    d.google.note" /gt
  • lt/intent-filtergt
  • Declares legal activity operations on a note
    directory.
  • URI, vnd.android.cursor.dir/vnd.google.note ,
    retrieves a cursor of zero or more items
    (vnd.android.cursor.dir) with note pad data
    (vnd.google.note).
  • Legal actions view or edit the directory of data
    (VIEW and EDIT ), or pick and return a particular
    note (PICK).
  • Activities launched without a explicit package
    name require the DEFAULT category, or they will
    not be resolved

15
Another Android Manifest
  • lt?xml version"1.0" encoding"utf-8"?gt
  • ltmanifest xmlnsandroid"http//schemas.android.co
    m/apk/res/android"
  • package"com.bikerolas"
    androidversionCode"30" androidversionName"1.2
    "gt
  • ltuses-permission androidname"android.permiss
    ion.RECEIVE_BOOT_COMPLETED" /gt
  • ltuses-permission androidname"android.permiss
    ion.ACCESS_LOCATION /gt
  • ltuses-permission androidname"android.permiss
    ion.ACCESS_GPS" /gt
  • ltuses-permission androidname"android.permiss
    ion. ACCESS_CELL_ID /gt
  • ltapplication androidicon"_at_drawable/flingicn1"
  • androidlabel"_at_string/app_name"
    androiddebuggable"false"gt
  • ltactivity androidname".Fling"
    androidlabel"_at_string/app_name"gt
  • ltintent-filtergtltaction
    androidname"android.intent.action.MAIN" /gt
  • ltcategory androidname"android.intent.category.
    LAUNCHER" /gt lt/intent-filtergt
  • lt/activitygt
  • ltservice androidname".FlingService" /gt
  • ltreceiver androidname".FlingServiceManager"
    androidpermission"android.permission.RECEIVE_B
    OOT_COMPLETED"gt
  • ltintent-filtergtltaction androidname"android.int
    ent.action.BOOT_COMPLETED" /gt lt/intent-filtergt
  • lt/receivergtlt/applicationgtltuses-sdk
    androidminSdkVersion"2"gtlt/uses-sdkgt
  • lt/manifestgt

Note ACCESS_LOCATION and ACCESS_GPS were used by
earlier Android versions and are now deprecated
16
Localize Strings
How? Create XML files in the res/values
directory Why? Promotes Internationalize and
easier maintenance
  • Example (Strings.xml)
  • lt?xml version"1.0" encoding"utf-8"?gt
  • ltresourcesgt
  • ltstring name"hello"gtHello World,
    MyActivity!lt/stringgt
  • ltstring name"app_name"gtPA4AD_Ch02_Hello_Worldlt/s
    tringgt
  • lt/resourcesgt
  • Build Android creates gen/ltpackageNamegt/R.java
    automatically from the information in
    res/Strings.xml
  • Java Access setTitle(getText(R.string.hello))
  • Manifest XML Access androidlabel"_at_string/app_na
    me"

17
Layout Example (main.xml)
How? Store xml text files in the res/layouts
directory
  • lt?xml version"1.0" encoding"utf-8"?gt
  • ltLinearLayout xmlnsandroid"http//schemas.androi
    d.com/apk/res/android" androidorientation"verti
    cal" androidlayout_width"fill_parent"
    androidlayout_height"fill_parent"gt ltTextView
    androidlayout_width"fill_parent"
    androidlayout_height"wrap_content"
    androidtext"_at_string/hello" /gt
  • lt/LinearLayoutgt
  • Notes
  • fill_parent (or match_parent Android 2.0 and
    later) fill the entire space of the parent layout
  • Wrap_content uses as little space as needed
  • LinearLayout is a vertical or horizontal list of
    items (like BoxLayout in Swing)

18
The Java Code
  • package com.paad.helloworld
  • import android.app.Activity
  • import android.os.Bundle
  • public class MyActivity extends Activity
  • / Called when the Activity is created or
    restarted. /
  • _at_Override public void onCreate(Bundle
    savedState)
  • super.onCreate(savedState)
    setContentView(R.layout.main)

A Bundle is a bunch of key/value pairs for
Applications to restore their state after an
Android termination
19
Android Emulator
  • Start the Emulator from Eclipse
  • Right click on the application
  • Select run as and then Android application
  • To debug Select debug as and then Android
    Application
  • After the first time, just click the run icon at
    the top of the Eclipse window
  • Important notes
  • The emulator takes quite a bit of time to launch
    be patient
  • Dont shut down the emulator between application
    runs. Closing leads to long start up times, and
    sometimes confuses Eclipse
  • Every Eclipse run reinstalls and re-launches the
    application

20
Debugging Applications
  • Set debuggable"true" in the ltapplicationgt tag
  • This is automatic when debugging in the emulator
  • Manually explicitly set preference to debug on a
    real device
  • Eclipse views
  • DDMS Dalvik Debug Monitor Server
  • Simulate Event Global Positioning Service (GPS),
    phone calls, Short Message System (SMS), etc.
  • Debug Start with "Debug as"
  • Execute emulator to get a terminal window and
    execute Linux commands to connect to SQL, execute
    queries, etc.
  • ADB (Android Debug Bridge) Debug on actual
    devices (if debugging enabled) using Eclipse
    Note ADB is part of the SDK platform tools
  • Techniques Logcat displays console output, Trace
    , Breakpoints, Strict mode

21
Enable Device Debugging
  • Eclipse windowgtopen perspective-gtothergtDDMS
  • Enable debugging on device
  • Older devices settingsgtapplicationsgtdevelopment
  • Newer devices settingsgtabout phonegt tap build
    seven timesgt back

22
Debugging Techniques
  • Tracing the execution
  • Start android.os.Debug.startmethodTracing("foo")
  • Stop android.os.Debug.stopMethodTracing()
  • Writes output to foo.trace on the emulator or
    device
  • Log class
  • Analogous to Java System.out.println or
    Javascript Console.log
  • Example Log.v("category string", "message")
  • Asynchronous Alert Dialogs AlertDialog.Builder
    build new AlertDialog(context)build.setTitle("
    Some Message")AlertDialog ad
    builder.create()ad.show()
  • Breakpoints Set Eclipse breakpoint and use
    "Debug as" option

23
Strict Mode (Android 2.3 and newer)
  • Report violations and IO Operations Disk reads,
    disk writes, etc.
  • Common options when detection occurs Write a Log
    message, display a dialog message, or crash the
    application
  • ExampleStrictMode.setVMPolicy(new
    StrictMode.VMPolicy.builder() .detectDiskWrites()
    .detectLeakedSqlLiteObjects() .penaltyLog().penal
    tyDeath().build())
  • Note The build retuns a ThreadPolicy object to
    the VM Policy builder
  • Detect if in debug modeApplicationInfo info
    getContext().getApplicationInfo()if (info.flags
    ApplicationInfo.FLAG_DEBUGGABLE) ! 0) /
    code here /
Write a Comment
User Comments (0)
About PowerShow.com