Context-Aware Machine Learning in Android
MetadataShow full item record
Context-aware computing enables applications that utilize context information and can benefit from machine learning to provide proactive services. Smartphones are mobile devices containing various advanced technologies, and are becoming increasingly popular. This makes smartphones excellent candidates for creating context-aware applications with machine learning capabilities. To elaborate on this, we have used Google Android to develop a context-aware machine learning framework and application.Context-aware system design are mainly characterized by three factors: (1) a distinction between context sensing and usage, (2) a set of physical components to capture context information, and (3) a set software components to handle and manage context information and to adapt to contextual changes in the environment.Android has good support for developing context-aware systems. Android uses a middleware infrastructure approach to distinct context sensing and usage, supports a large range of physical components, and provides software components to offer middleware for the physical components and context preprocessing capabilities. The platform lacks a generalized interface for context management and a discovery component for adaptation. In addition, Android does not include any machine learning capabilities. Our prototype Context-Aware Machine learning Framework (CAMF) consists of three modules: (1) the Context Source module that contains a mechanism to provide generalized interface for all context sources on Android, (2) the Database module that offers context data storage capabilities, and (3) Weka Service that provides machine learning functionality using the Weka machine learning framework. These three modules are used to improve the context-awareness ability of Android.Our prototype context-aware application Application Learner (AppL) utilizes the features of CAMF. The objective of AppL is to discover context information patterns on how users use other applications on Android. This pattern is used to make predictions to proactively start applications for the user. Due to some implementation problems, AppL is not currently able to make predictions during runtime, but does successfully create the classifier component which makes the predictions. AppL was tested on a HTC Hero Android phone (528Mhz CPU and 288MB RAM). The machine learning operations in AppL used 1-2 seconds to execute with training data <30 which can indicate that machine learning has usage potential on smartphones.