1. Laboratory Booklet Programming II
1International 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
2. 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.
3. Laboratory Booklet Programming II
3Table 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.
4. 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?
5. 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.
7. 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:AndroidSDK”.
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.
8. 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.
9. 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”.
10. 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/
11. 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:AndroidSDK” (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!
12. 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.
13. 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.
14. 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"
15. 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.
16. 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:
17. 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).
18. 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.
19. 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
20. 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.
21. 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"
/>
22. 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.
23. 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.
24. 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.
25. 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?
26. 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.
27. 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.
28. 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.
29. 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:
_____________________________________________________________________________
30. Laboratory Booklet Programming II
30Experiment # 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.
31. Laboratory Booklet Programming II
31Procedure:
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.
32. Laboratory Booklet Programming II
32Lab 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.
34. 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.
35. Laboratory Booklet Programming II
35Procedure:
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
37. 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”?
__________________________________________________________________________________
__________________________________________________________________________________
38. 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.
39. Laboratory Booklet Programming II
39Procedure:
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
40. Laboratory Booklet Programming II
40Experiment # 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 .
41. Laboratory Booklet Programming II
41Procedure:
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.
42. Laboratory Booklet Programming II
427. //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:
43. Laboratory Booklet Programming II
4313. //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
44. Laboratory Booklet Programming II
44Lab 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?
__________________________________________________________________________________
__________________________________________________________________________________
45. 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.
46. 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);
}
}
47. 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;
}
48. 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.
49. Laboratory Booklet Programming II
49Procedure:
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 :
50. 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: