Amoozesh Android Full

  • Upload
    mobin

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

  • 7/23/2019 Amoozesh Android Full

    1/274

    Prog

    Mobil

    Fram

    6037 991

    .

    03434

    : .

    MoSync Framework

    amming for Android OS.

    e Web Application

    work : MoSync

    :

    )1390)9

    8 0175 3850

    /

    :

    46510008

  • 7/23/2019 Amoozesh Android Full

    2/274

    2

    :

    :

    . Native

    .

    .

    . .

    Mobile Web Application

    .

    .Cross Platform .

    iOS

    windows

    phone .

    . .

  • 7/23/2019 Amoozesh Android Full

    3/274

    3

  • 7/23/2019 Amoozesh Android Full

    4/274

    4

    :

    ................................9

    .......................................................................................................10

    .......................................................................................11

    .......................................................................................................14

    ............................................................................................15

    .....................................................................................18

    !....................................................23

    ............................................................................30

    .........................................................................34

    .........................................................................................................35

    ............................................................................................................39

    :

    ................................43

    .....................................................................................................44

    ...........................................................................................65

  • 7/23/2019 Amoozesh Android Full

    5/274

    ..........................................................68

    ..........................................................72

    ..........................................................75

    ......................79

    ..........................................................80

    ..........................................................91

    ..........................................................93

    (Ap.................................................94

    (Acti.............................................100

    ........................................................102

    ........................................................103

    ........................................................104

    ..........................................106

    ....................................................108

    ........................................................113

    ........................................................114

    ........................................................118

    5

    .............

    ...............................

    ..................................................

    :

    .....................

    ............................

    ................................................

    (plication Components

    (vating Components

    .............................

    ............((The Manifest File

    ...............

    .................................))Activities

    ......................

    .........................

  • 7/23/2019 Amoozesh Android Full

    6/274

    6

    ......................................................................................................122

    ..........................................................................123

    (intent filters)...................................................................124

    .......................................................................................................126

    ..................................................................128

    .............................................................................................130

    .....................................................................131

    ................................................................................147

    .................................................................................153

    .....................................................................................154

    ................................................................................155

    :

    XML.............170

    (Application Resources).............................................................171

    View

    Layout

    ...........................................................................................173

    ......................................................................................176

    .......................................................................................177

    (Events)..................................................................................................179

  • 7/23/2019 Amoozesh Android Full

    7/274

    ........................180

    ........................................................181

    ........................................................188

    .........................................189

    ........................................................196

    ........................................................204

    .....................206

    ........................................................207

    ........................................................208

    ........................................................209

    ........................................................209

    ........................................................210

    ........................................................213

    SQLite.............219

    ........................................................220

    ........................................................222

    ........................................................222

    7

    :

    ............................................

    ..MoSync

    ..............................

    .........................

    :

    ................

    ......................))JSON messages

    .....))string stream messages

    ..................................

    .....................

    ..........................

    :

    ..............................

    .............................................SQLite

    .............SQLite

  • 7/23/2019 Amoozesh Android Full

    8/274

    8

    SQLite................................................................................226

    SQLite..............................................................................233

    SQLite.........................................................................234

    ...................................................................235SQLite

    ........................................................................237

    :

    jQueryjQuery Mobile........245

    .................................248

  • 7/23/2019 Amoozesh Android Full

    9/274

    :

  • 7/23/2019 Amoozesh Android Full

    10/274

    10

    1

    )Smartphone(

    2

    3

    " 4Open Handset Alliance "

    "Google". 12 3

    XML2.8C2.1 .

    .

    .

    .

    5

    6

    7

    8

    .

    1Open source

    2Handheld

    3Tablet

    . www.OpenHandsetAlliance.com 4

    5Kernel(Nucleus)

    6Rich

    7User Friendly

    8End User

  • 7/23/2019 Amoozesh Android Full

    11/274

    .

    .

    1

    1Bluetooth,2.

    1

    Component-Based

    11

    .

    .

    .

    .

    - .

    .

    SQLite

    .

    EDGE,33G,4GPS,5GSM,6Wi-Fi

  • 7/23/2019 Amoozesh Android Full

    12/274

    12

    .

    7

    .

    8

    9

    .

    OpenGL

    .

    MP3, AAC , OGG , AMR , MIDI

    MPEG4 WAV , BMP , GIF , PNG , JPG .

    Adobe Flash GIF

    .

    html5 Adobe Flash

    1Open specification for short-range wireless communication

    2Enhanced Data Rates for Global Evolution-advanced standard for wireless

    communication (next step up from GSM) -3Third Generation

    4Global Positioning System

    5Global System for Mobile Communications

    6Wireless Fidelity

    7High Quality

    8Vector

    9Bitmap

  • 7/23/2019 Amoozesh Android Full

    13/274

    ) .

    .

    Dalvik

    .

    1

    2

    )(

    ARM

    3ARM, MIPS, Power

    2008.

    .

    .

    1Touch Screen

    2Track Ball

    3

    Advanced Risk Machine

    13

    Streaming.

    HTML5 )

    .

    iOS

    Architecture, x86

    Tablet PC

  • 7/23/2019 Amoozesh Android Full

    14/274

    14

    :((Integrated browser

    .WebKit

    1)

    (

    )Isolate(.

    .

    (++C 2 ) . ++C

    .-

    C

    C++

    -

    :

    90 Sun Micro system

    )

    (

    ++C

    1Life Cycle

    2Syntax

  • 7/23/2019 Amoozesh Android Full

    15/274

    .

    (

    (

    3

    4

    .

    )Byte Code(

    .

    .

    1SDK

    1Portable

    2Intermediate code

    3Security

    4Platform Independent

    5Intermediate code

    6

    Java Virtual Machine

    15

    C++ 1

    2

    (

    (

    .

    5

    6

    .

    .

    2.

  • 7/23/2019 Amoozesh Android Full

    16/274

    16

    ((Software Development Kit

    .OS X

    .

    ((IDE

    )SDK( .

    .

    .

    )JDK(EclipseAndroid

    SDK

    .ADT3

    4

    .

    32

    64

    .

    .

    )Eclipse IDE(

    http://www.eclipse.org/downloads

    1Software Development Kit

    2Emulator

    3Android development Tools

    4Plug-in

  • 7/23/2019 Amoozesh Android Full

    17/274

    (

    !)

    http://code.g

    .

    (

    .

    17

    .

    SDK

    om/android/download.htmlogle.c

    WWW.kamalan.com

    .

    .

    ++C

    C++,C#(

    .

  • 7/23/2019 Amoozesh Android Full

    18/274

    18

    1

    .

    www.prozhe.com

    .

    .

    !

    RIM .

    1Open mind

  • 7/23/2019 Amoozesh Android Full

    19/274

    .

    2012

    .

    .

    (:

    .

    19

    .

    .

    .

    )

    .

    .

    2005

  • 7/23/2019 Amoozesh Android Full

    20/274

    20

    .

    .

    .

    .

    .

    2006

    .

    2007

    .

    !

  • 7/23/2019 Amoozesh Android Full

    21/274

    2007

    .

    Open Handset Allianc 5

    1NTT Do Nvidia

    eBay

    :

    1Nippon Telegraph and Telephone(tele

    telecommunication market in Japan)

    21

    .

    .

    .2007

    34

    .

    LG HTCT-MobileoMo

    .

    .

    .

    hone company dominating the

  • 7/23/2019 Amoozesh Android Full

    22/274

    22

    .T-MobileHTC

    Open Handset

    Alliance

    22

    2008

    HTC

    DreamT-Mobile G1Era G1 .

    2008

    .

    14

    Open Handset Alliance

    .

    .

    NEC

    NXP

    ST-Ericsson

    ZTE

    .

  • 7/23/2019 Amoozesh Android Full

    23/274

    Apache

    !

    :

    .1

    2

    .clair MR11

    1

    clair Maintenance Release1

    23

    License .

    .

    .

    Cupcake

    .5

    Donut

    1.6

    clair

    2

    .1

  • 7/23/2019 Amoozesh Android Full

    24/274

    24

    FroYo)Frozen yogurt(

    2.2.

    . Gingerbread

    .

    .

    2011

    3. )(Honey-Comb

    . CES

    .

    1.5Cupcake

    1.5

    .) Cupcake

    Base )

    .

    :

  • 7/23/2019 Amoozesh Android Full

    25/274

    Picasa

    )A2DP(

    .

    :

    )

    25

    YouTube

    ).)AVRCP

    Donut1.6

    15

    2009

    1.6

    2

    6

    29

    (

  • 7/23/2019 Amoozesh Android Full

    26/274

    26

    )Bookmarks(

    )History(

    )Contacts(

    1

    CDMA/EVDO8021xVPN

    2

    WVGA

    clair2.12

    2

    2.1

    1.6

    .

    2

    26

    2009

    .

    2009SDK

    2

    0

    1

    )

    2.0.1

    3

    (.SDK 2.112

    2010

    .

    :

    1HomeScreen

    2Text to Speech

    3Bug

  • 7/23/2019 Amoozesh Android Full

    27/274

    27

    Multi Touch

    TML5

    312

    Microsoft Exchange

    2.1

    FroYo2.2

  • 7/23/2019 Amoozesh Android Full

    28/274

    28

    2.2

    20

    2010

    .

    :

    52 2

    (JIT1

    .

    2

    .

    .(

    V8

    Microsoft Exchange

    1Just In Time

    2Machine Independent

  • 7/23/2019 Amoozesh Android Full

    29/274

    .

    .

    .

    i.

    .

    !)

    29

    2.3

    Gingerbread2.3

    3.0

    )

    (S

    (

    .

    ).

    .

    .(

  • 7/23/2019 Amoozesh Android Full

    30/274

    30

    .

    2.1

    .

    2010

    2.1

    clair

    1.6

    25

    1.5

    .

    5/0

    .

    .

    1

    2009

    1.6

    2

    2.1

    2.2

    .

    HTC

  • 7/23/2019 Amoozesh Android Full

    31/274

    XPERIA X10

    X10

    2.2

    . .2

    !

    .

    . HTC

    .

    31

    .

    .

    . 1.6

    . X10

    2.1

    .

    6 X10

    .

  • 7/23/2019 Amoozesh Android Full

    32/274

    32

    2.2

    2.1

    Open Handset Alliance

    .

    .

    2010

    .

    RIM

    .

    1970

    .

    .

    29

    2007

    2008

  • 7/23/2019 Amoozesh Android Full

    33/274

    .

    1/6

    .

    61.

    .

    .

    .

    .

    70

    .

    .

    .

    33

    .

    2010

    6/9

    21

    36

    17

    50

    .RIM

  • 7/23/2019 Amoozesh Android Full

    34/274

    34

    20

    .

    .

    2010

    .

    .

    .

    HTC .

    .

  • 7/23/2019 Amoozesh Android Full

    35/274

    .

    MOTOBLUR

    .

    .

    35

    .

    HTC.

    .

    HTC

    .HTC

  • 7/23/2019 Amoozesh Android Full

    36/274

    36

    .

    .

    .70

    30

    .

    46

    .

    25

    .

    13

    .

  • 7/23/2019 Amoozesh Android Full

    37/274

    HT

    50000

    iTunes

    .

    .

    37

    ) (

    !

    !

    175000

    .

    .

  • 7/23/2019 Amoozesh Android Full

    38/274

    38

    .

    .

    .

    .

    .

    Androlib

    Androidzoom.

    .

    )Goggles(

    .

  • 7/23/2019 Amoozesh Android Full

    39/274

    .

    .

    .

    Google I/2010

    .

    .

    .

    39

    .

    .

    O.

    .

  • 7/23/2019 Amoozesh Android Full

    40/274

    40

    .

    .

  • 7/23/2019 Amoozesh Android Full

    41/274

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    .............................................................

    41

    :

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

    .......................................................................

  • 7/23/2019 Amoozesh Android Full

    42/274

    42

  • 7/23/2019 Amoozesh Android Full

    43/274

    :

    :

  • 7/23/2019 Amoozesh Android Full

    44/274

    44

    Eclipse

    File

    New

    Android Project

    ).

    1-1(

    -

  • 7/23/2019 Amoozesh Android Full

    45/274

    1

    SDK .

    (

    SDK

    .

    SDK.)

    .

    Application Na(

    )1-3(.

    2

    SDK API Level

    .

    1Version(SDK Version)

    2

    Dot

    45

    )1-2.(

    . .

    SDK

    .(

    (

    )e

    ))Package Name.

    Min SDK Version.

    SDK

  • 7/23/2019 Amoozesh Android Full

    46/274

    46

    )

    (

    8

    2.2

    .

    2.2

    2.2

    .

  • 7/23/2019 Amoozesh Android Full

    47/274

    -

    47

  • 7/23/2019 Amoozesh Android Full

    48/274

    48

    -

  • 7/23/2019 Amoozesh Android Full

    49/274

    3

    .

    .

    )1-1(

    1Package name

    2Unique

    3

    Lowercase letter

    -

    49

    :1

    2

    .

    .

    .

    Package Explorer

    .

    )1-4(

    .

  • 7/23/2019 Amoozesh Android Full

    50/274

    50

    activity

    .

    YourActivity.java

    R.java

    SDK

    Android Library

    .

    ...

    Assets

    .

    Res

    1User Interface

  • 7/23/2019 Amoozesh Android Full

    51/274

    res/drawable

    res/layout

    res/values

    AndroidManifest.xml

    -

    51

    XML

    String)(

    .

  • 7/23/2019 Amoozesh Android Full

    52/274

    52

    )1-1(

    .

    .

    )1-5(

    1

    .

    1Directory(Folder)

  • 7/23/2019 Amoozesh Android Full

    53/274

    -

    .MyFirstProject.java

    53

    YourActivity.java

    .(

    (

  • 7/23/2019 Amoozesh Android Full

    54/274

    54

    packageMilad.Fashi.MyFirstProject;

    importandroid.app.Activity;importandroid.os.Bundle;

    publicclassMyFirstProject extendsActivity {/** Called when the activity is first created.*/

    @OverridepublicvoidonCreate(BundlesavedInstanceState) {

    super.onCreate(savedInstanceState);setContentView(R.layout.main);

    }

    }

    import .

    ()onCreate .

    .)

    (.

    .

    onCreate()main()

    !

    Android Life

    Cycle

    End()Main .

  • 7/23/2019 Amoozesh Android Full

    55/274

    Act onCreate()

    ()onCreate

    .

    super. onCreate(savedInstan

    s

    .

    setCont

    .

    .

    Exte .

    2

    Override

    55

    MyFirstProject ivity

    1

    2

    .

    Activity

    savedInstanceState

    eState);

    vedInstanceState

    .

    .

    (entView(R.layout.main

    main.xml

    onCreate .

    1super class))parent

    ds .))Derivation

  • 7/23/2019 Amoozesh Android Full

    56/274

    56

    .genPackage Explorer

    .

    R.Java

    .

    )

    (

    .

    .

    .

    /* AUTO-GENERATED FILE. DO NOT MODIFY.* This class was automatically generated by the* aapt tool from the resource data it found. It*should not be modified by hand.*/

    packageMilad.Fashi.MyFirstProject;

    publicfinalclassR {publicstaticfinalclassattr {}

    publicstaticfinalclassdrawable {publicstaticfinalinticon=0x7f020000;}

    publicstaticfinalclassid {publicstaticfinalintbtn_Button1=0x7f050000;

    }publicstaticfinalclasslayout {

    publicstaticfinalintmain=0x7f030000;}

    publicstaticfinalclassstring {publicstaticfinalintapp_name=0x7f040001;publicstaticfinalinthello=0x7f040000;

    }}

  • 7/23/2019 Amoozesh Android Full

    57/274

    1

    Android 2.2

    Android 2.2 Librar

    .

    1-

    .

    2

    .

    .

    1Library

    2

    Sub Directory

    57

    )5-1(Package Explorer

    .

    .

    : gen/R.java

    ) (asset

    .

    5-1res

    :res

    1./res/drawable-hdpi:

    ))Resolution

  • 7/23/2019 Amoozesh Android Full

    58/274

    58

    )HDPI=high dot per inch(. LCD

    .

    )Dimension(

    .

    2./res/drawable-ldpi: -drawable

    hdpi

    .

    3./res/drawable-mdpi:

    drawable-hdpidrawable-ldpi

    1

    .

    :

    res/drawable-xdpi

    .

    1Medium

  • 7/23/2019 Amoozesh Android Full

    59/274

    Text Box

    . ...Radio Button

    .

    2

    xml

    xmlUI

    .

    MyFirstProjec:

  • 7/23/2019 Amoozesh Android Full

    60/274

    60

    xml.

    >LinearLayout

  • 7/23/2019 Amoozesh Android Full

    61/274

    ta

    main.xml

    User Interface Desig(

    -

    . strings.xml

    Resources

    .

    61

    . b

    .

    .switch

    (

    .

    5.Res/values:

  • 7/23/2019 Amoozesh Android Full

    62/274

    62

    strings.xml

    .

    Hello World,MyFirstProject!

    MyFirstProject

    xml

    string

    .

    ).

    1).Name

    Resources

    .

    String, Integer Array, String Array, Color, Dimension, Drawable,

    Item, Style/Theme

    )

    2(

    .

    .

    1Attribute

    2Modular

  • 7/23/2019 Amoozesh Android Full

    63/274

    Pac)1-5(

    .

    .

    (

    .

    ion="8"/>

    drawable/icon"ame">

    irstProject"ame">

    id.intent.action.MAIN"/>

    NCHER"/>

  • 7/23/2019 Amoozesh Android Full

    64/274

    64

    android:versionCode="1"1

    2

    )

    (

    .

    android:versionName="1.0"

    String

    .

    Ultimate

    .

    Version Name

    .

    android:minSdkVersion="8"

    8

    Android:LableAndroid:icon Application

    .

    3

    .@drawable res/drawable

    Icon

    )LDPIMDPIHDPI(. .( String.xml

    1Integer

    2Market

    3Relative

  • 7/23/2019 Amoozesh Android Full

    65/274

    (.Intent

    Activity to Fire up

    Activity

    .

    .

    ))Button

    .(

    View

    1

    Launch

    65

    ValueResources

    CategoryAction

    Activity

    .Launcher

    )

    1(

    .

    IntentActivity

    default. Properties

    )Widget( .

    )

  • 7/23/2019 Amoozesh Android Full

    66/274

    66

    ).Import(

    importandroid.widget.Button;

    onCreate()

    .)

    Bold

    (

    publicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);

    Button btn_finish=(Button) findViewById(R.id.btn_Finish);

    }

    1

    . ++C xml

    .

    . xml

    2

    3

    .

    Button btn_finish=(Button) findViewById(R.id.btn_Finish);

    1imperative

    2Source Code

    3User Interface

  • 7/23/2019 Amoozesh Android Full

    67/274

    .

    1

    btn_finish

    .

    R.id.Object_Name

    id

    .

    android:id xml

    :

    2

    .

    ViewById(R.id.btn_Finish);

    Type Cast

  • 7/23/2019 Amoozesh Android Full

    68/274

    68

    )

    1(

    .

    Window

    Android SDK And AVD

    Manager 1-7. (

    2AVDSDK3 ).Eclipse

    -

    . 1-8New

    1Virtual Device(Emulator)

    2Android Virtual Device

    3Software Development kit

  • 7/23/2019 Amoozesh Android Full

    69/274

    -

    69

  • 7/23/2019 Amoozesh Android Full

    70/274

    70

    .

    Resolution

    .

    SD card

    2

    .

    . Create AVD

    RunRun

    Control+F11

    .

    Hello World

    1-9

    .

  • 7/23/2019 Amoozesh Android Full

    71/274

    .

    !

    .

    )( .

    1

    Boot up

    71

    -

    1

  • 7/23/2019 Amoozesh Android Full

    72/274

    72

    )

    )2-10

    )

    2-11(.

    .

    )

    (

    USB

    F5 .

    )(

    .)

    USB

    .(

    )

    (

    .

    !

    Hello World

    .

    :activities, intents, intent

    filters, services, Content Providers.

  • 7/23/2019 Amoozesh Android Full

    73/274

    73

  • 7/23/2019 Amoozesh Android Full

    74/274

    74

  • 7/23/2019 Amoozesh Android Full

    75/274

    . Import

    Existing Projects into12-

    75

    File

    2

    Workspace .

  • 7/23/2019 Amoozesh Android Full

    76/274

    76

    1-11

    . Browse

    .Package Explorer

  • 7/23/2019 Amoozesh Android Full

    77/274

    77

  • 7/23/2019 Amoozesh Android Full

    78/274

    78

    :

  • 7/23/2019 Amoozesh Android Full

    79/274

    :

    :

    .

    .

  • 7/23/2019 Amoozesh Android Full

    80/274

    80

    )(

    .

    .

    .

    :

    Application and Widgets

    Application Framework

    Android Runtime

    Libraries

    Linux Kernel

  • 7/23/2019 Amoozesh Android Full

    81/274

    81

  • 7/23/2019 Amoozesh Android Full

    82/274

    82

    ))Linux Kernel

    )Proven Foundation(

    .

    ).

    1

    .(

    2

    .

    3

    4

    5

    .

    .

    .

    1Super Computer

    2Hardware Abstraction

    3Memory Management

    4Process Management

    5Networking

  • 7/23/2019 Amoozesh Android Full

    83/274

    83

    .

    .

    1

    2

    .

    ...

    3

    .

    .

    4

    .

    C

    C++

    .

    ++CC

    1Reliability

    2Performance

    3Voice communication

    4Native Libraries

  • 7/23/2019 Amoozesh Android Full

    84/274

    84

    .

    .

    )(

    .

    )

    1BSD.(

    System C library

    .

    .MP3,MP4,JPG,PNG

    Media Libraries

    SGL

    .

    Browser Engine

    .

    WebKit Library_SSL2

    (.3D libraries(OpenGL Open GL

    Bitmap3

    Vector) (Free Type

    SQLite 21

    1Barkley Software Distribution

    2Secure Socket Layer

    3Render

  • 7/23/2019 Amoozesh Android Full

    85/274

    85

    3

    .Android Runtime

    4

    5

    .

    6

    .Net Common

    language Runtime Java Virtual Machine

    .

    .

    Dan Bornstein

    .

    1Powerful

    2Light Weight

    3RDB=Relational Data Base

    4Dalvik Virtual Machine

    5Core Java Libraries

    6Portability

  • 7/23/2019 Amoozesh Android Full

    86/274

    86

    1

    2

    .

    CPURAM

    VMDalvikJava VM

    3Sun open

    source

    .

    .

    .

    Java Virtual machine

    .

    Dalvik

    Dalvik virtual machine

    ..

    )

    (

    j2ME MIDP Runner

    1Machine Independent Instruction

    2Byte Code

    3License

  • 7/23/2019 Amoozesh Android Full

    87/274

    87

    .

    )

    1(

    2

    )

    3

    (

    .

    ((Application Framework

    ((open development platform

    .

    )

    (

    5 4

    .

    6

    API

    7

    .)API= Application Program Interface

    1Interpreter

    2Executable code

    3Machine code

    4background services

    5Notifications

    6Developers

    7the core applications

  • 7/23/2019 Amoozesh Android Full

    88/274

    88

    .(

    1

    2

    3

    .

    )

    .(

    4

    . APIJDK

    .

    API

    )(Package

    .

    ArrayList .

    .

    .

    JDK>>API>>Package>>Class

    Example : import java.util.ArrayList

    1The application architecture

    2Facilitate

    3Reuse

    4Replacement

  • 7/23/2019 Amoozesh Android Full

    89/274

    89

    Package )).Class library

    :

    )View System: ( View

    :lists, grids,

    text boxes, buttons, embeddable web browser.

    (Content Providers):

    (.

    .(

    (: (Resource Manager

    1

    (.(layout files

    .

    1localized strings

  • 7/23/2019 Amoozesh Android Full

    90/274

    90

    (: (Notification Manager

    .

    1:((Activity Manager

    .

    )Location Manager(:

    2GPS .

    ))Application and Widgets

    .

    3

    .

    .

    ,Email Phone dialer

    1Life Cycle

    2Accelerometer

    3End Users

  • 7/23/2019 Amoozesh Android Full

    91/274

    91

    SMS ,Calendar, Maps,Web Browser, Contacts ,Andrio Market

    .

    .

    Android Runtime

    .

    .

    )Application()Widget( .

    .

    )

    Gadgets

    (

    )Home Screen(

    .

    .

    ...

    .

    .

  • 7/23/2019 Amoozesh Android Full

    92/274

    92

    .

    1

    )

    .(

    .

    .

    .

    ((virtual machine .

    ((isolation

    .

    2

    .

    )

    1Linux User ID

    2Linux Process

  • 7/23/2019 Amoozesh Android Full

    93/274

    93

    (!

    (shuts down)

    .

    (Principle of least Privilege)

    .

    .

    .

    :

    . .

    )

    .) 1 sign

    1Certificate

  • 7/23/2019 Amoozesh Android Full

    94/274

    94

    1

    ((users contacts SMS (SD card)

    .

    .

    .

    Manifest.xml

    (Application Components)

    2

    (building blocks)

    .

    .

    .

    .

    1Device

    2

    .

  • 7/23/2019 Amoozesh Android Full

    95/274

    95

    .

    ((Lifecycle (

    (

    .

    .

    .1 (: (Activities (

    (

    .

    .

    .

    )

    .(

    .

    1

    .

    1Trade off

  • 7/23/2019 Amoozesh Android Full

    96/274

    96

    Activity

    .

    ) (1(: (Services.2

    .

    2

    .

    3

    .((remote processes

    .

    .

    .

    .Live Wallpaper

    .

    4

    .

    Service

    1Process

    2User interface

    3background

    4Animated Picture

  • 7/23/2019 Amoozesh Android Full

    97/274

    97

    .

    .3 (:(Content Providers 1

    .

    .

    .

    SQLite

    .

    )

    .(

    Content provider

    .

    .

    .

    . 2

    1Framework

    2Reading and Writing data

  • 7/23/2019 Amoozesh Android Full

    98/274

  • 7/23/2019 Amoozesh Android Full

    99/274

    99

    .

    .

    Broadcast Receiver

    . ((Intent object

    .

    .

    .

    .

    .

    .

    )

    (

    .

  • 7/23/2019 Amoozesh Android Full

    100/274

  • 7/23/2019 Amoozesh Android Full

    101/274

    101

    (

    .

    Intent

    .

    1

    .2

    )

    (

    .

    .

    )

    .

    .

    "battery is low"

    (.

    1Explicit

    2Implicit

  • 7/23/2019 Amoozesh Android Full

    102/274

    102

    .

    Content.ResolverContent

    Resolver

    .

    .

    :

    1.

    startActivity()

    .

    .()startActivityForResult

    2.

    ()bindService()startService

    .

  • 7/23/2019 Amoozesh Android Full

    103/274

    103

    3.

    1

    ()sendBroadcast

    sendOrderedBroadcast()sendStickyBroadcast()

    .

    4.

    query()

    Content Resolver

    .((query

    ((The Manifest File

    .

    AndroidManifest.xml

    .

    .

    .

    :

    1.

    1

    .

    1Broadcast Receiver

  • 7/23/2019 Amoozesh Android Full

    104/274

    104

    2.

    API API

    .

    3.

    .

    .

    4.

    Google Maps API

    library .

    .

    .

  • 7/23/2019 Amoozesh Android Full

    105/274

    105

    android: icon

  • 7/23/2019 Amoozesh Android Full

    106/274

    106

    .

    .

    BroadcastReceiver()

    .()RegisterReceiver

    )

    (

    .

    1

    )

    (

    .

    (intent actions) .

    )

    (

    .

    1Explicit

  • 7/23/2019 Amoozesh Android Full

    107/274

    107

    .

    intent

    filters .

    .

    .

    .

  • 7/23/2019 Amoozesh Android Full

    108/274

    108

    ()startActivity(. ).

    .

    .

    .

    .

    API

    2

    1

    ((API Level 7

    .

    API

  • 7/23/2019 Amoozesh Android Full

    109/274

    109

    .

    .

    .

    .

    :

    (:(Screen size and density

    :

    1

    )

    (

    )

    2dpi

    .(

    .

    1Dimension

    2Dots Per Inch

  • 7/23/2019 Amoozesh Android Full

    110/274

    110

    :((normal((small

    (large)(extra large).

    :

    ((low density

    (medium density)

    (high density)

    (extra high density)

    (UI layout)

    (image resources)

    .

    .

    .

    :(Input configurations)

    .

    .21

    1Trackball

    2Five-way navigation pad

  • 7/23/2019 Amoozesh Android Full

    111/274

    111

    .

  • 7/23/2019 Amoozesh Android Full

    112/274

    112

    .

    .

    .

    :))Define Permission

    .

    :

    INTERNET:

    READ_CONTACTS: 1

    WRITE_CONTACTS:

    RECEIVE_SMS:

    2

    ACCESS_COARSE_LOCATION:

    wifi

    1Contacts

    2Incoming SMS(Text Message)

  • 7/23/2019 Amoozesh Android Full

    113/274

    113

    ACCESS_FINE_LOCATION: GPS

    :

    Android security

    model :

    http://d.android.com/guide/topics/security/security.html

    ))Activities

    1

    .

    2

    )

    (

    .

    1Interact

    2user interface

  • 7/23/2019 Amoozesh Android Full

    114/274

    114

    .1

    .

    )

    Main

    Activity(

    .

    .

    2

    3 .

    4 .

    Push

    .

    .((5LIFO

    1float

    2start

    3stop

    4stack

    5last in, first out

  • 7/23/2019 Amoozesh Android Full

    115/274

    115

    Back

    ((Pop .

    1

    .

    )foreground(

    2

    .

    )Home Application(.

    .

    )

    (

    .

    .

    .

    )

    (.

    .

    .

    )(Application-Stack .

    1Data Structure

    2Status line

  • 7/23/2019 Amoozesh Android Full

    116/274

    116

    1

    .

    )Home Program(

    .

    Back

    )

    (

    .

    2

    .

    .

    .

    3

    )

    (.

    )

    .(

    4

    .

    1Back

    2Web Browser

    3On User Demand

    4Activitys lifecycle callback methods

  • 7/23/2019 Amoozesh Android Full

    117/274

  • 7/23/2019 Amoozesh Android Full

    118/274

    118

    .

    .

    .

    .((stack

    Activity

    1

    2

    .

    :

    1Override

    2Behavior

  • 7/23/2019 Amoozesh Android Full

    119/274

    119

    :))onCreate

    .

    .

    )onStart: (

    .

    : (Resumed)

    (foreground ).

    .)

    .(

    :(Paused)

    .

    )

    (

    .

    (:(Stopped

    )

    (background).( stop )

  • 7/23/2019 Amoozesh Android Full

    120/274

    120

    ) Activity

    .

    .

    ) :)onRestart

    .

    )onDestroy: (

    .

    .

    ()onDestroy

    .

    1

    .

    )onSaveInstanceState(:

    .

    2

    .Text Field

    1Terminate

    2Cursor

  • 7/23/2019 Amoozesh Android Full

    121/274

    121

    1

    .

    :))onRestoreInstanceState

    onSaveInstanceState()

    .

    .

    .

    .

    .

    ()finish

    .

    .

    .

    1Override

  • 7/23/2019 Amoozesh Android Full

    122/274

    122

    ( Activity

    .(

    .

    .

    : onCreate() .

    .

    .((initialize

    setContentView()

    .

    User Interface .

    : onPause()

    )

  • 7/23/2019 Amoozesh Android Full

    123/274

    123

    .(

    .

    .

    .

    : .

  • 7/23/2019 Amoozesh Android Full

    124/274

    124

    ((intent filters

  • 7/23/2019 Amoozesh Android Full

    125/274

    125

    .>>action

    >category

  • 7/23/2019 Amoozesh Android Full

    126/274

  • 7/23/2019 Amoozesh Android Full

    127/274

    127

    . SMS

    .

    .

    .

    .

    .

    .

    Intent intent = new Intent (Intent.ACTION_SEND);

    intent.putExtra(Intent.EXTRA_EMAIL , recipientArray);

    startActivity(intent);

    EXTRA_EMAIL

    .

    .

    :to .

    .

  • 7/23/2019 Amoozesh Android Full

    128/274

    128

    .

    startActivity()

    ()startActivityForResult .

    ()onActivityResult .

    startActivityForResult()

    .

    .

    .

    Private void pickContact(){

    //Create an intent to "pick" a contact, as defined by the content providerURI

    Intent intent;

    intent = new Intent(Intent .ATION_PICK,Contacts.CONTENT_URI);

    startActivityForResult(intent,PICK_CONTACT_REQUEST);

    }

    @Override

    Protected void onActivityResult(int requestCode,int resultCode, Intentdata) {

  • 7/23/2019 Amoozesh Android Full

    129/274

    129

    /* if the request went well(ok) and the request was

    PICK_CONTACT_REQUEST */

    If(resultCode == Activity.RESULT_OK && requestCode ==PICK_CONTACT_REQUEST) {

    //Perform a query to the contact ' s content provider for the contact 'sname

    Cursor cursor = getContentResolver().query(data.getData())

    new String[] {Contacts.DISPLAY_NAME},null,null,null);

    if(cursor.moveToFirst()) { //True if the cursor is not empty

    int cloumnIndex =cursor.getColumnIndex(Contacts.DISPLAY_NAME);

    String name = cursor.getString(columnIndex);//Do Something with the selected contact 's name

    }

    ()onActivityResult

    .

    .

    result Code

    RESULT_OK

    .

    .

    requestCode

    ()startActivityForResult .

  • 7/23/2019 Amoozesh Android Full

    130/274

  • 7/23/2019 Amoozesh Android Full

    131/274

  • 7/23/2019 Amoozesh Android Full

    132/274

    132

    protected void onRestart() {

    super.onRestart();

    Toast.makeText(this, "onRestart", 1).show();

    }

    @Override

    protected void onResume() {

    super.onResume();

    Toast.makeText(this, "onResume", 1).show();

    }

    @Override

    protected void onPause() {

    super.onPause();

    Toast.makeText(this, "onPause", 1).show();

    }

    @Override

    protected void onStop() {

    super.onStop();

    Toast.makeText(this, "onStop", 1).show();

    }

    @Override

    protected void onDestroy() {

    super.onDestroy();

    Toast.makeText(this, "onDestroy", 1).show();

  • 7/23/2019 Amoozesh Android Full

    133/274

    133

    }

    :

    (super class)

    .

    Toast.makeText(this, "onDestroy", 1).show();

    )

    1

    ). Interval

    )(

    .

    .

    .

  • 7/23/2019 Amoozesh Android Full

    134/274

    134

  • 7/23/2019 Amoozesh Android Full

    135/274

    135

  • 7/23/2019 Amoozesh Android Full

    136/274

    136

    1:

    :

    1.onCreate() 2.onStart() 3.onResume()

  • 7/23/2019 Amoozesh Android Full

    137/274

    137

    2:

    . FinishBack

    :

    1.onPasue() 2.onStop() 3.onDestroy()

    3:

    )Home key(

    :

    1.onPause() 2.onStop()

    4:

    :

    1.onPause() 2.onStop() 3.onDestroy()

    4.onCreate() 5.onStart() 6.onResume()

    Control+F11 791)

    Num Lock( .

    2

    .

    .

    .

    1Keypad

    2Change Screen Orientation

  • 7/23/2019 Amoozesh Android Full

    138/274

    138

    )Home key(onDestroy() .

    )

    Task Manager

    . (

    Home key

    .

    :

    1.onRestart() 2.onStart() 3.onResume()

    .

    :

    1.

    (:(Entire Lifetime

    ()onCreate ()onDestroy

    .

    )

    (

    onCreate()

    .

    )Resource(

    1 . ()onDestroy

    1Thread

  • 7/23/2019 Amoozesh Android Full

    139/274

    139

    thread

    .()onDestroy()onCreate

    2.

    :(Visible Lifetime)

    onStart()onStop()

    .

    .

    ()onStop

    .

    .

    onStart()

    BroadcastReceiver

    .1 2

    . ()onStop

    ()onStart()onStop .

    .

    3.

    :(Foreground Lifetime)

    .()onResume()onPause

    1register

    2unregister

  • 7/23/2019 Amoozesh Android Full

    140/274

    140

    .

    onPause()

    sleep

    .

    .

    )(

    .

    .

    ()onCreate

    .

    ()onCreate ()onResume

    Stop )())onRestart

    .()onResume ()onResume

    .

    ()onResume

  • 7/23/2019 Amoozesh Android Full

    141/274

    141

    .. ()onPause

    ()onPause .

    onCreate(),onResume(),onPause() .

    )(

    .

    .

    .

    )

    (

    .

  • 7/23/2019 Amoozesh Android Full

    142/274

    142

  • 7/23/2019 Amoozesh Android Full

    143/274

    143

    onCreate()

    .

    View

    .

    )SavingActivityState

    ).

    ()onStart

    .

    onStart()

    onRestart()

    (Stop)

    ()onStart

    .

    ()onStart

    onStart()

    .

    onResume()

    onStop()

  • 7/23/2019 Amoozesh Android Full

    144/274

    144

    onResume()

    .

    ((Stack

    .

    ()onPause

    .

    ()onPause

    onPause()

    .

    CPU

    .

    .

    ()onResume .

    onStop().

    onResume()

    onStop()

    onStop()

    .

    onRestart()

    onDestroy()

  • 7/23/2019 Amoozesh Android Full

    145/274

    145

    (

    (

    .

    ()onRestart

    .()onDestroy

    onDestroy()

    .

    .

    ( ()finish

    (

    .

    ()isFinishing

    .

    .

    .

    onPause()

    onResume()

  • 7/23/2019 Amoozesh Android Full

    146/274

    146

    . ()onPause

  • 7/23/2019 Amoozesh Android Full

    147/274

    147

    ()onPause

    .

    1

    onStop()onDestroy()

    .

    )

    (

    . ()onPause

    .

    :

    .

    (( Processes and Threading

    .

    ((Pause

    . ((Stop

    1Recover

  • 7/23/2019 Amoozesh Android Full

    148/274

    148

    1Activity

    .

    .

    ((Resume

    .

    Activity

    .

    (Resume).

    .

    .

    .

    .

    .

    1object

  • 7/23/2019 Amoozesh Android Full

    149/274

    149

    onSaveInstanceState()

    .

    Bundle

    Bundle.

    putString()

    .

    Bundle ()onCreate

    ()onSaveInstanceState

    .

    Bundle

    . 1 ()onCreate

    1Null

  • 7/23/2019 Amoozesh Android Full

    150/274

  • 7/23/2019 Amoozesh Android Full

    151/274

    151

    ((BACK key

    .(

    onStop()

    onPause()

    .

    onSaveInstanceState()

    ()onSaveInstanceState

    Activity .

    onSaveInstanceState() View(layout)

    .

    1

    .

    .

    EditText

    CheckBox

    .

    ID android:id

    .

    ID

    .

    1Widget

  • 7/23/2019 Amoozesh Android Full

    152/274

    152

    ()onSaveInstanceState

    1

    .

    .

    onSaveInstanceState()

    (super class)

    .

    :

    onSaveInstanceState() 2

    )

    (

    )

    (

    .

    ()onPause (

    .(

    1Override

    2Guarantee

  • 7/23/2019 Amoozesh Android Full

    153/274

    153

    )

    (

    1

    .

    .

    .

    .

    .

    2 3 (

    .(

    ((restarts

    ) ()onDestroy ()onCreate ).

    1Orientation

    2Configuration

    3Runtime

  • 7/23/2019 Amoozesh Android Full

    154/274

    154

    .

    1

    .

    )

    (

    :

    onSaveInstanceState()

    onRestoreInstanceState()

    onCreate()

    .

    (Pause)

    (Stop)

    .

    1Flexibility

  • 7/23/2019 Amoozesh Android Full

    155/274

    155

    .

    1

    .

    AB

    :

    1.A()onPause .

    2.B()onCreate()onStart()onResume

    ) .

    .(

    3.

    A

    ()onStop .

    .

    2

    onPause()

    ()onStop .

    1Overlap

    2Data Base

  • 7/23/2019 Amoozesh Android Full

    156/274

    156

    .

    .

    Intent

    startActivity()

    )

    .(

    )

    (

    .

    startActivityForResult() .

    .

  • 7/23/2019 Amoozesh Android Full

    157/274

  • 7/23/2019 Amoozesh Android Full

    158/274

    158

    android:paddingRight="10dip"/>

    ...

  • 7/23/2019 Amoozesh Android Full

    159/274

    159

    XML

    res/layout

    next.xmlsum.xml

    main.xml .

    . next.xml

    .

    .

    )(

    .

  • 7/23/2019 Amoozesh Android Full

    160/274

    160

    fill par .

    .

    layout_widthlayout_heightnt

    TextViewsum.xml

    EditBox

    .

  • 7/23/2019 Amoozesh Android Full

    161/274

    161

    )(

    Sum.xml

    .

  • 7/23/2019 Amoozesh Android Full

    162/274

    162

    layout

    .

    .

    .

    1. publicclassTestIntentActivity extendsActivity {2. EditText etNumber3;

    3. @Override4. publicvoidonCreate(Bundle savedInstanceState) {5. super.onCreate(savedInstanceState);6. setContentView(R.layout.main);

    7. finalEditText etNumber1 =8. (EditText) findViewById(R.id.etNumber1);

    9. finalEditText etNumber2 =10. (EditText) findViewById(R.id.etNumber2);

    11. etNumber3=12. (EditText) findViewById(R.id.etNumber3);

    13. Button btnNext =

  • 7/23/2019 Amoozesh Android Full

    163/274

  • 7/23/2019 Amoozesh Android Full

    164/274

    164

    (EditText) findViewById(R.id.etNumber2);

    etNumber3= (EditText) findViewById(R.id.etNumber3);

    13

    22btnNext

    layout

    .

    NextActivity .

    20 ()startActivity

    .

    23

    34btnSum . layout

    Intent.putExtra()

    Intent

    .

    39

    40

    .putExtra

    1

    2

    .

    .

    .

    31

    ()startActivityForResult

    .

    1Key

    2Value

  • 7/23/2019 Amoozesh Android Full

    165/274

    165

    .

    .

    35

    42

    onActivityResult()

    .

    .

    38

    ((RESULT_OK

    1

    39

    40

    .

    ()startActivityForResult

    .

    40

    Result

    EditBox

    .

    .

    29

    30

    .

    .((SumAvtivity .

    1. publicclassSumActivity extendsActivity {2. @Override3. publicvoidonCreate(Bundle savedInstanceState) {4. super.onCreate(savedInstanceState);5. setContentView(R.layout.sum);6. Bundle extras = getIntent().getExtras();7. if(extras == null) {8. return;

    9. }

  • 7/23/2019 Amoozesh Android Full

    166/274

    166

    10. String value1 = extras.getString("Number1");11. String value2 = extras.getString("Number2");12. TextView tvNumber1 = (TextView)

    findViewById(R.id.tvNumber1);13. TextView tvNumber2 = (TextView)

    findViewById(R.id.tvNumber2);

    14. TextView tvNumber3 =(TextView)findViewById(R.id.tvNumber3);

    15. tvNumber1.setText("Number 1 is: "+ value1);16. tvNumber2.setText("Number 2 is: "+ value2);17. finalinti = Integer.parseInt(value1);18. finalintj = Integer.parseInt(value2);19. tvNumber3.setText("Number 1 + Number 2 is: "+

    Integer.toString(i+j));20. Button btnResult = (Button)

    findViewById(R.id.btnResult);21. btnResult.setOnClickListener(newOnClickListener() {22. @Override

    23.publicvoidonClick(View v) {24. Intent intent = newIntent();25. intent.putExtra("Result", i+j);26. setResult(RESULT_OK, intent);27. SumActivity.this.finish();28. }29. });30. }31. }

    : SumAvtivity

    5

    layout

    sum.xml .

    6

    12

    .

  • 7/23/2019 Amoozesh Android Full

    167/274

    167

    Number1Number2

    1011

    .

    121314

    TextView

    XML

    .

    15

    19

    TextView

    .

    20

    29

    .

    XML

    .

    Result

    .

    SetResult

    RESULT_OK

    .)

    24

    Intent

    27

    .

    (.

  • 7/23/2019 Amoozesh Android Full

    168/274

  • 7/23/2019 Amoozesh Android Full

    169/274

    169

    :

  • 7/23/2019 Amoozesh Android Full

    170/274

    XML:

    :

  • 7/23/2019 Amoozesh Android Full

    171/274

    171

    ((Application Resources

    .

    1

    .

    XML .

    .

    .

    .

    res

    .

    XML

    .

    .

    1Source Code

  • 7/23/2019 Amoozesh Android Full

    172/274

  • 7/23/2019 Amoozesh Android Full

    173/274

    173

    2 1 .

    .

    ((orientation

    .

    3

    4 .

    .

    ViewLayout

    View ((single object . View

    Layout

    View

    .

    (Label)

    .TextView View

    1qualifiers

    2alternative resources

    3portrait orientation

    4landscape orientation

  • 7/23/2019 Amoozesh Android Full

    174/274

    174

    View

    view.

    .

    View1 View

    .

    2

    .

    Button,EditText,TextView

    ...

    .

    import

    .

    :

    importandroid.widget.EditText;

    importandroid.widget.TextView;

    importandroid.widget.Button;

    3view 4ViewGroup

    .Layoutview

    .

    XML

    1Base Class

    2Widgets

    3Layouts

    4Derived

  • 7/23/2019 Amoozesh Android Full

    175/274

    175

    Layout

    .Layout :

    view

    Linear

    Layout

    .

    View Grid Layout

    )

    View

    . (

    View Relative Layout

    .

    1

    2

    View)

    3(

    4

    .

    1Form

    2Desktop Application

    3Layout

    4Assign

  • 7/23/2019 Amoozesh Android Full

    176/274

  • 7/23/2019 Amoozesh Android Full

    177/274

    177

    XML

    .

    XML

    .

    XML

    HTML1

    .

    .

    ).)XML

    XML

    .

    XML

    (Functionality)

    .

    )

    )XML

    (functionality)

    .

    1Hyper Text Markup Language

  • 7/23/2019 Amoozesh Android Full

    178/274

    178

    .

    Res/Layout

    XML

    .

    view

    XML 1 .

    . ViewGroup view

    ViewGroup ()setContentView

    .

    onCreate()

    .

    (Events)

    Event

    . Event Listener

    1resource

  • 7/23/2019 Amoozesh Android Full

    179/274

    179

    .

    ((Events controllers

    .

    .

    Listener .

    .

  • 7/23/2019 Amoozesh Android Full

    180/274

    :

  • 7/23/2019 Amoozesh Android Full

    181/274

    181

    )MoSync( SDK.))SDK1

    EclipseIDE .

    SDK

    SDK

    .

    SDK

    .. SDK

    Editor,Compiler,Linker,Libraries,Emulator,

    MoSyncSDK2

    .

    .

    .Cross-Platform

    .

    C++,Java Script(jQuery Mobile),HTML5

    1Software Development Kit

    2Open Source

  • 7/23/2019 Amoozesh Android Full

    182/274

    182

    .

    !1

    iPhone

    ...

    .

    MoSync SDK

    .

    MoSync SDK

    Android SDK

    iPhone SDKWindows phone SDK .

    SDK

    .

    SDK

    .

    API

    2

    ...

    .

    )

    OpenGL )NativeUI

    .

    1Mobile Sorcery

    2Location(GPS)

  • 7/23/2019 Amoozesh Android Full

    183/274

    183

    .

    SDK

    HTML5,JavaScript,C/C++ .

    HTML5JavaScript ++C,C

    !

    Eclipse IDE

    1

    .

    GCC 3.4.6

    2

    MoSync

    .

    3

    .MoSync Intermediate Language

    Pipe-tool

    )

    Front-End

    Back-End

    .

    (.

    1Eclipse-Based

    2Backend

    3Intermediate Code

  • 7/23/2019 Amoozesh Android Full

    184/274

    184

    1GCC C . egcs

    .GccGNU C/C++ Compiler.

    .

    SDK

    C

    OpenSource

    .

    Pipe-tool MoSync

    2.

    .

    )pass( 25000

    .

    .Pipe-tool

    IDE

    IDEbuild

    .

    .Pipe

    .

    .

    .org/onlinedocshttp://gcc.gnu

    .2MoSync's code transformation engin

  • 7/23/2019 Amoozesh Android Full

    185/274

    185

    iOS, Android, Windows Phone, Windows Mobile, Symbian,

    JavaME

    1

    MoRE2

    .

    3

    .

    .MoRE 16

    4

    .

    .

    N95

    K700i

    .

    .

    .

    .

    Device Profile Database

    1Emulator

    2MoSync Runtime Environment

    3MoSync bytecode

    4stylus

  • 7/23/2019 Amoozesh Android Full

    186/274

    186

    .

    1

    2

    .

    API

    )...)BlueTooth,GPS

    .

    3).h file(.)

    (

    .

    (runtime

    ) .Runtime

    .

    1Vendor

    2Directory

    3Header file

  • 7/23/2019 Amoozesh Android Full

    187/274

    187

  • 7/23/2019 Amoozesh Android Full

    188/274

    188

    Mo

    SDK .

    http://www.m .

    .

    .

    ync

    .

    sync.com/download

  • 7/23/2019 Amoozesh Android Full

    189/274

    189

    2.7

    .

    .

    :

    SDK

    1

    2

    ME

    3

    4

    .

    iOS ( )iPhone,iPad,iPod

    . SDK SDK

    )Mac(

    SDK

    MoSync SDK for OS X

    .

    :

    1MoSync SDK for Windows

    2Application Packages

    3Smart Phone

    4Pocket PC

  • 7/23/2019 Amoozesh Android Full

    190/274

    190

    XP

    Java SE Runtime Environment (JRE) 6)

    Oracle/Sun (

    300

    .

    .exe

    .

    )(

    )(Unpacking

    .

  • 7/23/2019 Amoozesh Android Full

    191/274

    191

    )Fade. ()License(

    .

    )(

  • 7/23/2019 Amoozesh Android Full

    192/274

    192

    .

    ).

    .(

    .

    )(

    .

    .

  • 7/23/2019 Amoozesh Android Full

    193/274

    193

    .

    .

    .

    )www.mosync.com/forum.(

    RegisterHelp

    .

    )

    .(

  • 7/23/2019 Amoozesh Android Full

    194/274

    194

    ?Already registered

    Click Here.

    .

    ).(

    :

    Online user guides:

    . www.mosync.com

    .

  • 7/23/2019 Amoozesh Android Full

    195/274

    195

    Example applications: )

    (

    Project

    Explorer

    .)

    MoSync/examples

    (

    Online tutorials:

    .

    API reference manual: API

    MoSync SDK .

    Developer center:

    .

    Screencasts:

    SDK

    IDE

    .

    Welcome Screen

    Show this screen at startup .

    HelpWelcome .

  • 7/23/2019 Amoozesh Android Full

    196/274

    196

    )(IDE .

  • 7/23/2019 Amoozesh Android Full

    197/274

    197

  • 7/23/2019 Amoozesh Android Full

    198/274

    198

    : IDE

    Project Explorer View:

    )import(

    .

    .

    . File Manager

    Editor View: .

    1

    2

    .

    3)

    (

    Ctrl+Spacebar

    .

    Device Profiles View:

    )

    (

    .

    1highlighting

    2indenting

    3identifier

  • 7/23/2019 Amoozesh Android Full

    199/274

  • 7/23/2019 Amoozesh Android Full

    200/274

    200

  • 7/23/2019 Amoozesh Android Full

    201/274

    201

    MoRE

    .

    SDK

    )

    SDK(.WindowPreferences

    .

    MoSync Tools Android

    )( SDK .

    Emulator (.

    (

    iOS (

    Ask Every Time

    iPhone

    iPhone

    . (

    .

    MoRE

    .

    )(

  • 7/23/2019 Amoozesh Android Full

    202/274

    202

  • 7/23/2019 Amoozesh Android Full

    203/274

    203

  • 7/23/2019 Amoozesh Android Full

    204/274

    204

    MoSync 3.0

    .

    .

    )www.MoSync.com(

    .

  • 7/23/2019 Amoozesh Android Full

    205/274

  • 7/23/2019 Amoozesh Android Full

    206/274

    206

    :

  • 7/23/2019 Amoozesh Android Full

    207/274

    207

    .

    C++

    HTML5

    .

    HTML5

    HTML5

    C++

    1

    .

    :

    Xml .

    .

    Wormhole C++ library(WebAppMoblet, MessageStream,

    MessageStreamJSON)

    JavaScript libraries (included in the file wormhole.js)

    1Hybrid Project

  • 7/23/2019 Amoozesh Android Full

    208/274

    208

    Wormhole ++C

    main.cppinclude wormhole.js

    index.html

    .

    :

    1. JSON messages(MessageStreamJSON)

    2. string stream messages(MessageStream)

    ))JSON messages

    1mosync.bridge.sendJSON()

    .++C

    :

    mosync.bridge.sendJSON(message, callbackFunction)

    message .String

    .

    .

    1Built in

  • 7/23/2019 Amoozesh Android Full

    209/274

    209

    .1 callbackFunction

    .

    2

    )

    (

    .

    ))string stream messages

    ( JSON messages 20

    .(

    mosync.bridge.send(stringArray, callbackFunction)

    .

    .

    .

    .Hybrid

    File > New > Project >

    1Optional

    2Asynchronous Mechanism

  • 7/23/2019 Amoozesh Android Full

    210/274

    210

    MoSync Project > HTML5 > HTML5/JS/C++ Hybrid Project

    Template

    .

    JSON message

    string stream messages .

    ++C

    1

    ...

    C++ .

    .

    .

    ++C .

    1Vibrate

  • 7/23/2019 Amoozesh Android Full

    211/274

    211

    ++C

    :

    callJS("alert('Hello World')");

    alert("Message_string")

    .

    .

    ;()Toast.makeText(this, "Message_string", 1).show

    ).

    (!

    .

    .

    :

    int x=getUserAge();

    charfunc[512];

    sprintf(func,"alert(%s);",x);

    callJS(func);

  • 7/23/2019 Amoozesh Android Full

    212/274

    212

    .

    !

    charx[]="MiladFashi";

    charfunc[512];

    sprintf(func,"alert(%s);",x);

    callJS(func);

    . char*x

    !

    .

    .

    1

    )

    : (

    sprintf(func,"alert( ' %s ' );",x);

    .sprintf

    1single quotation

  • 7/23/2019 Amoozesh Android Full

    213/274

    213

    )(Concat sprintf

    +

    .

    .

    ()strcat strcat

    .

    ()strcat

    .

    strcat

    .

    .

    Break point Hybrid .

    .

    ()callJS

    .

  • 7/23/2019 Amoozesh Android Full

    214/274

    214

    .

    maGetScrSize())

    API

    maapi.h(

    ()setBoxSize

    flipbox

    ).

    3

    7

    .(

    :

    )(html

    : string stream messages

    window.onload=function()

    {

    mosync.bridge.send(["Custom", "screenSize"]);

    }

    :

    voidhandleMessageStream(WebView* webView, MAHandle data)

  • 7/23/2019 Amoozesh Android Full

    215/274

    215

    {

    // Create a message stream object. This parses the message data.

    // The message object contains one or more strings.

    MessageStream stream(webView, data);

    // Pointer to a string in the message stream.

    constchar* p;

    while(p = stream.getNext()){

    if(0 == strcmp(p, "Custom")){

    constchar* command = stream.getNext();

    if(NULL != command && (0 == strcmp(command, "screenSize"))){

    MAExtent scrSize = maGetScrSize();

    intwidth = EXTENT_X(scrSize);

    intheight = EXTENT_Y(scrSize);

    charbuf[512];

    sprintf(buf,"setBoxSize(%d,%d)",width,height);

    callJS(buf);

    }

    }

    }

    }

    setBoxSize(x,y)

    flipbox

    .

    .

  • 7/23/2019 Amoozesh Android Full

    216/274

    216

    function setBoxSize(x,y)

    {

    $("#flipbox").animate({width:'+='+x},"slow");

    $("#flipbox").animate({height:'+='+y},"slow");

    }

    .jquery

    jQuery jQuery

    jQuery jQuery.com .

    .

    .

    .

    :

    Screen.width

    Screen.height

    Screen.availWidth

    Screen.availHeight

    flipbox

    CSS

    :

  • 7/23/2019 Amoozesh Android Full

    217/274

  • 7/23/2019 Amoozesh Android Full

    218/274

    218

    :

  • 7/23/2019 Amoozesh Android Full

    219/274

    :

    SQLite

  • 7/23/2019 Amoozesh Android Full

    220/274

    SQLite220

    .

    .

    ...

    .

    .

    .

    (Client)

    )

    Client

    (Desktop)

    (

    .

    .

  • 7/23/2019 Amoozesh Android Full

    221/274

    221

    .

    .

    .

    .

    .

    .

    SQL ServerMySql

    ...

    .SQLite

  • 7/23/2019 Amoozesh Android Full

    222/274

    SQLite222

    SQLite

    2000

    .

    1

    ..SQLite

    . APIdll

    Table

    .

    SQLite

    .

    )(Command

    .

    API

    SQLite

    .

    2

    .Firefox

    Firefox

    1Dr.Richar Hipp

    2Add-On

  • 7/23/2019 Amoozesh Android Full

    223/274

    223

    (.

    .(

    :

    https://addons.mozilla.org/zh-cn/firefox/addon/sqlite-manager

    Fire Fox

    .

    )(

    ToolsSQLite Manager.)(

    NewDatabase

    Database

    .

    1

    .

    1RDBMS

  • 7/23/2019 Amoozesh Android Full

    224/274

    SQLite224

  • 7/23/2019 Amoozesh Android Full

    225/274

    225

    DatabaseConnect Database

    .

    1

    .

    Provider

    API

    SQLite

    C++

    ++C .

    SQLiteProvider

    1Php:php

    Provider.

    2Java: SQLiteJDBC

    :

    http://www.zentus.com/sqlitejdbc

    3.NET: Provider phx software

    :

    1Provider

  • 7/23/2019 Amoozesh Android Full

    226/274

    SQLite226

    http://sqlite.phxsoftware.com

    .

    .

    The Definitive Guide to SQLite

    Author: Michael Owens

    Publisher : Apress

    SQLite

    SQLite 1 2

    .

    2000

    .

    3

    4

    5

    6

    7

    .

    1Embedded Database

    2Relational DB

    3Portability

    4Easy to Use

    5Compact

    6Efficient

    7Reliability

  • 7/23/2019 Amoozesh Android Full

    227/274

    227

    API

    C

    1

    Administration)

    (

    .

    2

    3

    .

    4

    .

    .

    .

    )

    .(

    Sybase SQL any

    where,Microsoft 'S Jet Engine,

    .

    )Large-Scale(

    )Embedded( ! IBM 'S DB2

    EveryPlace,Oracle 's log.

    1Network Configuration

    2Overhead

    3Network Call

    4LightWeight

  • 7/23/2019 Amoozesh Android Full

    228/274

    SQLite228

    SQLite

    .

    .

    .

    .

    Provider

    .

    )(. SQLite

    .

    C C SQLite.

    .

  • 7/23/2019 Amoozesh Android Full

    229/274

    229

    SQLite

    1

    .

    :

    Apples Mac OS X

    Safari web browser, Mail.app email program, RSS manager,

    Apples Aperture photography software.

    Solaris operating environment

    Mozilla Projects mozStorage

    C++/JavaScript API layer

    Firefox, Thunderbird, Sunbird.

    SQLite has been added as part of the PHP 5 standard library.

    Linux-based Palm OS

    Symbian OS platform.Andriod OS platform.And most smart

    phone OS and cell phone applications .

    D-Link Media Lounge.

    Music players.

    1Embedded

  • 7/23/2019 Amoozesh Android Full

    230/274

    SQLite230

    Complete New Yorker DVD set-a digital library of everyissue

    of the New Yorker magazine-.

    . SQLite 1

    )(

    .

    Interface .SQLite C API

    Tokenizer

    Lexical Analyser

    ).

    Scanner

    .(

    1Modular Architecture

  • 7/23/2019 Amoozesh Android Full

    231/274

    231

    Syntax Analyser

    .

    Semantic Analyser

    SQL1

    .

    2

    3

    .

    Virtual Machine (virtual database engine (VDBE

    .

    .

    4

    .

    .

    128

    )opcode(

    .

    SQL

    Select,update,delete, .

    :

    :SQL

    1StructuredQueryLanguage

    2Syntax Analyase and Validation

    3Data Structure

    4VDBEs byte code

  • 7/23/2019 Amoozesh Android Full

    232/274

    SQLite232

    SELECT name FROM episodes LIMIT 10;

    )

    (

    0 Integer 10 0

    1 MustBeInt 0 0

    2 Negative 0 0

    3 MemStore 0 1

    4 Goto 0 15

    5 Integer 0 0

    6 OpenRead 0 2

    7 SetNumColumns 0 4

    8 Rewind 0 13

    9 MemIncr 0 13

    10 Column 0 3

    11 Callback 1 0

    12 Next 0 9

    13 Close 0 0

    14 Halt 0 0

    15 Transaction 0 0

    16 VerifyCookie 0 190

    17 Goto 0 5

    18 Noop 0 0

  • 7/23/2019 Amoozesh Android Full

    233/274

    233

    .

    .

    .www.SQLite.org

    SQLite

    :

    Portability) ) : 163264

    .

    Big , Little Endian Byte Order

    . .UTF-8,UTF-16Encoding

    Compactness) : (SQLite

    .

    )256

    (

    !

    Simplicity): (API .

  • 7/23/2019 Amoozesh Android Full

    234/274

    SQLite234

    Flexibility): (

    SQLite

    .

    .

    SQLite

    )Query(

    .

    )).SQL Server

    SQLite

    )Medium-Scale(

    .

    SQLite

    .

    2 SQLite

    .

    2Terabyte

    .

  • 7/23/2019 Amoozesh Android Full

    235/274

    235

    ))RAM

    .

    256

    ( RAM

    dirty page

    Bitmap Allocation

    .(

    100

    25

    RAM

    .

    1

    .SQLite

    .

    Trigger

    .

    ViewSQLite .

    .

    SQLite

    API

    )low-level( SQLite:

    1Nested Transaction

  • 7/23/2019 Amoozesh Android Full

    236/274

    SQLite236

    maDBOpen: .

    maDBClose: .

    maDBExecSQL:SQL .

    cursor handle

    .

    maDBExecSQLParams:SQL

    )

    MoRE

    iOS

    .(

    maDBCursorDestroy: cursor

    maDBExecSQL, maDBExecSQLParams

    .

    maDBCursorNext: .

    )Result Set(.

    .

    maDBCursorGetColumnData: (

    (

    data handle

    .)

  • 7/23/2019 Amoozesh Android Full

    237/274

    237

    )

    (

    )

    (

    .(

    maDBCursorGetColumnText:

    .

    maDBCursorGetColumnInt:

    int

    .

    maDBCursorGetColumnDouble::

    .)(double

    .

    :Database API

    1.

    maDBOpen()

    .

    1

    .

    1Absolute path

  • 7/23/2019 Amoozesh Android Full

    238/274

    SQLite238

    .

    2.

    maDBExecSQL

    insert,update,delete,

    .

    Command select

    . Cursor Handle

    .

    3.

    maDBCursorNext

    .

    .

    .

    4.

    .

    .maDBCursorDestroy

    5.

    maDBClose() .

  • 7/23/2019 Amoozesh Android Full

    239/274

    239

    .

    .maapi

    1

    )

    (

    .

    Open Source

    .

    .

    :

    .Vocabulary.sqlite 2

    SQLite Manager

    ) .

    .(

    Words

    .

    VARCHAR

    .

    )english(

    )persian(

    .

    .

    1low-level functions

    2Add-on

  • 7/23/2019 Amoozesh Android Full

    240/274

    SQLite240

    .

    SQL

    :

    CREATE TABLE "Words" ("english" VARCHAR NOT NULL , "persian"

    VARCHAR NOT NULL )

    .

    )(

    .

    504

    .

    .

    .

    .

  • 7/23/2019 Amoozesh Android Full

    241/274

    !

    #include "maapi_defs.h"

    ()maDBOpen .

    MAHandle maDBOpen(constc

    241

    :

    ar* path)

  • 7/23/2019 Amoozesh Android Full

    242/274

    SQLite242

    Path

    .

    .

    Vocabulary.sqlite

    :

    "/mnt/sdcard/Vocabulary.sqlite"

    ) C

    : (

    constchar*path="/mnt/sdcard/Vocabulary.sqlite";

    :

    voidopenDataBase(){

    constchar*path="/mnt/sdcard/Vocabulary.sqlite";

    MAHandle MAHDB = maDBOpen(path);

    MAHandle cursor;

    cursor = maDBExecSQL(MAHDB,"Select * from Words");

    charfunc[512];

    chareword[50];

    maDBCursorNext(cursor);

    maDBCursorGetColumnText(cursor, 0, &eword,50);

    sprintf(func,"alert('%s')",eword);

    callJS(func);

    maDBClose(MAHDB);

  • 7/23/2019 Amoozesh Android Full

    243/274

    243

    }

    maDBExecSQL()

    :

    MAHandlemaDBExecSQL(MAHandledatabaseHandle,const char * sql )

    : ()maDBCursorNext

    int maDBCursorNext(MAHandle cursorHandle)

    .

    -2 : .

    #defineMA_DB_OK 0

    #define MA_DB_ERROR -2

    maDBCursorGetColumnText()

    :

    int maDBCursorGetColumnText(MAHandle cursorHandle,int colum

    nIndex,void* buffer,int bufferSize)

    cursorHandle

    .

    columnIndex

    )

    (

    .

  • 7/23/2019 Amoozesh Android Full

    244/274

    SQLite244

    Buffer

    .

    bufferSize

    .

  • 7/23/2019 Amoozesh Android Full

    245/274

  • 7/23/2019 Amoozesh Android Full

    246/274

    jQuery Mobile246jQury

  • 7/23/2019 Amoozesh Android Full

    247/274

    247

  • 7/23/2019 Amoozesh Android Full

    248/274

  • 7/23/2019 Amoozesh Android Full

    249/274

    249

    .

    .

    UserFriendly

    .

    .

    ....

    .

    :

    1-HDPI=high dot per inch

    2-MDPI=medium dot per inch

    3-LDPI=low dot per inch

  • 7/23/2019 Amoozesh Android Full

    250/274

    250

    )(

    :

    Device Name Screen Size Screen Resolution DPI

    Motorola Atrix 4 540 x 960 275

    Google Nexus 1 3.7 480 x 800 254

    iPhone 3GS 3.5 320 x 480 163

    iPod Retina Display 3.5 640 x 960 326

    iPad 9.7 1024 x 768 132

    PlayBook 7 1024 x 600 168

    Galaxy Tab 7' 7 1024 x 600 168

    Motorola Xoom 10.1 1280 x 800 150

    Nook Color 7 1024 x 600 168

    .

    iPad 5(iOS5)

    1536*2048

    9

    .

    iPad

  • 7/23/2019 Amoozesh Android Full

    251/274

    251

    Galaxy mini

    3

    320*240

    .

    .

    .

    3

    10

    .

    APK

    3

    10

    .

    .

    CSS3(Media Query)

    )screen.width,screen.height(.

    .

    CSS

    ....CSS

    Media Query Adapting Pages for Mobile withMedia

    Queries

    Adobe Dreamweaver CS5.5 Studio Techniques

    Designing and Developing for Mobile with jQuery, HTML5, and

    CSS3

    DAVID POWERS

    .

    :

  • 7/23/2019 Amoozesh Android Full

    252/274

    252

    http://developer.android.com/guide/practices/screens_support.html

    : Screen Size .

    Screen density:1

    .

    :

    )DPI=dot per inch( )PPI=pixel per

    inch(

    .

    dpi

    ppi.

    dpi

    )

    (ppi.

    .

    Orientation: . ))landscape

    )portrait(

    .

    aspect

    ratio

    aspect ratio

    .

    1Quantity

  • 7/23/2019 Amoozesh Android Full

    253/274

    253

    Resolution: .

    :

    dpi

    .

    Multiple Screen Support

    !

    )density(

    .

    .

    Density-independent pixel (dp)

    .

    Density-independent pixel (dp):

    .

    :

    dp = px / (dpi / 160)

    dp:Density-independent pixel

    px: Pixel

    dpi: dot per inch

  • 7/23/2019 Amoozesh Android Full

    254/274

    254

    dp

    px

    :

    px = dp * (dpi / 160)

    160

    .

    160

    Density-independent pixel

    .

    )s5570(

    .

    320*240

    .

    Sony.dpi120

    Ericsson Xperia X10 854*480 dpi245

    .

    160

    Density-independent pixel

    .

    dp .

    :

    dp(width) = 240 / (120 / 160) = 320

  • 7/23/2019 Amoozesh Android Full

    255/274

    255

    120

    240

    .

    160

    320

    ).

    2

    .

    120

    240

    2

    (.

    dp(Height) = 320 / (120 / 160) = 426.67

    .

    !

    :Xperia X10

    dp (width) = 480 / (240 / 160) = 320

    240

    480

    .

    160

    320

    .

    dp (Height) = 854 / (240 / 160) = 569.3

  • 7/23/2019 Amoozesh Android Full

    256/274

    256

    )maGetScrSize.(

    .

    ++C

    ++C HTML

    )

    . (

    screen.width

    screen.height 160 -Density

    independent pixel

    !

    .

    .

    .

    .

  • 7/23/2019 Amoozesh Android Full

    257/274

    257

    25

    544

    .

    .

    569

    .

    .)

    .(

    :

    maScreenSetFullscreen(1);

    )(

    .

    Emulator AVD

    .

    .

    Run

    Run

    configurations .

    .

    .

    Low density Medium High density Extra high

  • 7/23/2019 Amoozesh Android Full

    258/274

    258

    (120), ldpi density (160),

    mdpi

    (240), hdpi density (320),

    xhdpi

    Small

    screen

    QVGA

    (240x320)

    480x640

    Normal

    screen

    WQVGA400

    (240x400)

    WQVGA432

    (240x432)

    HVGA

    (320x480)

    WVGA800

    (480x800)

    WVGA854

    (480x854)

    600x1024

    640x960

    Large

    screen

    WVGA800**

    (480x800)

    WVGA854**

    (480x854)

    WVGA800*

    (480x800)

    WVGA854*

    (480x854)

    600x1024

    Extra

    Large

    screen

    1024x600 WXGA

    (1280x800)

    1024x768

    1280x768

    1536x1152

    1920x1152

    1920x1200

    2048x1536

    2560x1536

    2560x1600

    * To emulate this configuration, specify a custom density of 160 whencreating an AVD that uses a WVGA800 or WVGA854 skin.

    ** To emulate this configuration, specify a custom density of 120 when

    creating an AVD that uses a WVGA800 or WVGA854 skin.

    This skin is available with the Android 3.0 plaorm

  • 7/23/2019 Amoozesh Android Full

    259/274

    259

    .

    )3

    (

    .

    QVGA

    .QVGABuilt-in skin

    XperiaX10: .))4

    WVGA854 skin

    Built-inWVGA854.

    Samsung Galaxy Tab 2 (10.1): )10.1

    (

    .

    WXGA

    skin

    Built-in

    WXGA

    .

    Android 3.0 (API level 11)

    .

    .

    )(

    .

  • 7/23/2019 Amoozesh Android Full

    260/274

    260

    )

    (

    .

    160

    .

    .html

    .

    document.write(screen.width);

    document.write(",");

  • 7/23/2019 Amoozesh Android Full

    261/274

    261

    document.write(screen.height);

    10

    1280 x 800 px

    )1280>800(

    )landscape(

    .

    .

    800*1280 !

    Orientation

    .

    Orientation .

    MoSync\examples\cpp\ScreenOrientation

    .

    )

    (

    )(

    .

  • 7/23/2019 Amoozesh Android Full

    262/274

    262

  • 7/23/2019 Amoozesh Android Full

    263/274

    263

    CTRL+F11

    ).(.

    ))MoRE F4

    ).

    .(

  • 7/23/2019 Amoozesh Android Full

    264/274

    264

    ScreenOrientation

    MAUtil::Moblet

    Orientation

    .

    maScreenSetOrientation()

    .

    int maScreenSetOrientation ( int orientation)

    .

    .

    :

    #define SCREEN_ORIENTATION_LANDSCAPE 1

    #define SCREEN_ORIENTATION_PORTRAIT 2

    #define SCREEN_ORIENTATION_DYNAMIC 3

    3

    SCREEN_ORIENTATION_DYNAMIC

  • 7/23/2019 Amoozesh Android Full

    265/274

    265

    Orientation

    .

    12

    .

    .

    .

    2

    .

    maScreenSetOrientation(SCREEN_ORIENTATION_DYNAMIC);

    :

    //Get the screen size.

    MAExtent extent = maGetScrSize();

    MAExtent maGetScrSize( void )

    maGetScrSize()

    MAExtent

    .MAExtent

    typedef int MAExtent

    .

    .

    . Orientation

    voidcustomEvent(constMAEvent& event)

  • 7/23/2019 Amoozesh Android Full

    266/274

    266

    Orientation

    .

    .

    )

    :) rotateUI

    if(event.type == EVENT_TYPE_SCREEN_CHANGED)

    {

    rotateUI();

    }

    EVENT_TYPE_SCREEN_CHANGED

    21

    .

    .

    extent MAEXTENT

    .

    Orientation

    .

  • 7/23/2019 Amoozesh Android Full

    267/274

  • 7/23/2019 Amoozesh Android Full

    268/274

  • 7/23/2019 Amoozesh Android Full

    269/274

    269

    .

    :

    rotateUI() .

    window.orientation 4

    :

    90:

    .)

    landscape(

    0: .( /

    portrait

    .(

    -90:

    .

    180:)( .

  • 7/23/2019 Amoozesh Android Full

    270/274

    270

    Orientation in HTML5

    div.background

    {

    background-color:#f9c456;

    margin:0;

    }

    img.openPanel

    {

    opacity:0.4;

    position:absolute;

    filter:alpha(opacity=60); /* For IE8 and earlier */

    }

    //global variables

  • 7/23/2019 Amoozesh Android Full

    271/274

    271

    varX;

    varY;

    varmaxX=1280;//maximum width of screen(Samsung GalaxyTab2 10.1 inch width for base of calculation)

    varmaxY=800;//maximum height of screen(Samsung Galaxy Tab210.1 inch height for base of calculation)

    window.onload=function()

    {

    setSize();

    }

    functionsetSize()

    {

    X=screen.width;//width of native device

    Y=screen.height;//height of native device

    //set size for multiple screensupport(tablet,handset(smart phone),...)

    //setting background :

    $("#bg").css("width",X);

    $("#bg").css("height",Y);

    //setting openPanelButton:

    varopenPanelWidth = parseInt($("#openPanel").css("width"),10);

    varwidthCalc=(X*openPanelWidth)/maxX;

    $("#openPanel").css("width",widthCalc);

    }

  • 7/23/2019 Amoozesh Android Full

    272/274

    272

    functionrotateUI()

    {

    if(window.orientation!=180)/*window.orientation==90 ||

    window.orientation==-90 || window.orientation==0*/{

    //Exchange X and Y dimension

    vartemp=X;

    X=Y;

    Y=temp;

    }

    //Rearrange background

    $("#bg").css("width",0);

    $("#bg").css("height",0);

    $("#bg").animate({width:'+='+X},"fast");

    $("#bg").animate({height:'+='+Y},"fast");

    }

  • 7/23/2019 Amoozesh Android Full

    273/274

    273

  • 7/23/2019 Amoozesh Android Full

    274/274

    274

    .

    .