Given the pervasion of consumer devices in diverse operating environments, with a myriad of heterogeneous device resources and applications, designers can no longer pre-define optimization goals (e.g., maximum performance, minimum energy, Pareto optimal tradeoff, etc.) given extremely diverse end-user quality-of-experience (QoE) expectations (e.g., expected user-touch input response time, global positioning system (GPS) accuracy, video playback quality, battery life, etc.). To customize device operation, users typically can only select high-level system settings (e.g., screen brightness, power saving modes, etc.). This coarse-grained method ignores fine-grained configurable parameters with high QoE adherence potential. In this project, we will explore adapting fine-grained configurable parameters, ranging from cache configuration and pipeline issue width, to more efficient task scheduling in heterogeneous multicore systems, to use of different algorithm/process variations trading off reduced accuracy for increased battery life. Since allowing users to specify this level of device configurability is impractical, future devices must contain an automated runtime optimizer with functionality, architecture, and methods to change the device configuration to rapidly and accurately adapt, predict, and adhere to user QoE expectations.