Big Code Augmented Android App Development

Like big data that brings applications enabled by vast amounts of data, the large repositories of programs (e.g., open-source code, Java bytecode, and Dalvik bytecode) enable a new class of applications that leverage these repositories of big code. Big code is based on the idea that existing code repositories can be used to create new kinds of programming tools and services to improve software reliability and construction.

In recent years, Android has maintained its position as the leading mobile operating system worldwide. But, managing a short app release cycle to keep competitive is not easy for Android developers because they are often under pressure to fix vulnerabilities, solve compatibility issues, and learn new development methodologies, libraries, and the latest technologies.

This project aims at leveraging the knowledge learned from big code to help Android app development.

Tools:

  • APIMatchmaker
    Android developers are often faced with the need to learn how to use different APIs suitable for their projects. We propose to the community a new tool, namely APIMatchmaker, to recommend API usage by learning directly from similar real-world Android apps. In addition to code similarity, we also take app descriptions (or topics) into consideration to ensure that similar apps also provide similar functions.
  • RepairDroid
    The heavy fragmentation of the Android ecosystem has led to severe compatibility issues with apps. We propose a generic approach that aims at fixing several types of compatibility issues in released Android apps. Our prototype tool, RepairDroid, provides a generic app patch description language for users to create fix templates for compatibility issues. The created templates will then be leveraged by RepairDroid to fix the corresponding issue at the bytecode level automatically.
  • Icon2Code
    We present a prototype tool, Icon2Code, targeted to help app developers more quickly implement the callback functions of complex Android GUI components by recommending code implementations learned from similar GUI components from other apps. Given an icon or UI widget provided by designers, Icon2Code first queries a large pre-established database to locate similar icons that other apps have utilized.

Papers:

https://yanjiezhao96.github.io/publications/

Presentation:

Towards Automatically Repairing Compatibility Issues in Published Android Apps

Project Lead

Yanjie Zhao (PhD Candidate)

Project Team

Prof John Grundy, Prof Li Li

APIMatchmaker diagram

Image 1: APIMatchmaker

RepairDroid diagram

Image 2: RepairDroid

Icon2Code diagram

Image 3: Icon2Code