Top Banner
Laboratory Booklet Programming II 1 International Institute of Technology Computer Sciences Global objective To be able to deliver a complete solution for a project such as a complete application of a message chat which includes basic and media programming Laboratory Booklet Project oriented teaching Programming
50

International Institute of technology (android)

Jun 22, 2015

Download

Education

Nazih Heni

WorkShop Android
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: International Institute of technology (android)

Laboratory Booklet Programming II

1 International Institute of Technology Computer Sciences

Global objective

To be able to deliver a complete solution for a project such as a complete application of a message chat which includes basic and media programming

Laboratory Booklet

Project oriented teaching

Programming

Page 2: International Institute of technology (android)

Laboratory Booklet Programming II

2 Textbook: L. Loftus, Java, Software solutions, Prentice Hall, sixth Edition, 2009, ISBN-13: 978-0-321-54934 Intellectual property of the Lab: The lab is prepared by Dr H. Hamam in FEBRARY 2014 and. It includes the class, the solutions and the lab booklet. Thus, the lab is exclusively CUD’s property.

Page 3: International Institute of technology (android)

Laboratory Booklet Programming II

3 Table Of Contents Textbook, lab manual and intellectual property ………………………………………………….…………..… 2 Lab Rules and Regulations …………………………………….………………………………………………..………..… 4 Tasks and Lab Grading Policy ……………………………………………..……………………….…....……………..… 4 Global objective ……………………..…………………………………………..……………………….…....……………..… 4 Installation ……………………………..…………………………………………..……………………….…....……………..… 4 Experiment 1: installation and configuration environment Android development, 5

Manual: See instructions below and the given start program. Objective: You will learn how to install and set up your development environment,

deploy and debug your first application from the emulator. Method: The computer (PC) is available to the student to install eclipse, androidSDK

and install xampp web Server.

Experiment 2: First android project …………………….……………………………..………………………… 9 Manual: See instructions below and the given start program including the comments Objective: To understand how to create an android project.

Method: The students should create; use android project and the android SDK, run on device and on the emulator.

Experiment 3: Building a simple Application ………………………………………………………. 12 Manual: See instructions below and the given start program including the comments Objective: To understand how to declare, implement an Activity, layout. Method: The students should declare, implement, modify and android Activity

Experiment 4: Starting another Activity …………………….……….………………………………. 16 Manual: See instructions below and the given start program including the comments Objective: To understand how to start anther Activity from a Main Activity. Method: The students should implement Activity, intents, and send Message to

activity bye intents.

Experiment 5: Create the Data Base …………………….……….…………………………………….……..… 19 Manual: See instructions below. Objective: You will learn how create a new data base with MySQL and to create Tables

and to add a new user. Method: use MySQL in Xampp and the SQL language to create tables for users and message and for friends.

Experiment 6: Create Models of the application……………………………………………………………… 23 Manual: See instructions below. Objective: You will learn how create a models and declare the data of the friends and the message and the Status of the message like Online. Method: Student should know how to declare a static variable and now how to declare ENUM type.

Experiment 7: Connect with the Data Base and make the Login Page ………………………………27 Manual: See instructions below. Objective: You will learn how to connect with the data base and create an activity to take the username and the password and check to pass to the friend List if the both information are true.

Method: Student should know how to connect with the xampp server and get information of the user and should know how to use socket to receive and send information

Experiment 8: Controller…… …………………….……………………………….……………………………… 36 Manual: See instructions below.

Objective: You will learn how create a controllers class and how to manage the localStorge of the phone and store information of messages and friends; also Know how to Parse information to Xml by creating an XmlHandler.

Page 4: International Institute of technology (android)

Laboratory Booklet Programming II

4 Method: Student use DefaultHandler and use methods implements by this class and use SQLiteOpenHelper to make the localStorageHandler Class.

Experiment 9: Create the Fiend List and the Messaging Activity …………………………………………… 39 Manual: See instructions below. Objective: You will learn how create a ListView Activity that contains a list of friend and

use socket to send message and receive throw a local Server. Method: Student use ListActivity and use methods to implements the sockets and the messaging activity to send a message and display the History of the messages between friends.LABORATORY POLICY AND GUIDELINES

Lab Rules and Regulations

The students should work individually.

Students are strictly prohibited from taking out any items from the laboratory without permission from the Lab Supervisor.

The lab timetable must be strictly followed. Prior permission from the Lab Supervisor must be obtained if any change is to be made.

Be punctual for your laboratory session.

Experiments must be completed within the given time.

All students are liable for any damage to equipment due to their own negligence.

Static sensitive devices should be handled carefully.

Students are NOT allowed to work alone in the laboratory.

Please consult the Lab Supervisor if you are not sure how to operate the laboratory equipment.

Report immediately to the Lab Supervisor any damages to equipment, hazards, and potential hazards.

Please refer to the Lab Supervisor should there be any concerns regarding the laboratory.

Tasks and Lab Grading Policy

Each student should make a demonstration after each experiment. This

demonstration is part of the evaluation.

Each student should provide a lab report

Each student should demonstrate what he/she learned from each lab session, and

presents with his/her colleagues in the group what they do wrong (or what went

wrong). The group members should identify whether the results are as expected or

whether they find something unusual.

The student should suggest what could be improved at the level of the design as well

as the test procedures.

The students should answer the lab instructor’s questions separately.

Global objective

To be able to deliver a complete solution for a project such as a complete application of a

message chat which includes basic and media programming?

Page 5: International Institute of technology (android)

Laboratory Booklet Programming II

5

Experiment # 1

Install and set up your development environment

Manual: See instructions below.

Objective: You will learn how to install and set up your development environment, deploy and debug your first application from the emulator.

Method: The computer (PC) is available to the student to install a virtual machine Windows XP and install the various

components of its platform.

Page 6: International Institute of technology (android)

Laboratory Booklet Programming II

6

Prerequisites:

ECLIPSE 32 BIT: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downlod

s/release/kepler/SR1/eclipse-java- kepler -SR1-win32.zip

ECLIPSE 64 BIT: http://archive.eclipse.org/technology/epp/downloads/release/kepler/SR1/eclipse-

java-kepler-SR1-win32-x86_64.zip

ANDROID SDK (R23): http://developer.android.com/sdk/index.html

Xampp :

http://www.apachefriends.org/fr/download_success.html

Page 7: International Institute of technology (android)

Laboratory Booklet Programming II

7 INSTALLATION:

These are the steps to get started with Android development on Windows. Should work on

any Windows version, but I’m using Windows 7 64-bit.

1. Download and install Java SDK.

2. Download and unzip Android SDK.

3. Run “SDK Manager” from Android SDK to download the platform versions.

4. Download and unzip Eclipse.

5. Install the Android plugin for Eclipse and point to the Android SDK

Download and install Java SDK

You’ll find the Java SDK here:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

1. Click the “Download JDK” button and choose the Windows version you have from the

Platform combo box.

2. Run it and accept all defaults to complete the installation.

Download and unzip Android SDK

The Android SDK doesn’t have an install executable, but rather a zip file and a utility called

“SDK Manager.exe”. Begin by downloading the sdk from here:

http://developer.android.com/sdk/index.html

1. Unzip the file to any location you want.

2. Put it in “C:\Android\SDK”.

3. Inside that folder, you’ll find the executable “SDK Manager.exe”.Run it.

4. Selecting Cancel at this initial update dialog, and then download what you need from

“Available packages” instead.

Page 8: International Institute of technology (android)

Laboratory Booklet Programming II

8 Run “SDK Manager” from Android SDK to

download the platform versions

1. So, running “SDK Manager”.

2. Cancelling on the first update dialog box,

3. Move on to “Available packages”.

4. Checking the following items and then click “Install selected”: (revision numbers can of

course have changed since I wrote this)

SDK Platform Android 4.2.2, API 19, revision 2

SDK Platform Android 4.1.1, API 18, revision 2

Samples for SDK API 19, revision 1

Google APIs by Google Inc., Android API 19, revision 2

Google APIs by Google Inc., Android API 18, revision 1

Usb Driver package, revision 3

Market Licensing package, revision 1

5.You’ll need to “Accept all” licenses download should start.

Page 9: International Institute of technology (android)

Laboratory Booklet Programming II

9

Download and unzip Eclipse

1. Download Eclipse from here:

http://www.eclipse.org/downloads/

2. Click the link to the right depending on what Windows version you’re on. I ended up

downloading “eclipse-java-kepler-SR1-win32-x86_64.zip”.

3. Just unzip the files into any folder you like and start the environment with “eclipse.exe”.

Page 10: International Institute of technology (android)

Laboratory Booklet Programming II

10 Install the Android plugin for Eclipse and point to

the Android SDK

Inside Eclipse, you need to do a few things before you can create your first Android project.

When you start Eclipse,

1 chooses your “Workspace”. Just accept the default..

Now, do the following:

1. Select Help menu

2. Install new software

3. Add

4. Type any Name, like “Android”

5. Paste this address in Location: https://dl-ssl.google.com/android/eclipse/

Page 11: International Institute of technology (android)

Laboratory Booklet Programming II

11 6. OK

7. After a few seconds, the list should contain “Developer Tools” and there you’ll find

“Android DDMS” and “Android Development Tools”.

8. Select both and then Next

9. Continue with the download and install. You’ll be asked to restart Eclipse at the end.

Do that.

Back in Eclipse with the Android plugin now installed, you also need to:

1. Select Window menu

2. Preferences

3. Android

4. Click Browse button next to “SDK Location”

5. Point to the folder where you unzipped the Android SDK previously. For me, that

would be “C:\Android\SDK” (where the “SDK Manager.exe” is located)

6. OK

7. Apply

8. After a few seconds the list should fill with the Android platforms you chose to

download with “SDK Manager” previously

9. OK

That’s it!

Page 12: International Institute of technology (android)

Laboratory Booklet Programming II

12

Download Xampp:

XAMPP for Windows provides an easy to install Apache-MySQL-PHP-PERL-PEAR

framework. XAMPP saves time and effort and provides the software support for web

frameworks like Drupal, Joomla, Moodle, or wikiMedia on any Windows PC.

Page 13: International Institute of technology (android)

Laboratory Booklet Programming II

13

Procedure:

1. In your web browser, go to http://www.apachefriends.org/en/xampp-

windows.html

2. Click on the download link for XAMPP.

Page 14: International Institute of technology (android)

Laboratory Booklet Programming II

14

3. When prompted for the download, click "Save" and wait for your download

to finish.

4. Once your download is complete, install the program, click on "Run"

Page 15: International Institute of technology (android)

Laboratory Booklet Programming II

15

5. Start the XAMPP Control panels.

6. Start the Apache and MySQL components. You can also start the other

components, if you plan to use them.

Page 16: International Institute of technology (android)

Laboratory Booklet Programming II

16

7. Enter http://localhost/phpmyadmin into your browser’s URL field. This will bring

you to the phpmyadmin main page.

8. Click on the User tab and Click on Add a new user:

Page 17: International Institute of technology (android)

Laboratory Booklet Programming II

17

9. Fill in the user information:

User Name: Leave the dropdown selection as Use text field and enter a user name in the edit

box on the right side. A user name may be a maximum of 16 characters in length. The MySql

documentation recommends using only ASCII characters in the name. It would probably be

safest to restrict yourself to lowercase letters, uppercase letters, and / or digits.

Host: since this is for XAMPP, select Local from the dropdown box.

Password: if you want the user to have a password, then leave the selection in the dropdown

box as Use text field and enter a password (up to 16 characters, composed of letters and / or

digits) into the edit box on the right. If you don’t want the user to have a password (for the

password to be blank) then select No Password from the dropdown box. Alternatively, you

can allow the system to generate a password for you (remember it or write it down, since you

will need to pass that password on to applications that need it).

Page 18: International Institute of technology (android)

Laboratory Booklet Programming II

18 Experiment # 2

MY FIRST ANDROID PROJECT

Manual: See instructions below.

Objective: You will learn how to create an android project and run it on the device or the emulator, deploy and debug your first application from the emulator.

Method: create a new android Project with the eclipse and run it using the android SDK.

Page 19: International Institute of technology (android)

Laboratory Booklet Programming II

19

Procedure:

A. Create a Project with Eclipse

1. Click New in the toolbar.

2. In the window that appears, open the Android folder, select Android Application

Project, and click next.

Figure 1. The New Android App Project wizard in Eclipse.

3. Fill in the form that appears:

o Application Name is the app name that appears to users. For this project,

use "My First App."

o Project Name is the name of your project directory and the name visible in

Eclipse.

o Package Name is the package namespace for your app (following the same

rules as packages in the Java programming language). Your package name

must be unique across all packages installed on the Android system. For

this reason, it's generally best if you use a name that begins with the reverse

domain name of your organization or publisher entity. For this project, you

can use something like "com.example.firstapp." However, you cannot

publish your app on Google Play using the "com.example" namespace.

o Minimum Required SDK is the lowest version of Android that your app

supports, indicated using the API level. To support as many devices as

Page 20: International Institute of technology (android)

Laboratory Booklet Programming II

20 possible, you should set this to the lowest version available that allows

your app to provide its core feature set. If any feature of your app is

possible only on newer versions of Android and its not critical to the app's

core feature set, you can enable the feature only when running on the

versions that support it. Leave this set to the default value for this project.

o Target SDK indicates the highest version of Android (also using the API

level) with which you have tested with your application.

As new versions of Android become available, you should test your app on the

new version and update this value to match the latest API level in order to take

advantage of new platform features.

o Compile With is the platform version against which you will compile your

app. By default, this is set to the latest version of Android available in your

SDK. (It should be Android 4.1 or greater; if you don't have such a version

available, you must install one using the SDK Manager). You can still

build your app to support older versions, but setting the build target to the

latest version allows you to enable new features and optimize your app for

a great user experience on the latest devices.

o Theme specifies the Android UI style to apply for your app. You can leave

this alone.

Click Next.

4. On the next screen to configure the project, leave the default selections and click

next.

5. The next screen can help you create a launcher icon for your app.

You can customize an icon in several ways and the tool generates an icon for all

screen densities. Before you publish your app, you should be sure your icon meets the

specifications defined in the Iconography design guide.

Click Next.

6. Now you can select an activity template from which to begin building your app.

For this project, select BlankActivity and click next.

7. Leave all the details for the activity in their default state and click Finish.

Page 21: International Institute of technology (android)

Laboratory Booklet Programming II

21

B. Running Your App

How you run your app depends on two things: whether you have a real Android-powered

device and whether you're using Eclipse. This lesson shows you how to install and run your

app on a real device and on the Android emulator, and in both cases with either Eclipse or the

command line tools.

Before you run your app, you should be aware of a few directories and files in the Android

project:

Figure 1.12: Project hierarchy AndroidManifest.xml

The manifest file describes the fundamental characteristics of the app and defines each

of its components..

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

... >

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"

/>

Page 22: International Institute of technology (android)

Laboratory Booklet Programming II

22 ...

</manifest>

.

src/ Directory that includes an Activity class that runs when your app is launched using the

app icon. res/

Contains several sub-directories for app resources. Here are just a few:

drawable-hdpi/

Directory for drawable objects (such as bitmaps) that are designed for high-density

(hdpi) screens. Other drawable directories contain assets designed for other screen

densities.

layout/

Directory for files that define your app's user interface.

values/

Directory for other various XML files that contain a collection of resources, such as

string and color definitions.

When you build and run the default Android app, the default Activity class starts and loads a

layout file that says "Hello World." The result is nothing exciting, but it's important that you

understand how to run your app before you start developing.

Run on a Real Device

If you have a real Android-powered device, here's how you can install and run your app:

1. Plug in your device to your development machine with a USB cable. If you're

developing on Windows, you might need to install the appropriate USB driver for

your device. For help installing drivers, see the OEM USB Drivers document.

2. Enable USB debugging on your device.

o On most devices running Android 3.2 or older, you can find the option under

Settings > Applications > Development.

o On Android 4.0 and newer, it's in Settings > Developer options.

Note: On Android 4.2 and newer, Developer options is hidden by default. To

make it available, go to Settings > About phone and tap Build number seven

times. Return to the previous screen to find Developer options.

Page 23: International Institute of technology (android)

Laboratory Booklet Programming II

23

To run the app from Eclipse:

1. Open one of your project's files and click Run from the toolbar.

2. In the Run as window that appears, select Android Application and click OK.

Eclipse installs the app on your connected device and starts it.

Or to run your app from a command line:

1. Change directories to the root of your Android project and execute:

ant debug

2. Make sure the Android SDK platform-tools/ directory is included in your PATH

environment variable, then execute:

adb install bin/MyFirstApp-debug.apk

3. On your device, locate MyFirstActivity and open it.

Run on the Emulator

Whether you're using Eclipse or the command line, to run your app on the emulator you need

to first create an Android Virtual Device (AVD). An AVD is a device configuration for the

Android emulator that allows you to model different devices.

Figure 2. The AVD Manager showing a few virtual devices.

Page 24: International Institute of technology (android)

Laboratory Booklet Programming II

24

To create an AVD:

1. Launch the Android Virtual Device Manager:

a. In Eclipse, click Android Virtual Device Manager from the toolbar.

b. From the command line, change directories to <sdk>/tools/ and execute:

android avd

2. In the Android Virtual Device Manager panel, click New.

3. Fill in the details for the AVD. Give it a name, a platform target, an SD card size, and

a skin (HVGA is default).

4. Click Create AVD.

5. Select the new AVD from the Android Virtual Device Manager and click Start.

6. After the emulator boots up, unlock the emulator screen.

To run the app from Eclipse:

1. Open one of your project's files and click Run from the toolbar.

2. In the Run as window that appears, select Android Application and click OK.

Eclipse installs the app on your AVD and starts it.

Or to run your app from the command line:

1. Change directories to the root of your Android project and execute:

ant debug

2. Make sure the Android SDK platform-tools/ directory is included in your PATH

environment variable, then execute:

adb install bin/MyFirstApp-debug.apk

3. On the emulator, locate MyFirstActivity and open it.

Page 25: International Institute of technology (android)

Laboratory Booklet Programming II

25

Lab report 1

Student Name: ____________________ Instructor: ______________________ Student ID: ________________________ Date: _______________ Mark: _________

Make a demo in front of your instructor Questions 1 1. How is called the Eclipse plugin for Android application development? ________________________________________________

2. What is the AVD? : _______________________________________

3. What is an Android activity? _______________________________________________________________________________________

4. Creating an Android project (with android create project command or via a

programming environment suited to Android) introduced several elements in the

project root directory. Give the role of next folders?:

src: ________________________________________________________________ _____________________________________________________________________ res: _______________________________________________________________________________________________________________________________________________________ AndroidManifest.xml : ________________________________________________________________ _____________________________________________________________________

5. What is the element to add in "AndroidManifest.xml" to be sure that your application will

only run for a particular version (or higher) of Android environment: _________________________________________________________________________ 6. What is the command line to run the application on you device: _________________________________________________________________________

7. What is the definition of the workspace?

Page 26: International Institute of technology (android)

Laboratory Booklet Programming II

26 _________________________________________________________________________

Experiment # 3

Building a Simple Application

Manual: See instructions below.

Objective: You will learn how to build a simple application contains a layout and 2 activity’s, and learn how to Building a Simple User Interface.

Method: create an activity and a layout and add a linear

layout and learn.

Page 27: International Institute of technology (android)

Laboratory Booklet Programming II

27 Building a Simple User Interface

The graphical user interface for an Android app is built using a hierarchy of View and

ViewGroup objects. View objects are usually UI widgets such as buttons or text fields and

ViewGroup objects are invisible view containers that define how the child views are laid out,

such as in a grid or a vertical list.

Alternative Layouts

Declaring your UI layout in XML rather than runtime code is useful for several reasons, but

it's especially important so you can create different layouts for different screen sizes. For

example, you can create two versions of a layout and tell the system to use one on "small"

screens and the other on "large" screens.

Figure 1. Illustration of how ViewGroup objects form branches in the layout and contain other

View objects.

In this lesson, you'll create a layout in XML that includes a text field and a button. In the

following lesson, you'll respond when the button is pressed by sending the content of the text

field to another activity.

Page 28: International Institute of technology (android)

Laboratory Booklet Programming II

28 Procedure :

After each “To do”, run the android application You will find the indications “To do” inside the file.

1. // To do 1: Create a Linear Layout

2. // To do 2: Open the activity_main.xml file from the res/layout/ directory.

3. // To do 3: First, delete the <TextView> element and change the <RelativeLayout>

element to <LinearLayout>. Then add the android: orientation attribute and set it to

"horizontal".

4. // To do 4: To create a user-editable text field, add an <EditText> element inside the

<LinearLayout>.

5. Mini Project:

// to do 5: Add String Resources strings.xml (place holder <EditText>, button name).

// add a Button to the layout, immediately following the <EditText> element:

// make the Input Box Fill in the Screen Width

// Assign all weight to the EditText element.

6. Answer question 6:

Figure 3. The EditText widget is given all the layout weight, so fills the remaining space in

the LinearLayout.

Page 29: International Institute of technology (android)

Laboratory Booklet Programming II

29 Lab report 2

Student Name: ____________________ Instructor: ______________________ Student ID: ________________________ Date: _______________ Mark: _________

Make a demo in front of your instructor Questions : 1. What is the utility to use android:id: ________________________________________________

2. Where we define specify string as resources: _______________________________________

3. What are the first things that you define in a blank layout? _______________________________________________________________________________________

4. Give three options of this thing: _____________ _______________ _______________

5. What is the utility of the String resources file: __________________________ 6. What is the option that allow you to make the Input Box Fill in the Screen Width: _____________________________________________________________________________

Page 30: International Institute of technology (android)

Laboratory Booklet Programming II

30 Experiment # 4

Starting another Activity

Manual: See instructions below.

Objective: You will learn how to build a simple application contains a layout and 2 activity’s, and learn how to Building a Simple User Interface, and how to declare a new intents to start a new activity.

Method: create an activity and a layout and add a linear layout and learn how to start a new activity from the main

activity.

Page 31: International Institute of technology (android)

Laboratory Booklet Programming II

31

Procedure:

1. // To do 1: open the activity_main.xml layout file.

2. // To do 2: add the android:onClick attribute to the <Button> element.

3. // To do 3: Open the MainActivity class (located in the project's src/ directory).

4. // To do 4: add the corresponding method:

/** Called when the user clicks the Send button */

public void sendMessage(View view) {

// Do something in response to button

}

5. // To do 5: add necessary imports of the View:

6. // To do 6: Build an Intent and add it in the sendMessage () function.

7. // To do 7: define the key for your intent's extra using a public constant.

7. Mini Project:

// To do 8: Start the Second Activity.

//add the message that you will send to second Activity on the function

sendMessage().

// add the instruction that send the message to the next Activity.

// add the instruction that Start the second Activity.

// create the Second Activity.

// create a layout for the second Activity

// add <TextView> in the second layout.

// add the title string on the String resources.

// add the second Activity in the manifest.

// add the instruction on the function Oncreate() of the second Activity to the Receive

the Intent and the message from the first intent.

// Display the Message on the second Activity.

Page 32: International Institute of technology (android)

Laboratory Booklet Programming II

32

Lab report 4 Student Name: ____________________ Instructor: ______________________ Student ID: ________________________ Date: _______________ Mark: _________

Make a demo in front of your instructor Questions: 1. What is intent and how declare it? : ________________________________________________

2. What is the declaration of a <TextView> : ____________________________________________________________________________________________________________________________________________________________________

3. What is the utility of the option android: id ? _______________________________________________________________________________________

4. What is the instruction import of the Views: _____________________________ _____________________________________________________________________________

5. What is the instruction to call another activity? ____________________________________________________________________________________________________________________________________________________________________ 6. How to declare a static var? : _______________________________________ _______________________________________________________________________________________________________________________________________________________________

7. How to send information to another Activity?

___________________________________________________________________________

___________________________________________________________________________

8. What you put in the function SetContentView () and Why?

___________________________________________________________________________

_____________________________________________________________________

9. R.java?

1. Editable

2.semi editable

3.no editable.

Page 33: International Institute of technology (android)

Laboratory Booklet Programming II

33

This result of the final application:

Page 34: International Institute of technology (android)

Laboratory Booklet Programming II

34

Experiment # 5

Create the Data Base

Manual: See instructions below.

Objective: You will learn how create a new data base with MySQL and to create Tables and to add a new user.

Method: use MySQL in Xampp and the SQL language to create tables for users and message for friends.

Page 35: International Institute of technology (android)

Laboratory Booklet Programming II

35 Procedure:

1. // To do 1: open your navigator.

2. //To do 2: put this address on the address bar http://localhost:8080/xampp/ .

3. //To do 3: open phpMyAdmin.

4. // To do 4: create a new database and call it android_im if you want or another name as you

like.

5. // To do 5: create new Table “users”, this table contains

ID int

Username Varchar

Email Varchar

Date Varchar

Status tinyint

AuthentificationTimedatetime

UserKey varchar

IP varchar

Port int

6. // To do 6: create new Table “users”, this table contains

ID int

Fromuid int

Touid int

Sentdt datetime

Read tinyint

Readdt datetime

Messagetext longtext

7// To do 7: create new Table “friends”, this table contains

ID int

proviedId int

requestId int

status binary

Page 36: International Institute of technology (android)

Laboratory Booklet Programming II

36 This result of the data base :

Page 37: International Institute of technology (android)

Laboratory Booklet Programming II

37

Lab report 5 Student Name: ____________________ Instructor: ______________________ Student ID: ________________________ Date: _______________ Mark: _________

Make the data Base of the application. Questions: 1. What is principal function of Primary Key? : ________________________________________________

2. What is principal function of Foreign Key: ____________________________________________________________________________________________________________________________________________________________________

3. What is the limit of the varchar? _______________________________________________________________________________________

4. What is the limit of the”int”? : _____________________________ _____________________________________________________________________________

5. What is the utility to use “datetime” and to not use “date” or “time”? ____________________________________________________________________________________________________________________________________________________________________

Page 38: International Institute of technology (android)

Laboratory Booklet Programming II

38 Experiment # 6

Create Models of the application

Manual: See instructions below.

Objective: You will learn how create a models and declare the data of the friends and the message and the Status of the message like Online.

Method: Student should know how to declare a static variable and now how to declare ENUM type.

Page 39: International Institute of technology (android)

Laboratory Booklet Programming II

39

Procedure: 1. //To do 1: open eclipse. 2. //To do 2: create an android project and name it “FirstMessageApp”. 3. //To do 3: setup you android project. 4. //To do 4: create a package called “com.monctonu.models”. 5. //To do 5: create the first models for “friendinfo” put the attributes of the database

public class FriendInfo{

public static final String FRIEND_LIST = "friendList"; ……………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………… public STATUS status;

……………………………………………………… ……………………………………………………… ……………………………………………………… ……………………………………………………… ………………………………………………………

};

6. //To do 6: create the second models for “MessageInfo” put the attributes of the database of the massage Table

public class MessageInfo { public static final String MESSAGE_LIST = "messageList"; ……………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………

public String userid; ………………………………………………………

……………………………………………………… }

7. //To do 7: create an enum model “STATUS” that contains all the status of a connect user

Page 40: International Institute of technology (android)

Laboratory Booklet Programming II

40 Experiment # 7

Connect with the Data Base And make the Login Page Manual: See instructions below.

Objective: You will learn how to connect with the data base and create an activity to take the username and the password and check to pass to the friend List if the both information are true.

Method: Student should know how to connect with the xampp server and get information of the user and should know how to use socket to receive and send information .

Page 41: International Institute of technology (android)

Laboratory Booklet Programming II

41

Procedure: 1. //To do 1: create a pakage called “com.monctonu.interfaces” . 2. //To do 2: create an interface class called “ISocketOperator” 3. //To do 3: add this function to interface class. This class is an abstract type that is used to specify an interface that classes must

implement. Interfaces are declared using the interface keyword, and may only contain method signature. And “SocketOperator” implements this interface must implement all of the methods described

public String sendHttpRequest(String params);// send a request that contains //params public int startListening(int port);// this function start listening to have a //user logged public void stopListening();// this function Stop listening after logout public void exit();// this function exit from the application Public int getListeningPort();// this function allow to have the port that the //user connected to it

4. //To do 4: create an interface class called “IAppManager”.

public interface IAppManager { public String getUsername(); public String sendMessage(String username,String tousername, String message) throws UnsupportedEncodingException; public String authenticateUser(String usernameText, String passwordText) throws UnsupportedEncodingException; public void messageReceived(String username, String message); public boolean isNetworkConnected(); public boolean isUserAuthenticated(); public String getLastRawFriendList(); public void exit(); public String signUpUser(String usernameText, String passwordText, String email); public String addNewFriendRequest(String friendUsername); public String sendFriendsReqsResponse(String approvedFriendNames, String discardedFriendNames);

}

4. //To do 4: create another package called “com.monctonu.services”.

5. //To do 5: add a class and name it “MService.java” 6. //To do 6: MService should be implements methods of the Service.

Page 42: International Institute of technology (android)

Laboratory Booklet Programming II

42

7. //To do 7: implements the “IAppManager” interfaces to “MService” Class. 8. //To do 8: this function must be added in the “MService” class.

public String getUsername();//this function return the username public String authenticateUser(String usernameText, String passwordText) throws UnsupportedEncodingException; //it authenticates the user and if succesful

* it returns the friend list or if authentication is failed * it returns the "0" in string type

public boolean isNetworkConnected();//this function test if the user connected or not

public boolean isUserAuthenticated(); //this function test if the user already authentificated

9. //To do 9: Create Methods of the interface and complete them: 10. //To do 10: Create Class names it “SocketOperator”.

This allows you to manage the Socket and the connection with the Server by the address. 11. Mini Project:

//To do 11: make an Activity and give it the name “Login.java”. This Activity used to manage the connection phase with xampp server

// To do 12: add a toast to display a message that the service is stopped in the function “onServiceDisconnected” in the class Login.java

//To do 13: create a layout like this:

Page 43: International Institute of technology (android)

Laboratory Booklet Programming II

43

13. //To do 13: use those functions:

isUserAuthenticated();

isNetworkConnected();

//To do 14: Make anther activity to test the login, if the login and the password are true the application must pass to another activity and display a message “Login Successful”.

//To do 15: make the relation between layout and the login, the user should be put true a username and a password to pass to the other activity

Page 44: International Institute of technology (android)

Laboratory Booklet Programming II

44 Lab report 7 Student Name: ____________________ Instructor: ______________________ Student ID: ________________________ Date: _______________ Mark: _________

Make the Login Activity of the application. Questions: 1. What is the Service in android? : ________________________________________________

2. What are functions that implements by Service? : ____________________________________________________________________________________________________________________________________________________________________

3. What is the Signature of the Hash map? __________________________________________________________________________________

4. Define the Toast and what is the utility of the Toast? : _____________________________ _____________________________________________________________________________

5. In the class MService.java what is the utility of the Timer? ____________________________________________________________________________________________________________________________________________________________________ 6. In the class MService.java what is the utility of the Timer? ____________________________________________________________________________________________________________________________________________________________________

7. Log.i () what is it ? ____________________________________________________________________________________________________________________________________________________________________

8. Log.e () what is it? ____________________________________________________________________________________________________________________________________________________________________

9. Describe how we declare a Service Activity in the Manifest file? ____________________________________________________________________________________________________________________________________________________________________ 10. Describe how we declare a Main Activity in the Manifest file? ____________________________________________________________________________________________________________________________________________________________________

Page 45: International Institute of technology (android)

Laboratory Booklet Programming II

45

Experiment # 8

Controllers

Manual: See instructions below.

Objective: You will learn how create a controllers class and how to manage the localStorge of the phone and store information of messages and friends; also Know how to Parse information to Xml by creating an XmlHandler.

Method: Student use DefaultHandler and use methods implements by this class and use SQLiteOpenHelper to make the localStorageHandler Class.

Page 46: International Institute of technology (android)

Laboratory Booklet Programming II

46

Procedure:

1. //To do 1: create a new activity name it “LocalStorageHandler.java”. 2. // To do 2: “LocalStorageHandler.java” extends from SQLiteOpenHelper.

SQLiteOpenHelper: is a helper class to manage database creation and version

management.

3. // To do 3: add a Static String “TABLE_MESSAGE_CREATE” and instantiate bye an sql

code to create a message table it contains those attributs .

ID int, Auto increment.

Message_Receiver varchar(25).

Message_Sender varchar(25).

Message_message varchar(255). 4. // To do 4: add a Static String “Table_MESSAGE_DROP” and instantiate bye an sql

code to drop a table message if exist.

5. //To do 5: On the onCreate (…) {} Function, add code to execute the SQL code of the “TABLE_MESSAGE_CREATE” 6. //To do 6: On the onUpgrade (…) {} Function, add code to execute the SQL code of the “Table_MESSAGE_DROP” and recall the OnCreate (…) function. 7. //To do 7: Create a insert () function a comme but d’insérer dans la base de donnée du smartphone. public void insert(String sender, String receiver, String message){ long rowId = -1; try{ SQLiteDatabase db = getWritableDatabase(); ContentValues values = new ContentValues(); -------------------------------------

------------------------------------- -------------------------------------- --------------------------------------

} catch (SQLiteException e){ Log.e(TAG, "insert()", e); } finally { Log.d(TAG, "insert(): rowId=" + rowId); } }

Page 47: International Institute of technology (android)

Laboratory Booklet Programming II

47

8. //To do 8: Create a function name it get (), this function has as goal to get information

from the local database.

public Cursor get(String sender, String receiver) { SQLiteDatabase db = getWritableDatabase (); String SELECT_QUERY = "……………………………………";

Return db.rawQuery(………………….);

}

9. //To do 9: Create a new Class “FriendController.java”

This class can store “friendInfo.java” and check”userkey” and username combination According to its stored data. 10. Mini Project: // To do : Create a New Class name it “MessageController.java” // To do:add a variable name it.

private static MessageInfo[] messagesInfo = null;

//To do: make the Setter and the getter of this variable . // To do: create a new function that return the message from the message table. public static MessageInfo checkMessage(String username)

{ MessageInfo result = null;

}

Page 48: International Institute of technology (android)

Laboratory Booklet Programming II

48

Experiment # 9

Create the Fiend List and the Messaging Activity

Manual: See instructions below.

Objective: You will learn how create a ListView Activity that contains a list of friend and use socket to send message and receive throw a local Server.

Method: Student use ListActivity and use methods to implements the sockets and the messaging activity to send a message and display the History of the messages between friends.

Page 49: International Institute of technology (android)

Laboratory Booklet Programming II

49

Procedure: 1. // To do: Create a new Class “FriendList.java”. 2. // To do: FriendList must extend from “ ListActivity”. This Class can display the list of Friends and allow selecting the friend to send a message 3. // To do: Complete methods in this Class. 4. // To do: Create a private Class in the same Class

private class FriendListAdapter { } 5. // To do: FriendListAdapter this must be extends from BaseAdapter .

BaseAdapter : Common base class of common implementation for an Adapter

that can be used in both ListView (by implementing the specialized

ListAdapter interface) and Spinner (by implementing the specialized

SpinnerAdapter interface).

6. //To do : complete methods in the FriendList Activity. 7. // To do: Create a new Activity name it Messaging in the same package with the FriendList and the Login Activity’s. 8. // To do: Complete the function of the Messaging Activity

9. Mini Project: //To do: make the layout of the friendListScreen.

//insert a Linear Layout. //ImageView and put an ID for the image.

//TextView for the username connected or disconnected. //To do: make a messaging Screen that Contains: -a linear Layout includes these 2 elements: -a Text View that display “messages". -an Edit Text for the message History. -give the Edit Text. -a linear Layout includes these 2 elements: -EditText for the message text. -a Button to send the message. -give the Button an id and the EditText also. //To do: make a messaging Screen that Contains :

Page 50: International Institute of technology (android)

Laboratory Booklet Programming II

50 -a linear Layout includes these 2 elements:

//a TextView that display “messages". //a EditText for the message History //give the EditText an ID.

-a linear Layout includes these 2 elements: //Edit Text for the message text //a Button to send the message //give the Button an id and the Edit Text also

This is the final result: