Top Banner
CS5103 Software Engineering Lecture 07 Android Development II
37

CS5103 Software Engineering

Jan 04, 2016

Download

Documents

rudolpho-calvey

CS5103 Software Engineering. Lecture 07 Software Architecture. Today’s class. Software Architecture What is software architecture Why software architecture Software architecture styles. 2. What is software architecture. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS5103  Software Engineering

CS5103 Software

Engineering

Lecture 07Android Development II

Page 2: CS5103  Software Engineering

2

Last class

Projects Process and Evaluation

Requirements Calendar

SMS Messenger Contact Manager Book Shelf

Android Development I Android system & Emulator

Environment Setup

Page 3: CS5103  Software Engineering

3

Today’s class

Basic Android Development Structure of an android project

Basic UI Components

Activities and Lifecycle

Action bars

Page 4: CS5103  Software Engineering

4

Set environment variables

Set Android_SDK_Home: %Android_SDK_Home%/.android will be the

place all virtual devices stored

You may set your sdk directory as Android_SDK_Home

Add dirs to PATH env variable Your sdk directory/tools

Your sdk directory/platform-tools

Page 5: CS5103  Software Engineering

5

Structure of an Android Project

Source code Generated code Manifest file Resource files

Page 6: CS5103  Software Engineering

6

Source code & generated code

Source code The code you will work on

Activities

Typically mainly implementing system call backs

Generated code The code generated by the system according to your

resource files

R.java Including references to all fields in resource files Do not edit it

Page 7: CS5103  Software Engineering

7

Main components of android apps

Main Components Activities

Services

Broadcast Receivers

They usually can be executed directly with intents

Intents Messages sent and received between

components

System intents

Page 8: CS5103  Software Engineering

8

Activities

Most important component of an android app An activity is basically everything showed at one

time on the screen

Like window or frame in the desktop UI applications

Explore an app by trigger different activities

An activity has its own resource files

Page 9: CS5103  Software Engineering

9

Manifest file

Package name Versions targeted at Activities Intent filters Permissions

Uses-permissions

Declare permissions

Page 10: CS5103  Software Engineering

10

Permissions

System permissions Network

Reading/Writing/Sending/Receiving sms

Making/Receiving calls

Reading/writing contacts

Reading/writing SD cards

http://developer.android.com/reference/android/Manifest.permission.html

User defined permissions

Page 11: CS5103  Software Engineering

11

Resource files

Source code The code you will work on

Activities

Typically mainly implementing system call backs

Generated code The code generated by the system according to your

resource files

R.java Including references to all fields in resource files Do not edit it

Page 12: CS5103  Software Engineering

12

Resource files

Drawable Icons used in the app

Layout An xml file describing the layout of an activity Eclipse-ADT provides a graphics layout, and

maintain the consistency

Menu An xml file describing the menu of an activity

Page 13: CS5103  Software Engineering

13

Resource files

Values Dimensions

Strings

Styles (color, fonts, etc.)

A project usually has multiple value folders for different targeted devices Dimensions for different device size

Strings for different languages

Page 14: CS5103  Software Engineering

14

Today’s class

Basic Android Development Play with Emulator

Structure of an android project

Basic UI Components

Activities and Lifecycle

Action bars

Page 15: CS5103  Software Engineering

15

Basic UI Components

Views Basic UI component

Button, Checkbox, MenuItem, etc.

ViewGroup A invisible container that holds views

Determines how views are placed in the container

LinearLayout, GridLayout, AbsoluteLayout, etc.

Page 16: CS5103  Software Engineering

16

Views and View Groups

Page 17: CS5103  Software Engineering

17

Basic UI Components

Views Basic UI component

Button, Checkbox, MenuItem, etc.

ViewGroup A invisible container that holds views

Determines how views are placed in the container

LinearLayout, RelativeLayout, GridView, ListView

Page 18: CS5103  Software Engineering

18

Add views/viewgroups to a project

All views and view groups can be added by Editing layout resource file of an activity

(recommended) Edit the graphics layout

Set main attributes Height Width Text / hint

Page 19: CS5103  Software Engineering

19

Layouts

Linear layouts Views are placed in a vertical or horizontal

list

The default size of views are “wrap_content”

You may set weight for views to make them occupy more spaces

Page 20: CS5103  Software Engineering

20

Layouts

Relative layouts Views are placed relative to their neighbors

Views are places from top-left corner by default

Avoid too much hierarchies

Page 21: CS5103  Software Engineering

21

Layouts

List Views Bind to ListActivity

A vertical list of scrollable items

Use Adaptor to build and manage items

Page 22: CS5103  Software Engineering

22

Layouts

Grid Views Display items in a two-dimensional scrollable

grid

Use adaptors to build view and manage items

Page 23: CS5103  Software Engineering

23

An example of input and display messages

Page 24: CS5103  Software Engineering

24

Respond to UI components

Add the onclick attribute The content of the attribute is the name

of method to be executed Access data in the current activity

Find view by id

Do not forget to set an id for the views you want to get data from

Page 25: CS5103  Software Engineering

25

Respond to UI components

Requirement to the responding method Public

Return type is void

Has a single parameter: android.view.View

Otherwise the system will not be able to call the responding method

Page 26: CS5103  Software Engineering

26

Start another activity

Create a new activity Add it to multiple places (done

automatically by eclipse) Source code

Manifest file

Resource files for the new activity

Generate an intent to start the activity

Page 27: CS5103  Software Engineering

27

Activity life cycles

Create

Start The activity become fully visible to the user

Pause: The activity is partially visible, e.g., pop-up window

Resume The activity is fully visible again

Stop The activity is hidden

Destroy

Page 28: CS5103  Software Engineering

28

Activity life cycles

Page 29: CS5103  Software Engineering

29

Menus

Menus are by default in the project Each activity has a menu resource file A empty action called settings is listed in

the menu Since phone screens are quite small,

menu provide a place to put extra buttons that cannot be put onto the screen

Page 30: CS5103  Software Engineering

30

Add items to menus

Add item to the resource file Add ids to each item

Implement the method: onOptionsItemSelected(MenuItem item)

Page 31: CS5103  Software Engineering

31

Today’s class

Basic Android Development Play with Emulator

Structure of an android project

Basic UI Components

Activities and Lifecycle

Action bars

Page 32: CS5103  Software Engineering

32

Thanks!

Page 33: CS5103  Software Engineering

33

Start an emulator

In eclipse Go to device manager

Click Start

In command line emulator –avd ‘virtual device name’

Page 34: CS5103  Software Engineering

34

On the emulator

Use your keyboard to input text

Useful Shortcuts Home -> Home

Esc -> back

F2 -> Menu

Ctrl + F12 -> change orientation

Manage Apps Go to menu -> manage apps

Operating everything as on a phone

Page 35: CS5103  Software Engineering

35

Adb interface

A very useful tool for controlling emulator adb devices: show all running emulators

Install and uninstall apps

adb push & pull: transfer data between the host system and the emulator

adb logcat: print the system log of the emulator

adb shell: access the file system of the emulator Manage files in the virtual device adb shell pm: List all installed apps

Page 36: CS5103  Software Engineering

36

Telnet interface telnet localhost <port number>

Simulate a number of events Phone calls

gsm call <number>

SMS sms send <number> <“text”>

Power level power status charging / not-charging, power capacity <percentage>

Set GPS geo fix <longitude> <latitude>

Page 37: CS5103  Software Engineering

37

Today’s class

Basic Android Development Play with Emulator

Structure of an android project

Basic UI Components

Activities and Lifecycle

Action bars