Exploring different programming languages in Android projects
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.
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.
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?