Wifi is common and important way that wireless devices access the internet. Wifi networks, however, are difficult to manage. Home deployments are typically completely unplanned resulting in unnecessary interference and performance degradation. Most home Wifi users have no idea how to optimize the settings of their own routers. Even enterprise deployments must content with interference from co-located networks that may be separately or independently administered. Data gathered from Android smartphones may hold the key to finding order in this chaos. Based on promising results from previous studies on PhoneLab, OptiWifi is building a complete Wifi scan collection and analysis stack. Our goal is to help individuals and small businesses manage and improve the performance of their wireless networks. Read more...
The Internet is transforming every aspect of our lives, including how we communicate, navigate, organize, work, play, and love. And it will also transform how we learn and teach. However, current online education platforms suffer design flaws that limit their effectiveness. Specifically, online courses ignore many of the lessons of the Internet’s spectacular success. In Fall 2016, blue will teach a new course on the internet designed to reflect some of the core features of today’s internet. We plan to realize a new approach to online learning called learning webs. Read more...
Smartphone battery consumption remains a top concern of smartphone users and a critical constraint limiting the effectiveness of adoption of smartphone apps. Due to leakage current, device temperature has a large impact on processor and overall smartphone energy efficiency. The effect of temperature is exacerbated by the widespread deployment of multi-core smartphones. Mobile multi-core processors can begin to overheat quickly—within a few seconds—causing cores to be shut down and work to be lost. We are developing a new framework to manage device temperature at both short, medium, and long timescales, improving battery lifetime and increasing device energy efficiency by maintaining efficient operating temperatures. Read more...
Smartphone apps and platforms rely on access to structured and unstructured data. Today, many apps build persistent storage layers on top of embedded SQL databases such as SQLite. However, SQL is not necessarily an ideal choice for persisting many types of data structures. Embedded database engines lack benchmarks that reflect the differences between interactive workloads and the traditional throughput-driven workloads that are used to evaluate database servers supporting big data and web applications. The PocketData project is developing new benchmarks based on smartphone embedded database workloads that can drive innovative next-generation approaches to mobile structured data storage and access. External project page.
Many people today interact with multiple personal computing devices: one or more desktops, laptops, tablets, smartphones, and wearables. Each of these devices offers different capabilities and form factors. We are studying how users transition between multiple devices and choose devices to perform specific tasks. We have found that a wearable device such as a smartwatch, positioned on the user’s dominant hand, can accurately identify various input devices and modalities associated with different kinds of personal devices: keyboards v. touchscreens, mice v. trackpads, etc. In most cases identifying several input features of a particular device is sufficient to distinguish it from the users' other personal devices. Read more...
Runtime validation of wireless protocol implementations cannot always employ direct instrumentation of the tested device. It may not implement the required instrumentation, or the instrumentation may alter the its behavior. Wireless sniffers can monitor wireless traffic without instrumentation but introduce both new validation challenges and opportunities. Losses caused by wireless propagation mean that sniffers cannot perfectly reconstruct the actual packet trace. As a result, accurate validation requires distinguishing between specification deviations that represent errors from those caused by sniffer uncertainty. At the same time, the sniffer provides new opportunities to manipulate the wireless traffic received by the device and perform more rigorous testing. In collaboration with researchers at Microsoft Research we are exploring ways to exploit sniffers to validate wireless protocols. Read more...
Of all the resources that smartphones manage, human attention is the most precious. While processor speed and core count, memory and storage capacity, and network bandwidth have steadily and sometimes rapidly increased, the number of hours in the day has not. And as users spend an increasing amount of time with their personal computing devices, it is more important than ever that these devices ensure that their time is used effectively. We refer to this as quality of experience (QoE). Read more...
One of the reasons programming mobile systems is so hard is the uncertainty
created by the wide variety of environments a typical app encounters at
runtime. In many cases only post-deployment user testing can determine the
right algorithm to use, the rate at which something should happen, or when an
app should attempt to conserve energy. Programmers should not be forced to
make these choices at development time. But today’s programming languages
leave no way for programmers to express and structure their uncertainty about
runtime conditions, forcing them to adopt ineffective, fragile, and untested
ad-hoc approaches to runtime adaptation. We introduce a new approach based on
structured uncertainty through a new language construct: the maybe
statement.
Read more...
Despite the fact that current smartphone platforms already incorporate energy measurement tools and multiple energy control mechanisms, smartphone battery lifetimes continue to frustrate users. This is because measurements and mechanisms are of limited utility without policies that utilize them to achieve different energy management goals, such as meeting a lifetime target or providing good performance to a user’s favorite apps. To address this problem we are developing Jouler, a policy framework enabling effective and flexible smartphone energy management. Read more...
Operating systems are the masterworks of computer systems—stable, mature, well-designed systems that have evolved for decades to respond to user needs and hardware capabilities. ops-class.org is an online framework based on the Harvard’s OS/161 instruction operating system designed to allow students anywhere to learn to design and program operating systems. Read more...
The 2 billion smartphones deployed worldwide represent the largest distributed system ever built. But while the success of app marketplaces has made large-scale app experimentation possible, smartphones depend on low-level platform and kernel code that is difficult for researchers to experiment with. The over 1 million lines of platform code that power Android devices perform such tasks as determining the features and information provided by the Android application programmer interface (API), managing limited energy, and choosing which available network to use. How effectively the platform performs these tasks has a significant impact on the smartphone’s performance and on the user’s experience, and information exposed to apps by smartphone platforms currently constrains attempts to perform app-based measurement and data collection. PhoneLab is an open testbed facilitating smartphone platform experimentation. Read more...
Energy-constrained devices such as smartphones are integrating multiple hardware components presenting significant performance-efficiency tradeoffs: processors and memory that can scale voltage and frequency to become more efficient as they slow down; multiple radios that can be used interchangeably while also tuning their polling rates and idle timeouts to trade off efficiency for latency or throughput; and screens that can dim or reduce refresh rates to become more efficient while reducing quality. Multiple performance-efficiency knobs create the need for applications to continuously select the right balance of component settings to maintain acceptable performance while saving as much energy as possible. We refer to this ability as power agility. Read more...
As wireless devices continue to proliferate and bandwidth demands continue to grow, it is more important than ever for wireless infrastructures to adaptively allocate limited spectrum to respond to changing demands. Accurate channel assessment requires measurements at both ends of each wireless link, but collecting measurements directly from active clients degrades performance, since measuring and using a link cannot occur simultaneously. To address this challenge, we are developing PocketSniffer, which utilizes passive smartphones to enable wide-area wireless infrastructure monitoring, debugging and reconfiguration. Read more...
Ubiquitous personal vehicles are the ideal platform for deploying city-scale sensor networks, providing available power, good spatial coverage, and predictable quasi-stationary mobility patterns. The challenge is figuring out how to get inside the cars operated by thousands of people in an urban area. We are exploring a novel way of doing so by hijacking personal navigation devices based on discarded smartphones to create a large-scale sensing platform which we call Navjack. Read more...
Smartphone apps are already able to determine a great deal about us through passive observation, and as smartphone usage becomes more pervasive and analytical approaches that fuse data from multiple sensors improve, smartphones may reveal fundamental things about us: the strength of our friendships, the health of our lifestyle, and our level of happiness. With the digital portraits smartphones can paint becoming more clear, we believe it is time to give users more control over their smartphone-derived digital identities. Read more...
When disaster strikes, the smartphone in your pocket could be a powerful ally, helping you locate resources, navigate to safety, assist others, and contact loved ones, all while collecting sensor data to help emergency responders understand the unfolding situation on the ground. But today’s smartphones are prepared to do only one thing well during a disaster: run out of battery. We investigated Android support for a disaster mode allowing smartphones to prepare for and operate effectively during disasters. Read more...
Parking lots present a difficult search problem. Drivers lack the visibility to determine where spots are available, and may spend a non-trivial amount of time searching for a spot. Searching not only generates frustration but also wastes energy and produces harmful carbon emissions. And while several research projects have previously attempted to solve this problem, their solutions include requirements rendering them impractical, such as additional infrastructure, on-vehicle equipment or vehicular networking, or onerous manual user input. In contrast, our solution, which we call PocketParker, requires no additional infrastructure, no vehicle modifications, and no user input, only installation on a small percentage of the millions of smartphones already in use. Read more...
Electronic waste is a growing problem as the rapid pace of technological improvements drives consumer appetites for the latest and greatest devices. Smartphones are already part of this problem, and given the rate of progress in the smartphone technologies, it seems reasonable to expect that consumers will dispose of these devices at rapid rates, spurred on by new features and discounts offered by carriers. Fortunately, the capabilities of smartphones make discarded devices ideal building blocks for many second uses. We have explored reusing the discarded smartphones generated by PhoneLab in multiple ways: as environmental sensors, to create a city-scale sensor network, and as part of personal storage clouds. Read more...
Centralized cloud storage services such as Dropbox have revolutionized the way that users share files and access data across their growing number of devices. But today’s cloud storage options have serious limitations affecting mobile battery-powered smartphones. Many central cloud storage providers require each client to have enough storage for an entire replica, which may not be feasible on smartphones with an order-of-magnitude less storage than laptops and desktops. Centralized cloud storage does not scale as users add more storage and misses the opportunity to harness free space users already have. And centralized cloud storage provides poor support for mobile devices, both failing to leverage natural mobility patterns when distributing data and potentially causing costly mobile data traffic. Read more...