International Institute of technology (android)

1,408
-1

Published on

WorkShop Android

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,408
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

International Institute of technology (android)

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 33. Laboratory Booklet Programming II 33  This result of the final application:
  34. 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. 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. 36. Laboratory Booklet Programming II 36  This result of the data base :
  37. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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:

×