{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,6]],"date-time":"2026-06-06T17:05:44Z","timestamp":1780765544941,"version":"3.54.1"},"reference-count":80,"publisher":"Association for Computing Machinery (ACM)","issue":"3-4","license":[{"start":{"date-parts":[[2024,9,20]],"date-time":"2024-09-20T00:00:00Z","timestamp":1726790400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100012166","name":"National Key R&D Program of China","doi-asserted-by":"crossref","award":["2022YFB4500703"],"award-info":[{"award-number":["2022YFB4500703"]}],"id":[{"id":"10.13039\/501100012166","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"crossref","award":["62332012"],"award-info":[{"award-number":["62332012"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/100018735","name":"Ant Group","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100018735","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Syst."],"published-print":{"date-parts":[[2024,11,30]]},"abstract":"<jats:p>\n            Mobile emulation, which creates full-fledged software mobile devices on a physical PC\/server, is pivotal to the mobile ecosystem. Unfortunately, existing mobile emulators perform poorly on graphics-intensive apps in terms of efficiency and compatibility. To address this, we introduce\n            <jats:italic>graphics projection<\/jats:italic>\n            , a novel graphics virtualization mechanism that adds a small-size\n            <jats:italic>projection space<\/jats:italic>\n            inside the guest memory, which processes graphics operations involving control contexts and resource handles without host interactions. While enhancing performance, the decoupled and asynchronous guest\/host control flows introduced by graphics projection can significantly complicate emulators\u2019 reliability issue diagnosis when faced with a variety of uncommon or non-standard app behaviors in the wild, hindering practical deployment in production. To overcome this drawback, we develop an automatic reliability issue analysis pipeline that distills the critical code paths across the guest and host control flows by runtime quarantine and state introspection. The resulting new Android emulator, dubbed Trinity, exhibits an average of 97% native hardware performance and 99.3% reliable app support, in some cases outperforming other emulators by more than an order of magnitude.\n          <\/jats:p>","DOI":"10.1145\/3643029","type":"journal-article","created":{"date-parts":[[2024,1,24]],"date-time":"2024-01-24T12:17:20Z","timestamp":1706098640000},"page":"1-33","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Trinity: High-Performance and Reliable Mobile Emulation through Graphics Projection"],"prefix":"10.1145","volume":"42","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9990-5090","authenticated-orcid":false,"given":"Hao","family":"Lin","sequence":"first","affiliation":[{"name":"Tsinghua University, Beijing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7286-122X","authenticated-orcid":false,"given":"Zhenhua","family":"Li","sequence":"additional","affiliation":[{"name":"Tsinghua University, Beijing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-2294-9721","authenticated-orcid":false,"given":"Di","family":"Gao","sequence":"additional","affiliation":[{"name":"Tsinghua University, Beijing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8052-9200","authenticated-orcid":false,"given":"Yunhao","family":"Liu","sequence":"additional","affiliation":[{"name":"Tsinghua University, Beijing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8509-2650","authenticated-orcid":false,"given":"Feng","family":"Qian","sequence":"additional","affiliation":[{"name":"University of Minnesota, Minnesota, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4443-8170","authenticated-orcid":false,"given":"Tianyin","family":"Xu","sequence":"additional","affiliation":[{"name":"University of Illinois Urbana-Champaign, Urbana, Illinois, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Bo","family":"Xiao","sequence":"additional","affiliation":[{"name":"Ant Group, Hangzhou, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Xiaokang","family":"Qin","sequence":"additional","affiliation":[{"name":"Ant Group, Hangzhou, China"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2024,9,20]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","DOI":"10.1535\/itj.1003.02"},{"key":"e_1_3_1_3_2","first-page":"2","article-title":"I\/O virtualization technology specification revision 1.26","volume":"1","year":"2009","unstructured":"AMD. 2009. I\/O virtualization technology specification revision 1.26. AMD White Paper 1 (2009), 2\u201311.","journal-title":"AMD White Paper"},{"key":"e_1_3_1_4_2","unstructured":"Anbox.com. 2021. Anbox: Container-Based Android Emulator. Retrieved from https:\/\/anbox.io\/"},{"key":"e_1_3_1_5_2","unstructured":"Android.org. 2021. Application Not Responding of Android. Retrieved fromhttps:\/\/developer.android.com\/topic\/performance\/vitals\/anr"},{"key":"e_1_3_1_6_2","unstructured":"Android.org. 2021. GraphicBuffer: Android\u2019s Native Window Buffer Implementation. Retrieved fromhttps:\/\/android.googlesource.com\/platform\/frameworks\/native\/+\/jb-mr0-release\/libs\/ui\/GraphicBuffer.cpp"},{"key":"e_1_3_1_7_2","unstructured":"Android.org. 2021. View: Basic Building Blocks for Android User Interface. Retrieved fromhttps:\/\/developer.android.com\/reference\/android\/view\/View"},{"key":"e_1_3_1_8_2","unstructured":"Android.org. 2023. Android System Tracing Tool. Retrieved fromhttps:\/\/developer.android.com\/topic\/performance\/tracing"},{"key":"e_1_3_1_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/3135974.3135981"},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/2541940.2541972"},{"key":"e_1_3_1_11_2","unstructured":"Apple.com. 2021. AirPlay: Share Mutimedia Contents across Devices. Retrieved fromhttps:\/\/www.apple.com\/airplay\/"},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095837"},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/1023720.1023722"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2007.907047"},{"key":"e_1_3_1_15_2","unstructured":"Bluestacks.com. 2021. Benchmark Performance Comparisions Among Bluestacks LDPlayer Memu and Nox. Retrieved fromhttps:\/\/www.bluestacks.com\/bluestacks-vs-ldplayer-vs-memu-vs-nox.html"},{"key":"e_1_3_1_16_2","unstructured":"Bluestacks.com. 2021. Bluestacks: Modern Android Gaming Emulator. Retrieved fromhttps:\/\/www.bluestacks.com\/"},{"key":"e_1_3_1_17_2","doi-asserted-by":"publisher","DOI":"10.1109\/MCG.2008.83"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/281035.281041"},{"key":"e_1_3_1_19_2","volume-title":"CUDA Programming: A Developer\u2019s Guide to Parallel Computing with GPUs","author":"Cook Shane","year":"2012","unstructured":"Shane Cook. 2012. CUDA Programming: A Developer\u2019s Guide to Parallel Computing with GPUs. Newnes."},{"key":"e_1_3_1_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2011.11"},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/1618525.1618534"},{"key":"e_1_3_1_22_2","unstructured":"DPDK.org. 2023. rte_ring: Lock-Free Ring Buffer in DPDK. Retrieved from https:\/\/doc.dpdk.org\/api\/rte__ring_8h.html"},{"key":"e_1_3_1_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCS.2010.5547126"},{"key":"e_1_3_1_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/844128.844148"},{"key":"e_1_3_1_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/1346256.1346273"},{"key":"e_1_3_1_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/2934872.2959081"},{"key":"e_1_3_1_27_2","unstructured":"Facebook.com. 2023. Zstandard: Fast Real-time Compression Algorithm. Retrieved from http:\/\/facebook.github.io\/zstd\/"},{"key":"e_1_3_1_28_2","first-page":"285","volume-title":"Proceedings of the USENIX OSDI","author":"Gao Di","year":"2022","unstructured":"Di Gao, Hao Lin, Zhenhua Li, Chengen Huang, Yunhao Liu, Feng Qian, Liangyi Gong, and Tianyin Xu. 2022. Trinity: High-performance mobile emulation through graphics projection. In Proceedings of the USENIX OSDI. 285\u2013301."},{"key":"e_1_3_1_29_2","unstructured":"Genymotion.com. 2021. Genymotion: Android as a Service. Retrieved from https:\/\/www.genymotion.com\/"},{"key":"e_1_3_1_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/3342195.3387530"},{"issue":"7","key":"e_1_3_1_31_2","first-page":"1615","article-title":"Systematically landing machine learning onto market-scale mobile malware detection","volume":"32","author":"Gong Liangyi","year":"2020","unstructured":"Liangyi Gong, Hao Lin, Zhenhua Li, Feng Qian, Yang Li, Xiaobo Ma, and Yunhao Liu. 2020. Systematically landing machine learning onto market-scale mobile malware detection. IEEE Transactions on Parallel and Distributed Systems 32, 7 (2020), 1615\u20131628.","journal-title":"IEEE Transactions on Parallel and Distributed Systems"},{"key":"e_1_3_1_32_2","unstructured":"Google.com. 2021. Almost Native Graphics Layer Engine. Retrieved from https:\/\/github.com\/google\/angle"},{"key":"e_1_3_1_33_2","unstructured":"Google.com. 2021. Android Emulator: Simulates Android Devices on Your Computer. Retrieved from https:\/\/developer.android.com\/studio\/run\/emulator"},{"key":"e_1_3_1_34_2","unstructured":"Google.com. 2021. Monkey: Automatic UI\/Application Exerciser. Retrieved from https:\/\/developer.android.com\/studio\/test\/monkey"},{"key":"e_1_3_1_35_2","unstructured":"Google.com. 2021. Stream Content with Chromecast. Retrieved from https:\/\/store.google.com\/us\/product\/chromecast?hl=en-US"},{"key":"e_1_3_1_36_2","unstructured":"Google.com. 2021. SwiftShader: A CPU-Based Implementation of Graphics APIs. Retrieved from https:\/\/github.com\/google\/swiftshader"},{"key":"e_1_3_1_37_2","unstructured":"Google.com. 2023. Google Firebase Performance Monitoring Tool. Retrieved from https:\/\/firebase.google.com\/docs\/perf-mon"},{"key":"e_1_3_1_38_2","first-page":"1","volume-title":"Proceedings of the ACM SoCC","author":"Gunawi Haryadi S.","year":"2014","unstructured":"Haryadi S. Gunawi, Mingzhe Hao, Tanakorn Leesatapornwongsa, Tiratat Patana-anake, Thanh Do, Jeffry Adityatama, Kurnia J. Eliazar, Agung Laksono, Jeffrey F. Lukman, Vincentius Martin, and Anang D. Satria. 2014. What bugs live in the cloud?. In Proceedings of the ACM SoCC. 1\u201314."},{"key":"e_1_3_1_39_2","first-page":"1","article-title":"NVIDIA GRID: Graphics accelerated VDI with the visual performance of a workstation","author":"Herrera Alex","year":"2014","unstructured":"Alex Herrera. 2014. NVIDIA GRID: Graphics accelerated VDI with the visual performance of a workstation. NVIDIA Corp (2014), 1\u201318.","journal-title":"NVIDIA Corp"},{"key":"e_1_3_1_40_2","unstructured":"Huawei.com. 2021. Huawei\u2019s DevEco Studio. Retrieved from https:\/\/developer.harmonyos.com\/en\/develop\/deveco-studio\/"},{"key":"e_1_3_1_41_2","unstructured":"Intel.com. 2021. Houdini: Translate The ARM Binary Code Into the x86 Instruction Set. Retrieved from https:\/\/www.intel.com\/content\/www\/us\/en\/products\/docs\/workstations\/resources\/accelerate-game-development-houdini-optane-memory.html"},{"key":"e_1_3_1_42_2","unstructured":"Intel.com. 2021. Intel GVT-g: Full GPU Virtualization with Mediated Pass-through. Retrieved from https:\/\/github.com\/intel\/gvt-linux\/wiki\/GVTg_Setup_Guide"},{"key":"e_1_3_1_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/956981.956989"},{"key":"e_1_3_1_44_2","unstructured":"Kishonti Ltd. 2021. GFXBench: A Unified Graphics Benchmark Based on DXBenchmark. Retrieved from https:\/\/gfxbench.com\/"},{"key":"e_1_3_1_45_2","first-page":"225","volume-title":"Proceedings of the Linux Symposium","volume":"1","author":"Kivity Avi","year":"2007","unstructured":"Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lublin, and Anthony Liguori. 2007. KVM: The linux virtual machine monitor. In Proceedings of the Linux Symposium, Vol. 1. 225\u2013230."},{"key":"e_1_3_1_46_2","unstructured":"Underwriters Laboratories. 2021. 3DMark: Popular Benchmarks for Gamers Overclockers and System Builders. Retrieved from https:\/\/www.3dmark.com\/"},{"key":"e_1_3_1_47_2","unstructured":"LDPlayer.com. 2021. LDPlayer: Free Android Emulator for PC. Retrieved from https:\/\/www.ldplayer.net\/"},{"key":"e_1_3_1_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254119"},{"key":"e_1_3_1_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736031"},{"key":"e_1_3_1_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/2742647.2742656"},{"key":"e_1_3_1_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/3372224.3380897"},{"key":"e_1_3_1_52_2","unstructured":"Linux.org. 2023. kfifo: Lock-Free Ring Buffer in Linux Kernel. Retrieved from https:\/\/archive.kernel.org\/oldlinux\/htmldocs\/kernel-api\/kfifo.html"},{"key":"e_1_3_1_53_2","doi-asserted-by":"publisher","DOI":"10.1145\/3317550.3321438"},{"key":"e_1_3_1_54_2","first-page":"787","volume-title":"Proceedings of the USENIX OSDI","author":"Luo Yu","year":"2022","unstructured":"Yu Luo, Kirk Rodrigues, Cuiqin Li, Feng Zhang, Lijin Jiang, Bing Xia, David Lion, and Ding Yuan. 2022. Hubble: Performance debugging with in-production, just-in-time method tracing on android. In Proceedings of the USENIX OSDI. 787\u2013803."},{"key":"e_1_3_1_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/3551349.3559505"},{"key":"e_1_3_1_56_2","unstructured":"MEmu.com. 2021. MEmu: The Most Powerful Android Emulator. Retrieved from https:\/\/www.memuplay.com\/"},{"key":"e_1_3_1_57_2","unstructured":"Mesa.org. 2021. The Mesa 3D Graphics Library. Retrieved from https:\/\/www.mesa3d.org\/"},{"key":"e_1_3_1_58_2","unstructured":"Microsoft.com. 2021. Introduction to Hyper-V on Windows. Retrieved from https:\/\/docs.microsoft.com\/en-us\/virtualization\/hyper-v-on-windows\/about\/"},{"key":"e_1_3_1_59_2","unstructured":"Microsoft.com. 2021. Windows Subsystem for Android. Retrieved from https:\/\/docs.microsoft.com\/en-us\/windows\/android\/wsa\/"},{"key":"e_1_3_1_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/3357223.3362733"},{"key":"e_1_3_1_61_2","first-page":"41","volume-title":"Proceedings of the Springer DIMVA","author":"Neugschwandtner Matthias","year":"2010","unstructured":"Matthias Neugschwandtner, Christian Platzer, Paolo Milani Comparetti, and Ulrich Bayer. 2010. dAnubis\u2013dynamic device driver analysis based on virtual machine introspection. In Proceedings of the Springer DIMVA. Springer, 41\u201360."},{"key":"e_1_3_1_62_2","unstructured":"NoxPlayer.com. 2021. NoxPlayer: The Perfect Android Emulator to Play Mobile Games on PC. Retrieved from https:\/\/www.bignox.com\/"},{"key":"e_1_3_1_63_2","unstructured":"NVIDIA.com. 2021. vGPU: Security Benefits of Virtualization as well as the Performance of NVIDIA GPUs. Retrieved from https:\/\/www.nvidia.com\/en-us\/data-center\/virtual-solutions\/"},{"key":"e_1_3_1_64_2","first-page":"110","article-title":"Dissecting the android bouncer","volume":"95","author":"Oberheide Jon","year":"2012","unstructured":"Jon Oberheide and Charlie Miller. 2012. Dissecting the android bouncer. SummerCon2012, New York 95 (2012), 110.","journal-title":"SummerCon2012, New York"},{"key":"e_1_3_1_65_2","unstructured":"Oracle.com. 2021. VirtualBox: A Powerful x86 and AMD64\/Intel64 Virtualization Product. Retrieved from https:\/\/www.virtualbox.org\/"},{"key":"e_1_3_1_66_2","doi-asserted-by":"publisher","DOI":"10.1109\/ACSAC.2007.10"},{"key":"e_1_3_1_67_2","unstructured":"QEMU.org. 2021. QEMU: A Generic and Open Source Machine Emulator and Virtualizer. Retrieved from https:\/\/www.qemu.org\/"},{"key":"e_1_3_1_68_2","first-page":"107","volume-title":"Proceedings of the USENIX OSDI","author":"Ravindranath Lenin","year":"2012","unstructured":"Lenin Ravindranath, Jitendra Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, and Shahin Shayandeh. 2012. AppInsight: Mobile app performance monitoring in the wild. In Proceedings of the USENIX OSDI. 107\u2013120."},{"key":"e_1_3_1_69_2","unstructured":"RealVNC.com. 2021. VNC; Remote Desktop Access. Retrieved from https:\/\/www.realvnc.com\/en\/"},{"key":"e_1_3_1_70_2","unstructured":"RenderDoc.org. 2023. RenderDoc: A Standalone Graphics Debugging Tool for Vulkan OpenGL and OpenGL ES. Retrieved from https:\/\/renderdoc.org\/"},{"key":"e_1_3_1_71_2","doi-asserted-by":"publisher","DOI":"10.1145\/2719921"},{"key":"e_1_3_1_72_2","unstructured":"Skia.org. 2021. Skia: 2D Graphics Rendering Library. Retrieved from https:\/\/skia.org\/"},{"key":"e_1_3_1_73_2","first-page":"109","volume-title":"Proceedings of the USENIX ATC","author":"Suzuki Yusuke","year":"2014","unstructured":"Yusuke Suzuki, Shinpei Kato, Hiroshi Yamada, and Kenji Kono. 2014. GPUvm: Why not virtualizing gpus at the hypervisor?. In Proceedings of the USENIX ATC. 109\u2013120."},{"key":"e_1_3_1_74_2","doi-asserted-by":"publisher","DOI":"10.1145\/3552326.3587448"},{"key":"e_1_3_1_75_2","unstructured":"Trinity. 2023. Bug Report & Fix: Problematic API Definations of OpenGL ES. Retrieved from https:\/\/github.com\/KhronosGroup\/OpenGL-Refpages\/pull\/118"},{"key":"e_1_3_1_76_2","unstructured":"Trinity.github. 2021. List of Top-100 3D Apps. Retrieved from https:\/\/github.com\/TrinityEmulator\/EvaluationScript\/#4-top-100-3d-apps"},{"key":"e_1_3_1_77_2","unstructured":"VMware.com. 2021. VMware Workstation Pros: Run Windows Linux and BSD Virtual Machines on a Windows or Linux Desktop. Retrieved from https:\/\/www.vmware.com\/products\/workstation-pro.html"},{"key":"e_1_3_1_78_2","doi-asserted-by":"publisher","DOI":"10.1145\/216585.216588"},{"key":"e_1_3_1_79_2","first-page":"569","volume-title":"Proceedings of the USENIX Security","author":"Yan Lok-Kwong","year":"2012","unstructured":"Lok-Kwong Yan and Heng Yin. 2012. DroidScope: Seamlessly reconstructing the OS and dalvik semantic views for dynamic android malware analysis. In Proceedings of the USENIX Security. 569\u2013584."},{"key":"e_1_3_1_80_2","doi-asserted-by":"publisher","DOI":"10.1145\/3307334.3326094"},{"key":"e_1_3_1_81_2","doi-asserted-by":"publisher","DOI":"10.1145\/3300061.3300122"}],"container-title":["ACM Transactions on Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3643029","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3643029","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T16:31:21Z","timestamp":1750264281000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3643029"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,9,20]]},"references-count":80,"journal-issue":{"issue":"3-4","published-print":{"date-parts":[[2024,11,30]]}},"alternative-id":["10.1145\/3643029"],"URL":"https:\/\/doi.org\/10.1145\/3643029","relation":{},"ISSN":["0734-2071","1557-7333"],"issn-type":[{"value":"0734-2071","type":"print"},{"value":"1557-7333","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,9,20]]},"assertion":[{"value":"2023-06-13","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-01-09","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-09-20","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}