Exploring different programming languages in Android projects

Introduction

For every software application growing over the years, the complexity increases substantially. That said, Android is becoming a mature operating system, thus the platform complexity achieved new heights over the past few years. One exciting discovery we encountered during analysis of Android apps was that some apps use more than 75 (!) different languages in their project folders.

Problem

Not much information is available about the use of languages in those apps. Problems may arise due to the use of complex languages, or their improper integration.

State of the art

Various aspects of Android applications have been in researchers focus for the past few years, particularly code written in Java, Kotlin, or C, however, the use of other languages was not their concern.

Task

The goal of this seminar project is to shed light on the use of the different languages, which might provide insights that could spark future work. The corpus containing the apps with the corresponding language metadata will be provided to the student upon the start of the project.

With this data, the task will consist of:

  • Compilation of the different languages used
  • Collection of prevalent uses for each present language
  • Analysis of bundled language interpreters that are used for execution of scripting languages within the Java runtime



Guiding research questions

  • What is the purpose of the different languages used in Android Projects?
  • Do developers frequently use 3rd party runtimes such as Java VM, Ruby, or Lua? How are they integrated?
  • Can we observe usage patterns of specific languages?



Contact

Pascal Gadient

Last changed by gadient on 29 August 2018