SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
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
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
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.
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: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.
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: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!
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
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.
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.
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.
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
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
 AuthentificationTimedatetime
 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
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
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 .
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.
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:
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
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?
__________________________________________________________________________________
__________________________________________________________________________________
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
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 :
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:

Más contenido relacionado

La actualidad más candente

Thesis klausi
Thesis klausiThesis klausi
Thesis klausimooru
 
bkremer-report-final
bkremer-report-finalbkremer-report-final
bkremer-report-finalBen Kremer
 
How to optimize the performance of vue js large application structure
How to optimize the performance of vue js large application structure How to optimize the performance of vue js large application structure
How to optimize the performance of vue js large application structure Katy Slemon
 
Portal application development using Websphere Portlet Factory
Portal application development using Websphere Portlet FactoryPortal application development using Websphere Portlet Factory
Portal application development using Websphere Portlet FactoryDacartec Servicios Informáticos
 
Graphisoft vbe user_guide
Graphisoft vbe user_guideGraphisoft vbe user_guide
Graphisoft vbe user_guideVictor5201
 

La actualidad más candente (8)

Report-V1.5_with_comments
Report-V1.5_with_commentsReport-V1.5_with_comments
Report-V1.5_with_comments
 
Thesis klausi
Thesis klausiThesis klausi
Thesis klausi
 
bkremer-report-final
bkremer-report-finalbkremer-report-final
bkremer-report-final
 
How to optimize the performance of vue js large application structure
How to optimize the performance of vue js large application structure How to optimize the performance of vue js large application structure
How to optimize the performance of vue js large application structure
 
Portal application development using Websphere Portlet Factory
Portal application development using Websphere Portlet FactoryPortal application development using Websphere Portlet Factory
Portal application development using Websphere Portlet Factory
 
Powershell selflearn
Powershell selflearnPowershell selflearn
Powershell selflearn
 
Flask docs
Flask docsFlask docs
Flask docs
 
Graphisoft vbe user_guide
Graphisoft vbe user_guideGraphisoft vbe user_guide
Graphisoft vbe user_guide
 

Destacado

Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCharles Moulliard
 
Cahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EECahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EENazih Heni
 
Software defined radio and the hacker
Software defined radio and the hackerSoftware defined radio and the hacker
Software defined radio and the hackerRob Gillen
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Nazih Heni
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
The Science of Memorable Presentations
The Science of Memorable PresentationsThe Science of Memorable Presentations
The Science of Memorable PresentationsEthos3
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stageguesta3231e
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsFight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsDigital Surgeons
 
Présentation Soutenance de Mémoire
Présentation Soutenance de MémoirePrésentation Soutenance de Mémoire
Présentation Soutenance de MémoireClaire Prigent
 
17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to View17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to ViewJim MacLeod
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next PresentationSOAP Presentations
 

Destacado (19)

Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
 
Cahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EECahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EE
 
Software defined radio and the hacker
Software defined radio and the hackerSoftware defined radio and the hacker
Software defined radio and the hacker
 
GNU Radio
GNU RadioGNU Radio
GNU Radio
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
The Science of Memorable Presentations
The Science of Memorable PresentationsThe Science of Memorable Presentations
The Science of Memorable Presentations
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stage
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsFight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
 
Présentation Soutenance de Mémoire
Présentation Soutenance de MémoirePrésentation Soutenance de Mémoire
Présentation Soutenance de Mémoire
 
5 Ways To Surprise Your Audience (and keep their attention)
5 Ways To Surprise Your Audience (and keep their attention)5 Ways To Surprise Your Audience (and keep their attention)
5 Ways To Surprise Your Audience (and keep their attention)
 
17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to View17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to View
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation
 
8 Tips for an Awesome Powerpoint Presentation
8 Tips for an Awesome Powerpoint Presentation8 Tips for an Awesome Powerpoint Presentation
8 Tips for an Awesome Powerpoint Presentation
 

Similar a International Institute of technology (android)

Cis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interfaceCis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interfacecis247
 
Cis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interfaceCis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interfacesdjdskjd9097
 
Cis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interfaceCis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interfacesdjdskjd9097
 
Cis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interfaceCis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interfaceccis224477
 
Assignment2 btkr1343 sem2_20122013
Assignment2 btkr1343 sem2_20122013Assignment2 btkr1343 sem2_20122013
Assignment2 btkr1343 sem2_20122013Sulaiman Sabikan
 
Lab Report sample of c programming.docx
Lab Report sample of c programming.docxLab Report sample of c programming.docx
Lab Report sample of c programming.docxbheshchaudhary
 
Module Six Assignment Guidelines and Rubric.htmlOverviewMa.docx
Module Six Assignment Guidelines and Rubric.htmlOverviewMa.docxModule Six Assignment Guidelines and Rubric.htmlOverviewMa.docx
Module Six Assignment Guidelines and Rubric.htmlOverviewMa.docxroushhsiu
 
INTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCE
INTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCEINTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCE
INTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCEIPutuAdiPratama
 
Ml goes fruitful
Ml goes fruitfulMl goes fruitful
Ml goes fruitfulPreeti Negi
 
Intro to programing with java-lecture 1
Intro to programing with java-lecture 1Intro to programing with java-lecture 1
Intro to programing with java-lecture 1Mohamed Essam
 
Prg 218 entire course
Prg 218 entire coursePrg 218 entire course
Prg 218 entire coursegrades4u
 
RPT ICTL F1
RPT ICTL F1RPT ICTL F1
RPT ICTL F1gpbsmkjk
 
Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6helpido9
 
Lecture 1 dev_environment
Lecture 1 dev_environmentLecture 1 dev_environment
Lecture 1 dev_environmentmoduledesign
 
Cis 355 ilab 1 of 6
Cis 355 ilab 1 of 6Cis 355 ilab 1 of 6
Cis 355 ilab 1 of 6comp274
 
Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6solutionjug4
 

Similar a International Institute of technology (android) (20)

Cis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interfaceCis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interface
 
Cis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interfaceCis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interface
 
Cis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interfaceCis247 i lab 1 of 7 creating a user interface
Cis247 i lab 1 of 7 creating a user interface
 
Cis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interfaceCis247 a ilab 1 of 7 creating a user interface
Cis247 a ilab 1 of 7 creating a user interface
 
Assignment2 btkr1343 sem2_20122013
Assignment2 btkr1343 sem2_20122013Assignment2 btkr1343 sem2_20122013
Assignment2 btkr1343 sem2_20122013
 
Lab Report sample of c programming.docx
Lab Report sample of c programming.docxLab Report sample of c programming.docx
Lab Report sample of c programming.docx
 
Module Six Assignment Guidelines and Rubric.htmlOverviewMa.docx
Module Six Assignment Guidelines and Rubric.htmlOverviewMa.docxModule Six Assignment Guidelines and Rubric.htmlOverviewMa.docx
Module Six Assignment Guidelines and Rubric.htmlOverviewMa.docx
 
INTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCE
INTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCEINTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCE
INTRODUCTION TO MACHINE LEARNING FOR MATERIALS SCIENCE
 
Ml goes fruitful
Ml goes fruitfulMl goes fruitful
Ml goes fruitful
 
Intro to programing with java-lecture 1
Intro to programing with java-lecture 1Intro to programing with java-lecture 1
Intro to programing with java-lecture 1
 
18CSL48.pdf
18CSL48.pdf18CSL48.pdf
18CSL48.pdf
 
Prg 218 entire course
Prg 218 entire coursePrg 218 entire course
Prg 218 entire course
 
c++ lab manual
c++ lab manualc++ lab manual
c++ lab manual
 
RPT ICTL F1
RPT ICTL F1RPT ICTL F1
RPT ICTL F1
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6
 
Debugging
DebuggingDebugging
Debugging
 
Lecture 1 dev_environment
Lecture 1 dev_environmentLecture 1 dev_environment
Lecture 1 dev_environment
 
Cis 355 ilab 1 of 6
Cis 355 ilab 1 of 6Cis 355 ilab 1 of 6
Cis 355 ilab 1 of 6
 
Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6Cis 355 i lab 1 of 6
Cis 355 i lab 1 of 6
 

Último

On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxAmita Gupta
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxdhanalakshmis0310
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 

Último (20)

On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 

International Institute of technology (android)

  • 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.
  • 6. 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
  • 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.
  • 33. Laboratory Booklet Programming II 33  This result of the final application:
  • 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  AuthentificationTimedatetime  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
  • 36. Laboratory Booklet Programming II 36  This result of the data base :
  • 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: