{"id":{"repo_id":"buffalo","oai_identifier":"oai:ubir.buffalo.edu:10477/78503"},"canonical_url":"https://search.dev.ndltd.org/etd/buffalo/oai:ubir.buffalo.edu:10477/78503","repository":{"repo_id":"buffalo","name":"Buffalo","base_url":"https://ubir.buffalo.edu/oai/request"},"display":{"title":"Enabling API Virtualization on Android for Platform Openness","abstract":"Ph.D.","abstract_html":"Ph.D.","abstract_has_math":false,"creators":["Ki, Taeyeon; 0000-0002-5693-8677"],"institution":"State University of New York at Buffalo","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":null,"school":null,"contributors":["Ko, Steven","Computer Science and Engineering"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2018,"date_issued":"2018-10-26T02:54:25Z","date_published":"2018-10-26T02:54:25Z","updated_at":"2026-07-27T19:05:09Z","subjects":["computer science","computer engineering"],"languages":["eng"],"rights":["Users of works found in University at Buffalo Institutional Repository (UBIR) are responsible for identifying and contacting the copyright owner for permission to reuse. University at Buffalo Libraries do not manage rights for copyright-protected works and cannot assist with permissions.","Copyright retained by author."],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/10477/78503","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Ko, Steven","Computer Science and Engineering"]},{"key":"dc:creator","label":"Author","values":["Ki, Taeyeon; 0000-0002-5693-8677"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2018-10-26T02:54:25Z","2018","2018-07-31 09:16:50"]},{"key":"dc:publisher","label":"Institution","values":["State University of New York at Buffalo"]},{"key":"dc:type","label":"Dc Type","values":["Text","Dissertation"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["computer science","computer engineering"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["Users of works found in University at Buffalo Institutional Repository (UBIR) are responsible for identifying and contacting the copyright owner for permission to reuse. University at Buffalo Libraries do not manage rights for copyright-protected works and cannot assist with permissions.","Copyright retained by author."]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/10477/78503"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Ph.D.","In recent years, mobile systems have grown at an astounding pace with millions of devices, thousands of developers, a variety of OSes, etc. However, innovation is not widely open on mobile platforms. This dissertation argues that embracing openness is necessary for mobile platforms that empower small devices such as smartphones and IoT devices. We propose a new technique that enables open innovation in mobile platforms. Our technique allows third-party developers to modify, instrument, or extend platform API calls and deploy their modifications seamlessly. The uniqueness of our technique is that it enables modifications completely at the app layer without requiring any platform-level changes. This allows practical openness—third parties can easily distribute their modifications for a platform without the need to update the entire platform. To demonstrate the benefits of our technique, we have developed a prototype on Android called Reptor and used it to instrument real-world apps with novel functionality. Our evaluation in realistic scenarios shows that Reptor has little overhead in performance and energy, and only modest overhead in memory usage that ranges from 0.6% to 10% for the worst observed cases.We also propose MIMIC, a UI compatibility testing system for Android apps in order to verify the runtime correctness of Reptor. MIMIC is designed specifically for comparing the UI behavior of an app across different devices, different Android versions, and different app versions. This design choice stems from our needs and a common problem that an Android developer or researcher faces—how to test whether or not an app behaves consistently across different environments or internal changes. MIMIC allows Android app developers to easily perform backward and forward compatibility testing for their apps. It also enables a clear comparison between a stable version of an app and a newer version of an app. In doing so, MIMIC allows multiple testing strategies to be used, such as randomized or sequential testing. Finally, MIMIC programming model allows such tests to be scripted with much less developer effort than other comparable systems. Additionally, MIMIC allows parallel testing with multiple testing devices and thereby speeds up testing time. To demonstrate these capabilities, we perform extensive tests for each of the scenarios described above. Our evaluation shows that MIMIC is effective in detecting forward and backward compatibility issues, and verify runtime behavior of apps. Our evaluation also shows that MIMIC significantly reduces the development burden for developers."]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Enabling API Virtualization on Android for Platform Openness"]}]}],"canonical_facts":{"dc:contributor":["Ko, Steven","Computer Science and Engineering"],"dc:creator":["Ki, Taeyeon; 0000-0002-5693-8677"],"dc:date":["2018-10-26T02:54:25Z","2018","2018-07-31 09:16:50"],"dc:description":["Ph.D.","In recent years, mobile systems have grown at an astounding pace with millions of devices, thousands of developers, a variety of OSes, etc. However, innovation is not widely open on mobile platforms. This dissertation argues that embracing openness is necessary for mobile platforms that empower small devices such as smartphones and IoT devices. We propose a new technique that enables open innovation in mobile platforms. Our technique allows third-party developers to modify, instrument, or extend platform API calls and deploy their modifications seamlessly. The uniqueness of our technique is that it enables modifications completely at the app layer without requiring any platform-level changes. This allows practical openness—third parties can easily distribute their modifications for a platform without the need to update the entire platform. To demonstrate the benefits of our technique, we have developed a prototype on Android called Reptor and used it to instrument real-world apps with novel functionality. Our evaluation in realistic scenarios shows that Reptor has little overhead in performance and energy, and only modest overhead in memory usage that ranges from 0.6% to 10% for the worst observed cases.We also propose MIMIC, a UI compatibility testing system for Android apps in order to verify the runtime correctness of Reptor. MIMIC is designed specifically for comparing the UI behavior of an app across different devices, different Android versions, and different app versions. This design choice stems from our needs and a common problem that an Android developer or researcher faces—how to test whether or not an app behaves consistently across different environments or internal changes. MIMIC allows Android app developers to easily perform backward and forward compatibility testing for their apps. It also enables a clear comparison between a stable version of an app and a newer version of an app. In doing so, MIMIC allows multiple testing strategies to be used, such as randomized or sequential testing. Finally, MIMIC programming model allows such tests to be scripted with much less developer effort than other comparable systems. Additionally, MIMIC allows parallel testing with multiple testing devices and thereby speeds up testing time. To demonstrate these capabilities, we perform extensive tests for each of the scenarios described above. Our evaluation shows that MIMIC is effective in detecting forward and backward compatibility issues, and verify runtime behavior of apps. Our evaluation also shows that MIMIC significantly reduces the development burden for developers."],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/10477/78503"],"dc:language":["eng"],"dc:publisher":["State University of New York at Buffalo"],"dc:rights":["Users of works found in University at Buffalo Institutional Repository (UBIR) are responsible for identifying and contacting the copyright owner for permission to reuse. University at Buffalo Libraries do not manage rights for copyright-protected works and cannot assist with permissions.","Copyright retained by author."],"dc:subject":["computer science","computer engineering"],"dc:title":["Enabling API Virtualization on Android for Platform Openness"],"dc:type":["Text","Dissertation"]},"updated_at":"2026-07-27T19:05:09Z"}