Matching Items (24)
151431-Thumbnail Image.png
Description
Debugging is a boring, tedious, time consuming but inevitable step of software development and debugging multiple threaded applications with user interactions is even more complicated. Since concurrency and synchronism are normal features in Android mobile applications, the order of thread execution may vary in every run even with the same

Debugging is a boring, tedious, time consuming but inevitable step of software development and debugging multiple threaded applications with user interactions is even more complicated. Since concurrency and synchronism are normal features in Android mobile applications, the order of thread execution may vary in every run even with the same input. To make things worse, the target erroneous cases may happen just in a few specific runs. Besides, the randomness of user interactions makes the whole debugging procedure more unpredictable. Thus, debugging a multiple threaded application is a tough and challenging task. This thesis introduces a replay mechanism for debugging user interactive multiple threaded Android applications. The approach is based on the 'Lamport Clock' concept, 'Event Driven' implementation and 'Client-Server' architecture. The debugger tool described in this thesis provides a user controlled debugging environment where users or developers are allowed to use modified record application to generate a log file. During the record time, all the necessary events like thread creation, synchronization and user input are recorded. Therefore, based on the information contained in the generated log files, the debugger tool can replay the application off-line since log files provide the deterministic order of execution. In this case, user or developers can replay an application as many times as they need to pinpoint the errors in the applications.
ContributorsLu, He (Author) / Lee, Yann-Hang (Thesis advisor) / Fainekos, Georgios (Committee member) / Chen, Yinong (Committee member) / Arizona State University (Publisher)
Created2012
134328-Thumbnail Image.png
Description
As mobile devices have risen to prominence over the last decade, their importance has been increasingly recognized. Workloads for mobile devices are often very different from those on desktop and server computers, and solutions that worked in the past are not always the best fit for the resource- and energy-constrained

As mobile devices have risen to prominence over the last decade, their importance has been increasingly recognized. Workloads for mobile devices are often very different from those on desktop and server computers, and solutions that worked in the past are not always the best fit for the resource- and energy-constrained computing that characterizes mobile devices. While this is most commonly seen in CPU and graphics workloads, this device class difference extends to I/O as well. However, while a few tools exist to help analyze mobile storage solutions, there exists a gap in the available software that prevents quality analysis of certain research initiatives, such as I/O deduplication on mobile devices. This honors thesis will demonstrate a new tool that is capable of capturing I/O on the filesystem layer of mobile devices running the Android operating system, in support of new mobile storage research. Uniquely, it is able to capture both metadata of writes as well as the actual written data, transparently to the apps running on the devices. Based on a modification of the strace program, fstrace and its companion tool fstrace-replay can record and replay filesystem I/O of actual Android apps. Using this new tracing tool, several traces from popular Android apps such as Facebook and Twitter were collected and analyzed.
ContributorsMor, Omri (Author) / Zhao, Ming (Thesis director) / Zhao, Ziming (Committee member) / Computer Science and Engineering Program (Contributor, Contributor) / School of Mathematical and Statistical Sciences (Contributor) / Barrett, The Honors College (Contributor)
Created2017-05
136749-Thumbnail Image.png
Description
The thesis document describes in detail the decision making process and research that went into each step in the process of designing, coding, launching, and marketing a mobile game. This includes major challenges and methodologies for overcoming them or changing course as well as significant revisions that were made to

The thesis document describes in detail the decision making process and research that went into each step in the process of designing, coding, launching, and marketing a mobile game. This includes major challenges and methodologies for overcoming them or changing course as well as significant revisions that were made to the game upon receiving market and user feedback. The game, Sheep In Space, was launched on to the Windows Phone 8 marketplace initially via the use of the GameMaker: Studio game engine. From there, following a series of revisions Sheep In Space launched on the Android marketplace and has been undergoing further changes before the final launch to iOS. The revision and launch strategy was determined based off of market feedback from a variety of facets, including direct word of mouth, reviews, downloads, analytics data, and social media reaction.
Created2014-12
136617-Thumbnail Image.png
Description
We created an Android application, Impromp2, which allows users to search for and save events of interest to them in the Phoenix area. The backend, built on the Parse platform, gathers events daily using Web services and stores them in a database. Impromp2 was designed to improve upon similarly-purposed apps

We created an Android application, Impromp2, which allows users to search for and save events of interest to them in the Phoenix area. The backend, built on the Parse platform, gathers events daily using Web services and stores them in a database. Impromp2 was designed to improve upon similarly-purposed apps available for Android devices in several key ways, especially in user interface design and data interaction capability. This is a full-stack software project that explores databases and their performance considerations, Web services, user interface design, and the challenges of app development for a mobile platform.
ContributorsNorth, Joseph Robert (Author) / Balasooriya, Janaka (Thesis director) / Nakamura, Mutsumi (Committee member) / Faucon, Philippe (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor) / School of Mathematical and Statistical Sciences (Contributor)
Created2015-05
136477-Thumbnail Image.png
Description
MeetPoint is a project derived from Computer Science with a focus upon applications to mobile. The application is created to provide users with the ability to meet up with certain individuals to accomplish a specific task, in this case studying. The project idea came from the creator wanting to meet

MeetPoint is a project derived from Computer Science with a focus upon applications to mobile. The application is created to provide users with the ability to meet up with certain individuals to accomplish a specific task, in this case studying. The project idea came from the creator wanting to meet up with a friend in order to converse about an upcoming exam. The creator knew where the person lived, but could not easily come up with a location for the two to meet that would be a reasonable distance from both of them. Hence came the idea for a mobile application to complete those actions for the user. The project focuses upon implementation in a school setting in which the meetings would actually take place. For means of this project, the locations were fixed to on campus at Arizona State University. The committee felt that this would scope the project correctly for its two-semester creation while still demonstrating how to fulfill the task at hand. Android is the operating system of choice for the mobile application due to it being Java, which was the most familiar language to the student. MeetPoint provides users with an easy to navigate and familiar front-end while harnessing the power of a database in the back-end. The application hides the intricacies of the back-end from the user in order to better provide a comfortable user experience. A lot of the project was designed around providing a comfortable user experience by keeping the application familiar to the user in that it maintains similarities with other popular mobile applications.
ContributorsWallace, Tyler L (Author) / Balasooriya, Janaka (Thesis director) / Faucon, Christophe (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2015-05
133804-Thumbnail Image.png
Description
Modern curriculum requires students to purchase expensive handheld calculators, which has created a market with little competition or incentive for improvement. The purpose of this project was to create a competitive free alternative to be used outside the classroom for those who do not have the economic stability to purchase,

Modern curriculum requires students to purchase expensive handheld calculators, which has created a market with little competition or incentive for improvement. The purpose of this project was to create a competitive free alternative to be used outside the classroom for those who do not have the economic stability to purchase, for example, a TI-82, which costs approximately $100. Calculat3d is an Android application that matches the general-purpose functionality of the TI-82, including calculations, basic statistical functions, graphing, and creating programs. Additionally, a programming language and interpreter were created so programs can be written inside Calculat3d and be used alongside calculations, thus expanding the functionality of the calculator. Graphing functionality is also included in Calculat3d but expanded to three dimensions as opposed to the two-dimension limited TI calculator.
ContributorsEverhart, Ryan Matthew (Author) / Hansford, Dianne (Thesis director) / Bazzi, Rida (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2018-05
Description
The Coffee Hutch project is derived from the field of Computer Science and consists of a website, a database, and a mobile application for Android devices. This three-tiered scheme is designed to support a point-of-sale payment system to be integrated with a standalone product dispensing machine. The website contains landing

The Coffee Hutch project is derived from the field of Computer Science and consists of a website, a database, and a mobile application for Android devices. This three-tiered scheme is designed to support a point-of-sale payment system to be integrated with a standalone product dispensing machine. The website contains landing pages which provide navigation and functional capabilities for users. The site also features a variety of PHP web services which communicate with the database using SQL commands. The application, programmed in the Java language, makes use of these services in a simple, utilitarian design aimed at modification of user data stored in the database. This database, developed with MySQL and managed with the phpMyAdmin application, contains limited information in order to maximize speed of read and write accesses from the website and Android app. Together, these three components comprise an effective payment management system model with mobile capabilities. All of the components of this project were built at no cost. The website hosting service is free and the third-party services required (such as Paypal payment services) are simulated. These simulations allowed me to demonstrate the functionality of the three-tiered product without the necessity for monetary supplication. This thesis features every aspect of the development and testing of The Coffee Hutch software components. Requirements for each function of the software are specified in one section, and they are aligned with various pieces of the code in the source documentation. Test cases which address each requirement are outlined in another section of the thesis.
ContributorsHutchison, Caleb Ryan (Author) / Burger, Kevin (Thesis director) / Zhao, Ming (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2016-12
134714-Thumbnail Image.png
Description
Veelog is an Android application created to monitor and track data regarding maintenance for an individual's personal vehicles. For instance, most car owners change their oil every 10,000 miles or so. The application will help track this data, allowing users to identify their own range of how often a service

Veelog is an Android application created to monitor and track data regarding maintenance for an individual's personal vehicles. For instance, most car owners change their oil every 10,000 miles or so. The application will help track this data, allowing users to identify their own range of how often a service needs to be completed and provide helpful information when the need comes around. The goal of the application is to provide a platform for individuals to record, use, and save information relevant to themselves as the owner. By ensuring that there is space for the data to be recorded and properly tracked, car owners can take initiative in providing preventative maintenance for their vehicles. The idea for the application originally came from observing many individuals who keep a notebook in each of their vehicles for recording and keeping track of maintenance schedules manually. Veelog is a solution that keeps all maintenance manuals in one place, with the additional benefit of calculating upcoming services automatically. Veelog users can also make customizations to their profiles including custom services that are specific to their own needs. The target users for Veelog are individuals who want to be proactive in servicing their vehicles. The application requires frequent checking and regular updates to stay current and provide accurate information for upcoming services. Being proactive about vehicle maintenance provides long term benefits such as preventing serious car trouble, which ultimately results in saving money and staying safe and makes the application worth the extra attention. Ideally, individuals who have not previously been proactive about vehicle maintenance will also be encouraged by the convenience that Veelog provides.
ContributorsKnorr, Jeremy Joseph (Author) / Ahmad, Altaf (Thesis director) / Olsen, Christopher (Committee member) / Department of Information Systems (Contributor) / Barrett, The Honors College (Contributor)
Created2016-12
133050-Thumbnail Image.png
Description
Despite the more tightly controlled permissions and Java framework used by most programs in the Android operating system, an attacker can use the same classic vulnerabilities that exist for traditional Linux binaries on the programs in the Android operating system. Some classic vulnerabilities include stack overows, string formats, and hea

Despite the more tightly controlled permissions and Java framework used by most programs in the Android operating system, an attacker can use the same classic vulnerabilities that exist for traditional Linux binaries on the programs in the Android operating system. Some classic vulnerabilities include stack overows, string formats, and heap meta-information corruption. Through the exploitation of these vulnerabilities an attacker can hijack the execution ow of an application. After hijacking the execution ow, an attacker can then violate the con_dentiality, integrity, or availability of the operating system. Over the years, the operating systems and compliers have implemented a number of protections to prevent the exploitation of vulnerable programs. The most widely implemented protections include Non-eXecutable stack (NX Stack), Address Space Layout Randomization (ASLR), and Stack Canaries (Canaries). NX Stack protections prevent the injection and execution of arbitrary code through the use of a permissions framework within a program. Whereas, ASLR and Canaries rely on obfuscation techniques to protect control ow, which requires su_cient entropy between each execution. Early in the implementation of these protections in Linux, researchers discovered that without su_cient entropy between executions, ASLR and Canaries were easily bypassed. For example, the obfuscation techniques were useless in programs that ran continuously because the programs did not change the canaries or re-randomize the address space. Similarly, aws in the implementation of ASLR and Canaries in Android only re-randomizes the values after rebooting, which means the address space locations and canary values remain constant across the executions of an Android program. As a result, an attacker can hijack the control ow Android binaries that contain control ow vulnerabilities. The purpose of this paper is to expose these aws and the methodology used to verify their existence in Android versions 4.1 (Jelly Bean) through 8.0 (Oreo).
ContributorsGibbs, Wil (Author) / Doupe, Adam (Thesis director) / Shoshitaishvili, Yan (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2018-12
133981-Thumbnail Image.png
Description
This mobile application development sought to accomplish three goals: learning mobile development, addressing a real world problem, and applying four years of schooling towards a structured project. These goals were each chosen for individual reasons. Firstly, the mobile platform is the most effective way to reach the maximal amount of

This mobile application development sought to accomplish three goals: learning mobile development, addressing a real world problem, and applying four years of schooling towards a structured project. These goals were each chosen for individual reasons. Firstly, the mobile platform is the most effective way to reach the maximal amount of users. The majority of the first-world populous owns a smartphone and spends a reasonable amount of time using them through a multitude of purposes such as scheduling, conversation, and entertainment. Coupled with the lack of personal experience in this development area, it becomes evident that creating a mobile application was the most desirable choice for this project. Secondly, after hearing stories and reflections from my peers about their own humanitarian endeavors, their experiences sparked a desire to utilize this project as an opportunity to also create an impact. Thus, this project began to address the desire to solve a real world problem. Lastly, the first three years of the software engineering curriculum has been focused primarily on theoretical environments and projects. Most of these projects seemed to have no real world transferability. Therefore, having spent the time and effort to learn proper methods of software development, it would be remiss not to use these skills to train for future employment. This thesis began with a motivation to solve the time-consuming problem of finding health facilities that satisfy financial, insurance, and health needs. Two personal accounts of delayed proper medical services will be expanded upon later in this document. These experiences served as inspiration to delve further into the problem and determine if there was a solution to solve it. After months of exploring and planning, the project hit an impassible roadblock that deemed the project could no longer be continued. Within the remaining time constraints, changing the development area was not a viable solution to accomplish the intended goal. Thus, a new idea was conceived to assist those trying to cope with anxiety in today's world. One of the common recommendations for people suffering from anxiety is to write down their troubles with the intention of reflecting on them at a later point. This serves as a method to reason through the irrationality, enabling individuals to identify repetitive patterns over long periods of time. Physically writing down these reflections with pen and paper is no longer sufficient in this technological era. This is especially true for those wanting to retain their privacy or those without enough drive to consistently use this technique. The remaining months of this thesis were directed at planning and creating a prototype to address this.
ContributorsLaplace, Cecilia A. (Author) / Lindquist, Timothy (Thesis director) / Whitehouse, Richard (Committee member) / Software Engineering (Contributor) / Barrett, The Honors College (Contributor)
Created2018-05