Android Record and Replay - COMP 396 Undergraduate Research Project Application Form

INSTRUCTIONS - PROFESSORS: Please print and review this form. Complete or correct the sections, as applicable, from "Supervisor's Name" to "Ethics, safety, and training". Please sign and date near the bottom ("Supervisor's signature").

INSTRUCTIONS - STUDENTS: You may receive this form by email, or you may download it after it has been posted here. Either way, print and review this form. Complete or correct the sections, from "Student's Name" to "Student's Level", and sign ("Student signature"). Ask your supervisor to sign her/his section near the bottom. Take it to the department* corresponding to the course number in Section A; this may or may not be your own department. (* EXCEPTIONS: For NSCI 396 and COGS 396, please bring it to the Interdisciplinary Programs Adviser in Dawson Hall.) Do not register for a '396' course on Minerva until you receive departmental permission. Have a discussion with your supervisor about time/work expectations, keeping in mind that this is a 3-credit course (roughly, 10 hours per week for 12 weeks). Remember that a '396' course is an elective.

INSTRUCTIONS - DEPARTMENTS: After the unit chair/director/designate approves (or not) this project, please notify student. If approved, please give student permission to register on Minerva, and send a copy of this form (with signatures) to the Office for Undergraduate Research in Science (either fax, or internal mail to Dawson Hall 408-A, or PDF scan + email).

QUESTIONS OR FEEDBACK? Contact the Office for Undergraduate Research in Science.

Supervisor's Name: Xue Liu

Supervisor's Email: xue [dot] liu [at] mcgill [dot] ca

Supervisor's Phone:

Supervisor's Website:

Supervisor's department: Computer Science

Course number: COMP 396 (Computer Science)

Term: Winter 2013-2014

Project start date: Monday, January 6, 2014

Project end date: Friday, April 11, 2014

Project title: Android Record and Replay

Project description (50-100 words suggested): This project aims for recording the user interactions (such as typing, tapping, sliding, etc.) of an Android device and replaying these interactions to similar Android devices. During this project, the student will co-work with the supervisor to understand the workflows of Android interactions, design methods to intercept these interactions, implement the design with Java/Python programming languages and assess the implementation with real devices.

Prerequisite: 1 term completed at McGill + CGPA of 3.0 or higher; or permission of instructor.

Grading scheme (The final report must be worth at least 50% of final grade):

  1. Result demo (50%): a. recording the interactions 20%; b. replaying the nteractions (including tapping, typing, sliding, etc.) 30%.
  2. A final report (50%): a. background research about how user interact with the device (10%); b. design of the interception method (10%); c. implementation (with source code) (20%) d. accuracy and other performance measurement (10%).

Other project information: The student needs to get familiar with basic Android programming tools  (Eclipse, ADT, monkey runner, emulator, etc.).

This is the plan for this project:

  1. Get Android, Eclipse, python installed and try the "systrace" tool in "DDMS" of Android in Eclipse.
  2. Record Android system log (logcat). Every Android device runs a default system-wise logging program. Connect the device via USB with a PC where the recording program runs. The first goal is to make the recording program communicate with this logging program, and retrieves its log.
  3. Parse the log obtained in last step along with the systrace log. The systrace log, once obtained, is stored as a web page. Design proper interfaces to query the log (e.g. search for events within a particular time span).
  4. Record and replay the user interactions with an Android device. The program will start in the recording mode. Combined with the log, the recorded data should be represented in a human readable manner.
  5. Design the demo and show the final results. Design the demo in a self-explanatory and user-friendly way. Make sure general audience can understand the results.

Project status: This project is open to applicant.

How students can apply / Next steps: Bring a printed copy of this application form and your advising transcript to me during office hours.

Ethics, safety, and training: Supervisors are responsible for the ethics and safety compliance of undergraduate students. This project involves NEITHER animal subjects, nor human subjects, nor biohazardous substances, nor radioactive materials, nor handling chemicals, nor using lasers.

Student's Name:

Student's McGill ID:

Student's McGill Email:

Student's Phone:

Student's Program:

Student's Level (U0 / U1 / U2 / U3):

Student's signature - I certify that this course is with a different supervisor and on a different topic than any previous '396' course I have taken. I have not applied for another '396' course in this term:

Supervisor's signature - I give my permission for the student identified above to register for this project under my supervision:


Unit chair/director/designate's name:

Unit chair/director/designate's signature - I certify that this project conforms to departmental requirements for 396 courses: