Static Dalvik bytecode optimization for Android applications

  • Jeehong Kim
  • , Inhyeok Kim
  • , Changwoo Min
  • , Hyung Kook Jun
  • , Soo Hyung Lee
  • , Won Tae Kim
  • , Young Ik Eom

Research output: Contribution to journalArticlepeer-review

5 Scopus citations

Abstract

Since just-in-time (JIT) has considerable overhead to detect hot spots and compile them at runtime, using sophisticated optimization techniques for embedded devices means that any resulting performance improvements will be limited. In this paper, we introduce a novel static Dalvik bytecode optimization framework, as a complementary compilation of the Dalvik virtual machine, to improve the performance of Android applications. Our system generates optimized Dalvik bytecodes by using Low Level Virtual Machine (LLVM). A major obstacle in using LLVM for optimizing Dalvik bytecodes is determining how to handle the high-level language features of the Dalvik bytecode in LLVM IR and how to optimize LLVM IR conforming to the language information of the Dalvik bytecode. To this end, we annotate the high-level language features of Dalvik bytecode to LLVM IR and successfully optimize Dalvik bytecodes through instruction selection processes. Our experimental results show that our system with JIT improves the performance of Android applications by up to 6.08 times, and surpasses JIT by up to 4.34 times.

Original languageEnglish
Pages (from-to)1001-1011
Number of pages11
JournalETRI Journal
Volume37
Issue number5
DOIs
StatePublished - 1 Oct 2015

Keywords

  • Android
  • Dalvik bytecode
  • LLVM
  • Static optimization

Fingerprint

Dive into the research topics of 'Static Dalvik bytecode optimization for Android applications'. Together they form a unique fingerprint.

Cite this