Upload
nazih-heni
View
1.202
Download
0
Tags:
Embed Size (px)
DESCRIPTION
WorkShop Android
Citation preview
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
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.
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.
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?
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.
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
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.
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.
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”.
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/
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!
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.
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.
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"
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.
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:
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).
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.
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
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.
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"
/>
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.
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.
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.
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?
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.
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.
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.
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: _____________________________________________________________________________
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.
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.
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.
Laboratory Booklet Programming II
33
This result of the final application:
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.
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
Laboratory Booklet Programming II
36 This result of the data base :
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”? ____________________________________________________________________________________________________________________________________________________________________
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.
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
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 .
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.
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:
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
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? ____________________________________________________________________________________________________________________________________________________________________
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.
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); } }
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;
}
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.
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 :
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: