The availability and use of mobile apps has increased significantly in
recent years. Two dominant mobile platform providers, Apple and Google, have
over one million apps each in their app markets. Such huge number of available
apps gives rise to problems in managing app repositories. Also, a peculiar set of
challenges is faced by the large community of mobile app developers.
We develop novel solutions to two problems in the space of mobile apps.
The first problem is that of fragmentation of mobile app development across
multiple platforms. To accelerate the native development of same app across
multiple platforms, mobile app developers need tools to better navigate across
different platforms. The second problem is that of keeping app repositories free
of plagiarized apps. It is in the best interest of users, developers as well as app
repository owners to get rid of plagiarized apps in the app markets, which often
carry malicious software with them, and thus pose a threat.
Every mobile app interacts with the platform, taking advantage of the
functionalities exposed by the platform. The behavior of an app can be
described at a high level in terms of its interaction with the underlying platform.
By monitoring the app and collecting such interaction in the form of API method
invocations, we can record its high level behavior. We use this observation to
build two new tools. The first tool provides assistance in cross-platform mobile
app development. The second tool detects plagiarized mobile apps in app
repositories. The proposed techniques intercept the interactions between mobile
apps and the underlying platform and utilize the interactions to infer likely
resemblances between two mobile platform APIs or between mobile apps.