47
Intro to Android Development

Intro to Android Development

  • Upload
    ewa

  • View
    57

  • Download
    0

Embed Size (px)

DESCRIPTION

Intro to Android Development. Getting started. Install Android SDK (includes Eclipse; http://developer.android.com/sdk/index.html) . If using Windows & eclipse & Samsung Galaxy, install Galaxy driver. Install Samsung Kies application. Download from http://www.samsung.com/us/kies/. - PowerPoint PPT Presentation

Citation preview

Page 1: Intro to Android Development

Intro to Android Development

Page 2: Intro to Android Development

Getting started

1. Install Android SDK (includes Eclipse; http://developer.android.com/sdk/index.html) .

2. If using Windows & eclipse & Samsung Galaxy, install Galaxy driver.– Install Samsung Kies application.

• Download from http://www.samsung.com/us/kies/.• Do not check Unified Driver Installer.

– No need to install Galaxy drivers when using Linux + eclipse.

Page 3: Intro to Android Development

Download Albie (AIMv1).

1. First, make sure that your Eclipse Java ADT is installed and running correctly.– File -> New -> Android Application Project.– Call it Test and make sure you can build and run it.

2. Unzip aimv1.zip but do not unzip it directly into the eclipse workspace.– The directory, AIMv1, will be created.

3. File --> Import...– Expand Android folder. – Select 'Existing Android Code Into Workspace.'– Next.

Page 4: Intro to Android Development

Download Albie (continued).

4. Use Browse to find the Root Directory which is AIMv1 (unzipped above).– Check 'Copy projects into workspace.'– Finish.

5. The AIMv1 folder should now appear in the eclipse Package Explorer.

6. You may ignore the error message, "Unable to resolve target 'android-#.'"

Page 5: Intro to Android Development

Download Albie (continued).

7. Start with a fresh build by doing the following:– Select AIMv1 in Package Explorer.– Project -> Clean– Run -> Run As -> Android Application

• Ignore any and all directories/folders with CVS in the name.

Page 6: Intro to Android Development

ac·tiv·i·ty [ak-tiv-i-tee]– noun, plural ac·tiv·i·ties.1.the state or quality of being active: There was not much activity

in the stock market today. He doesn't have enough physical activity in his life.

2.a specific deed, action, function, or sphere of action: social activities.

3.work, especially in elementary grades at school, that involves direct experience by the student rather than textbook study.

4.energetic activity; animation; liveliness.5.a use of energy or force; an active movement or operation.

• from http://dictionary.reference.com/browse/activity

Page 7: Intro to Android Development

Definition: Activity

• Activity– “An application usually consists of multiple activities

that are loosely bound to each other.– Typically, one activity in an application is specified as

the "main" activity, which is presented to the user when launching the application for the first time.

– Each activity can then start another activity in order to perform different actions.”

• developer.android.com/guide/components/activities.html

Page 8: Intro to Android Development
Page 9: Intro to Android Development

Definition: Activity

• Activity– “An Activity is an application component that provides

a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map.

– Each activity is given a window in which to draw its user interface.

– The window typically fills the screen, but may be smaller than the screen and float on top of other windows.”• Ibid. (That’s fancy! I’m working on using op. cit.)

Page 10: Intro to Android Development

Associated with the main activity is an XML file that describes its UI layout.

Page 11: Intro to Android Development

Definition: Activity

• Activity– “Each time a new activity starts, the previous activity is

stopped, but the system preserves the activity in a stack (the "back stack").

– When a new activity starts, it is pushed onto the back stack and takes user focus.

– The back stack abides to the basic "last in, first out" stack mechanism, so, when the user is done with the current activity and presses the Back button, it is popped from the stack (and destroyed) and the previous activity resumes.”

• Ibid.

Page 12: Intro to Android Development

These Java files are automatically generated. Do not edit them!

Page 13: Intro to Android Development
Page 14: Intro to Android Development

Layouts

1. AbsoluteLayout2. DrawerLayout3. FrameLayout4. GridLayout5. GridView6. LinearLayout7. ListView8. RelativeLayout9. SlidingPaneLayout10. WebView

Page 15: Intro to Android Development

XML

Page 16: Intro to Android Development

xml – extensible markup languageExample:

<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd">

<orderperson>John Smith</orderperson><shipto name="Ola Nordmann"

address="Langgt 23"city="4000 Stavanger"country="Norway“ />

<item><title>Empire Burlesque</title><note>Special Edition</note><quantity>1</quantity><price>10.90</price>

</item><item>

<title>Hide your heart</title><quantity>1</quantity><price>9.90</price>

</item></shiporder>

prolog

Page 17: Intro to Android Development

xml – extensible markup languageExample:

<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd">

<orderperson>John Smith</orderperson><shipto name="Ola Nordmann"

address="Langgt 23"city="4000 Stavanger"country="Norway“ />

<item><title>Empire Burlesque</title><note>Special Edition</note><quantity>1</quantity><price>10.90</price>

</item><item>

<title>Hide your heart</title><quantity>1</quantity><price>9.90</price>

</item></shiporder>

start tag

end tag

Page 18: Intro to Android Development

xml – extensible markup languageExample:

<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd">

<orderperson>John Smith</orderperson><shipto name="Ola Nordmann"

address="Langgt 23"city="4000 Stavanger"country="Norway“ />

<item><title>Empire Burlesque</title><note>Special Edition</note><quantity>1</quantity><price>10.90</price>

</item><item>

<title>Hide your heart</title><quantity>1</quantity><price>9.90</price>

</item></shiporder>

tags w/ contents:

item tag has contents.

title, note, quantity, and price tags also have contents.

Page 19: Intro to Android Development

xml – extensible markup languageExample:

<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd">

<orderperson>John Smith</orderperson><shipto name="Ola Nordmann"

address="Langgt 23"city="4000 Stavanger"country="Norway“ />

<item><title>Empire Burlesque</title><note>Special Edition</note><quantity>1</quantity><price>10.90</price>

</item><item>

<title>Hide your heart</title><quantity>1</quantity><price>9.90</price>

</item></shiporder>

empty tag (no end tag).

Page 20: Intro to Android Development

xml – extensible markup languageExample:

<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd">

<orderperson>John Smith</orderperson><shipto name="Ola Nordmann"

address="Langgt 23"city="4000 Stavanger"country="Norway“ />

<item><title>Empire Burlesque</title><note>Special Edition</note><quantity>1</quantity><price>10.90</price>

</item><item>

<title>Hide your heart</title><quantity>1</quantity><price>9.90</price>

</item></shiporder>

attribute name

attribute value

Page 21: Intro to Android Development

xml – extensible markup languageExample:

<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd">

<orderperson>John Smith</orderperson><shipto name="Ola Nordmann"

address="Langgt 23"city="4000 Stavanger"country="Norway“ />

<item><title>Empire Burlesque</title><note>Special Edition</note><quantity>1</quantity><price>10.90</price>

</item><item>

<title>Hide your heart</title><quantity>1</quantity><price>9.90</price>

</item></shiporder>

Note: The shiporder tag has both attributes and contents.

Page 22: Intro to Android Development
Page 23: Intro to Android Development

The manifest lists and contains information about all of the activities in the application.

Page 24: Intro to Android Development
Page 25: Intro to Android Development
Page 26: Intro to Android Development

XML AND LAYOUTS

Page 27: Intro to Android Development
Page 28: Intro to Android Development

SETTING UP THE ANDROID DEVELOPMENT ENVIRONMENT

Page 29: Intro to Android Development

Setup on PC

1. Install eclipse + android (see http://developer.android.com/sdk/index.html).– Instructions are there if eclipse is already installed.

2. Enable virtualization in BIOS.– On a Lenovo T510, press F1 when you see the

“ThinkVantage” message.

Page 30: Intro to Android Development

Setup on PC

Two ways to run Android apps:

1. Create a virtual device.• Note: It takes some time for the emulator to start. So don’t

close it once it starts! (Use the ‘back’ button to stop you application.)

2. Use a real android device. BEST!

Page 31: Intro to Android Development

Setup on PC for Galaxy

• Install the Android USB driver for Samsung.– First, install Samsung Kies software.

• This will take some time (~1 hour).• Then it will update itself again.

– Then plug in the Galaxy; your laptop will install a number of drivers.

– If all is well, when you run adb devices on your laptop, you will see your device listed.

Page 32: Intro to Android Development

Steps to run your Android application

1. Right-click on the name of your project in the Project Explorer pane.

2. Choose your Android device (or virtual device). (See next slide.)

Page 33: Intro to Android Development

Setup

Page 34: Intro to Android Development

Setup on Android device

• Setting --> Security --> Unknown source– Make sure it’s checked.

• Settings --> Developer options --> USB debugging– Make sure it’s checked.

Page 35: Intro to Android Development

Comments about layouts

• Layouts may be nested/hierarchical.

• See http://www.learn-android.com/2010/01/05/android-layout-tutorial/ for a layout tutorial.

Page 36: Intro to Android Development

HOW TO LOG MESSAGES FOR DEBUGGING

Page 37: Intro to Android Development

Writing to the log

import android.util.Log;…Log.v( "andy1", "MainActivity.sendMessage: hello" );

d – debuge – errori – informationv – verbosew – warning

Page 38: Intro to Android Development

Accessing the log file via eclipse

Page 39: Intro to Android Development

ANDROID WIDGETS

Page 40: Intro to Android Development

Android widget classes• More than 100!

– See http://developer.android.com/reference/android/widget/package-summary.html.

• Button• EditText• ImageButton• ImageView• NumberPicker• PopupMenu• RadioButton, RadioGroup• Toast• ToggleButton

Page 41: Intro to Android Development

LAYOUT EDITOR

Page 42: Intro to Android Development

Palette contents disappear when Show Previews is selected (default)

Page 43: Intro to Android Development
Page 44: Intro to Android Development
Page 45: Intro to Android Development

Summary

• Activity– http://developer.android.com/reference/android/

app/Activity.html

• Intent– http://developer.android.com/reference/android/

content/Intent.html

Page 46: Intro to Android Development

References• developer.android.com/guide/topics/ui/declaring-layout.html• developer.android.com/guide/topics/ui/layout/linear.html;

developer.android.com/reference/android/widget/LinearLayout.html• developer.android.com/guide/topics/ui/layout/relative.html;

developer.android.com/reference/android/widget/RelativeLayout.html• developer.android.com/guide/webapps/webview.html;

developer.android.com/reference/android/webkit/WebView.html• developer.android.com/guide/topics/ui/layout/listview.html;

http://developer.android.com/reference/android/widget/ListView.html• developer.android.com/guide/topics/ui/layout/gridview.html;

http://developer.android.com/reference/android/widget/GridView.html• http://developer.android.com/tools/debugging/debugging-log.html• http://developer.android.com/reference/android/widget/package-

summary.html• http://www.learn-android.com/2010/01/05/android-layout-tutorial/

Page 47: Intro to Android Development

How to disable the native Android browser (not Firefox, etc.) from “going mobile.”1. Open browser2. Type "about:debug" in the address bar.

Press "go.“ Nothing will happen, this will only enable more options in the menu.

3. Go to menu. (Notice ‘Dump V8 counters’ at bottom.)

4. Choose Settings -> Debug -> UAString.5. Select "desktop."