Supervisors info:
Γιάννης Σμαραγδάκης, Καθηγητής, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ
Summary:
Mobile devices have limited processing power, memory, and battery life; thus, optimizing mobile applications for better performance is critical for their successful deployment. However, since optimization requires high-level technical expertise, it is a daunting task for an application developer. Therefore, automatic code optimization techniques and tools are widely used to achieve high performance in applications for mobile devices. An Android application is written in the Java language and a well-known optimizer for Android applications is ReDex, operating on the bytecode level. It statically analyzes the application and, based on that information, it applies optimizations wherever possible. However, ReDex’s static analysis is strict and conservative, and thus it may miss various optimization opportunities. For that reason, in this thesis we attempt to enhance ReDex’s static analysis and the optimization passes it runs on an application. We use Doop, which is a framework for pointer, or points-to, analysis of Java programs, and runs deeper and more detailed analysis, providing us with more information that we can leverage. Our main focus is the method inlining optimization and how we can further expand it so that it can also apply to virtual methods.
Keywords:
static program analysis, doop framework, program optimization, ReDex, method inlining