Learning Centre

Clojure on Android: Challenges and Solutions

 |  Login

Show simple item record

dc.contributor Aalto-yliopisto fi
dc.contributor Aalto University en
dc.contributor.advisor Hirvisalo, Vesa
dc.contributor.author Kariniemi, Nicholas
dc.date.accessioned 2015-05-13T09:37:11Z
dc.date.available 2015-05-13T09:37:11Z
dc.date.issued 2015-05-11
dc.identifier.uri https://aaltodoc.aalto.fi/handle/123456789/16018
dc.description.abstract Mobile operating systems are rapidly expanding into new areas and the importance of mobile apps is rising with them. As the most popular mobile operating system, Android is at the forefront of this development. However, while other mobile operating systems have introduced newer, officially-supported languages for app development, the only supported language for Android app development is an older dialect of Java. Android developers are unable to take advantage of the features and styles available in alternative and more modern languages. The Clojure language compiles to Android-compatible bytecode and is a promising language to fill this gap. However, the development of Android apps with Clojure is hindered by performance concerns. One recognized problem is the slow startup time of Clojure on Android apps. Alternative ``lean'' Clojure compiler projects promise to improve Clojure performance including startup time. However, the performance of Clojure on Android and the lean compiler projects has not been systematically analyzed and evaluated. We benchmarked and analyzed the startup and run time performance of Android apps written in Clojure and compiled using both the standard Clojure compiler and experimental lean Clojure implementations. In our experiments the run time performance of Clojure on Android is similar to that of Clojure on the desktop. However, Clojure on Android apps take a significant amount of time to start, even on relatively new hardware and the latest Android versions. Long startup times scale upwards quickly with larger apps and the problem is closely tied to the Clojure compiler implementation. We also found that while the Skummet lean Clojure compiler project significantly reduces Clojure on Android startup times, more changes are necessary to make Clojure practical for general Android app development. en
dc.format.extent 79
dc.format.mimetype application/pdf en
dc.language.iso en en
dc.title Clojure on Android: Challenges and Solutions en
dc.type G2 Pro gradu, diplomityö en
dc.contributor.school Perustieteiden korkeakoulu fi
dc.subject.keyword clojure en
dc.subject.keyword android en
dc.subject.keyword benchmarking en
dc.subject.keyword startup en
dc.subject.keyword JVM en
dc.subject.keyword Java en
dc.identifier.urn URN:NBN:fi:aalto-201505142671
dc.programme.major Mobile Computing - Services and Security en
dc.programme.mcode T3010 fi
dc.type.ontasot Master's thesis en
dc.type.ontasot Diplomityö fi
dc.contributor.supervisor Nurminen, Jukka
dc.programme Computer Science and Engineering en
local.aalto.openaccess yes
dc.rights.accesslevel openAccess
local.aalto.idinssi 51323
dc.type.publication masterThesis
dc.type.okm G2 Pro gradu, diplomityö

Files in this item

This item appears in the following Collection(s)

Show simple item record

Search archive

Advanced Search

article-iconSubmit a publication