Screebl User Instructions Print E-mail

Screebl Overview

What is Screebl?

Screebl is an application that was written to do exactly one thing:  keep my phone's screen from locking (turning off) when I'm using it. 

I loved my T-Mobile G1 when I got it, with a few very annoying exceptions.  Most of all I hated the short battery life, so I did everything that I could to increase it.  This included dropping the screen timeout as low as it could go: 15 seconds.  For those of you that have done this in the interest of conserving battery, you know that the result is repetetive screen timeouts whenever you're doing something that doesn't involve touching the screen.  Things like looking at or showing someone a picture, watching a web page load over a slow connection, reading a long email, etc.  I disliked the interruptions enough that I usually ended up raising the timeout back to a higher value, and that wasn't good for battery life.

It occured to me one day that I always held the phone in the same position when using it.  This observation was the basis for Screebl.  Screebl is a background service that monitors the phone's orientation, and based on that orientation decides when to allow the phone's power-saving features to operate.

How Can Screebl Extend My Phone's Battery Life?

It's simple really.  Screebl allows you to set your phone's screen timeout to the lowest possible value:  15 seconds.  With Screebl installed, you don't have to worry about the annoying side-effect of doing this -- Screebl keeps your screen on!  Set your phone down, however, and one of your phone's most power-hungry components (the screen) will quickly turn off.   Of course Screebl requires some power to run in the background, but the net savings of lowering your screen timeout from an average of, let's say one minute, to a much lower 15 seconds results in a net power savings.  Plus, you don't have those annoying screen timeouts!

It's important to note that phones differ wildly on power management, and consequently your power-savings results will be different from one device to another.  Your usage patterns will also make a difference. 

One interesting factor that I've noticed is that phones without a keyboard tend to offer better power savings opportunity, since these phones operate with the accelerometers on 100% of the time before Screebl enters the picture.  They use orientation (rather than opening of a physical keyboard) as the cue for switching from portrait to landscape mode.  Consequently, Screebl offers little in the way of overhead beyond what the phone is already generating normally from accelerometer usage.

How Do I Download and Install Screebl?

Screebl is available on the Android Market.  If you are viewing this document on your Android device, you can install it by clicking on the following URL:  market://search/?q=pname:com.keyes.screebl.lite.  If you're interested in reading more about Screebl or other projects from Keyes Labs, visit keyeslabs.com.

Where Did You Come Up With Such a Stupid Name?

It comes from the vilest unix tradition of choosing shortened easy-to-type-but-hard-to-remember command names that are less than eight chars long.   I chose a short name as part of a prototype project that I whipped up to prove a point to a co-workier, and that name has kind of gotten drug along as the prototype has matured into a product.  As of right now, it's grown on me and I like it, not to mention it has too much momentum at this point to change.  It's origin is:
[Scree]n + [bl]ank == Screebl

Screebl Permissions

The Screebl application requests a fair number of permissions.  I've been asked a number of times what all of these permissions are needed for.  Here is a list of the permissions that Screebl requires, and the reasons for each of them.

  • android.permission.WAKE_LOCK - Screebl uses this permission to keep the screen on when the phone is in a recognized orientation range.
  • android.permission.INTERNET - This permission is needed for two things.  First, it is needed to stream the introductory video from YouTube (that requires an internet connection).  Second, it is needed to send anonymous remote debug information about Screebl functionality to back-end servers.  The user has the option to turn remote debugging off in Screebl's system setttings.  I recently added remote debug functionality to help me deal with the increasing number of users and phone versions.  I can now get reports of errors and stack traces when they happen, which has really helped to improve the quality of Screebl.
  • android.permission.RECEIVE_BOOT_COMPLETED - This permission is required for Screebl to be started when the phone boots up.
  • android.permission.ACCESS_WIFI_STATE - Screebl's video player uses an algorithm for determining whether the phone is connected to a high speed data network.  This is used to determine whether to stream a high- or low-quality video to the user.  Part of that algorithm is determining if the phone is connected to a WiFi network.
  • android.permission.ACCESS_COARSE_LOCATION - This information is used to track anonymous geographic locations of installations of Screebl at the country level.  This information helps me determine where to spend my limited resources on localization.  For example, it lets me answer questions like "Are there more users of Screebl in Germany or Italy?"  This functionality may also be disabled using the "Remote Debugging" system setting.
  • android.permission.WRITE_SETTINGS - When it is enabled, Screebl changes the screen timeout system setting to 15 second.  It also records the original settings so that it can be set back to your preference when Screebl is shut down.
  • android.permission.KEYGUARD - Screebl inspects the state of the keyguard (lock screen) in order to disable the Screebl background service when the phone is locked.

 

Screebl Settings

General Configuration

Enable at Power-on

If you wish Screebl to start automatically when your phone is powered on, select this option.  Android does not fire the system boot intent until after the entire system is up and running, so you may not see that friendly green icon in the notification bar for a few moments after your phone boots, but be patient!

Generate Notifications

You can disable the small smart phone icon in the notification bar if you find it annoying.  

Disable When Docked

Screebl can be configured to turn itself off when your phone is inserted into a dock.  Some users want their phone's screen to turn off when charging (this will result in faster charging).  Others want the screen to remain on (assuming that the orientation is within a configured range) so that they can view their music player, see GPS navigation, etc.

In-Call Behavior

Screebl can be configured to behave differently when a call is active on your phone.  The following three options are available:

  • ENABLED - The screen will be held on, regardless of orientation, during the call.  This works very well for users that have a proximity sensor in their phone that turns the screen off when the phone is held on the face, but want the screen on when they take the phone away from their face.
  • DISABLED AT EAR - This option disables Screebl when the phone is being held to the face, allowing the phone's default screen management capabilities to handle the screen.  This usually results in the screen being locked to avoid spurious key presses from your face.  This uses an orientation approximation to determine when the phone is being held to your face, so it will only work when you're sitting or standing (not laying in your bed, on the couch, or passed out in the yard).
  • DISABLED - With this option selected, Screebl will always disable itself completely during a call.  If you're happy with your phone's in-call screen management, choose this option to get Screebl out of the way.
Sample Frequency

This setting determines how often Screebl checks the orientation of the phone.   The options are slow, normal and fast.  Slow will put the lowest burden on the phone in terms of processing, but will also make Screebl less responsiveto your movements.  Experiment until you find the right setting for you.

Brightness Level

This setting determinese how bright Screebl attempts to keep the screen when you are within a configured orientation range.  

  • Full Brightness & Keyboard - keep the screen on at the maximum brightness allowed by system settings.  Also keep the keyboard lit.  Note that some devices seem to be a bit flaky about keeping the keyboard lit.
  • Full Brightness - keep the screen on at the maximum brightness allowed by system settings.
  • Low Brightness -keep the screen on, but at minimum brightness.

Orientation Ranges

Portrait & Landscape Orientation

Screebl gives very detailed control over the ranges in which the screen will be kept on.  By default, the screen is kept on as long as the top of the phone is tilted between five degrees above lying flat on the table, and ninety degrees.  If these angles are bothersome in any way, you can adjust them to somethingScreebl Orientation Range Configuration

that makes sense for you.  You can not adjust the lower bound below five degrees, as this would make it impossible to detect when the phone had been layed down onto a flat surface.

There are separate controls for portrait versus landscape orientations of the phone, as interaction patterns are often different for each.

Note that if you often use your phone while looking up at it, make sure that you read about the range inversion setting described below.

 

 

 

 

 

 

 

Range Inversion

In most cases users of smart phones tend to interact with them while sitting and looking down, or standing and looking out at the device.  However, it is also common for phone users to use phones wihle looking up at the device, such as when lying in bed.  If you wish your configured ranges to work in these "inverted" scenarios, simply enable this setting.  It is turned on by default.

Axis Variance

Generally users tend to hold and rotate their phones within the plane formed by two standard axis in 3-D space.  Said another way, generally a user tends to vary only one of pitch, yaw, or roll at a time.  Some of us hold our phones at less structured angles, however.  This is one of the most frequent complaints that I see about Screebl -- "I don't hold the phone straight up-and-down, and so this program doesn't work for me".  The Axis Variance setting allows you to control how closely you must be aligned with planes formed between the X, Y, and Z axis in order to keep the screen on.  

To see the affect of this setting, hold the phone out in front of you with the screen facing you and rotate to the left or right.   A setting of tight will cause Screebl to indicate that you are out of the orientation range when you have rotated only a small amount.  A setting of loose will allow you to rotate a significant amount and still be within a recognized orientation range.

Stillness Configuration

Enable Stillness Timeout

With an application like Screebl, there is always the chance that you could set your phone down, and have it land  within one of the configured orientation ranges.  The result of this would be that the screen would be kept on, and your battery could potentially be drained over time.  If this is a concern, you can enable stillness detection to help resolve the problem.  Still detection will allow Screebl to release its lock on the screen (allowing it to time out and go dark) if the phone hasn't been moved within a specified period of time.

There are restrictions to how well this can work on the Android platform, as there is no way for a background service to detect when the user is interacting with the input devices of the phone.  The reseult of this is that if you're holding your phone relatively still while reading an email and scrolling around on the screen, Screebl may detect the lack of movement as a stillness timeout and disable itself.  To help alleviate this problem, Screebl will give you a 30 second warning before disabling the service due to stillness.  You will see the green icon turn red.  If you simply move the phone slightly during that warning period, the icon will turn green again and Screebl will reset the stillness timer.

By default, stillness detection is turned off.

Stillness Timeout

The amount of time that the phone must be still before the user will be warned of pending timeout and ultimately Screebl will be disabled.  

Stillness Detection Sensitivity

This setting controls how sensitive Screebl is to small movements in its detection of stillness

  • Low - small movements are ignored, phone must be moved significantly to before Screebl will detect activity
  • Medium -  normal movement keeps timeout from triggering
  • High - tiny movement detected

Debug

Anonymous Debugging

Managing an application like Screebl is a very difficult task.  Each Android-powered phone on the market has slightly differing hardware and different versions of the operating system, not to mention different preferred use cases by users.  Screebl Anonymous Debugging allows for submission of debug information to help with the management of all of this.  For example, whenever an uncaught exception is raised in the application, that exception is automatically submitted for analysis.  All of this is done anonymously, and we would strongly encourage you to leave this option on as it is hugely helpful for the continued improvement of Screebl.  If, however, this kind of thing makes you nervous, you can simply disable this option and no anonymous remote debugging will be performed.  

Other Stuff

The Screebl Video Feed - Keep in Touch!

One of the Screebl menu options is "Screebl Video".  This menu option plays the latest video from the Screebl YouTube video channel.  There will be a notification on the main Screebl activity screen and in the notification bar when new video content is availablle.  Watch for more entertaining videos from the makers of Screebl!

Getting Support for Screebl

Send comments or questions to keyesdav at gmail dot com.

Version History

Version 2.0.0 (Estimated release date 2009/12/31, first pay version?)
  • Native translations of APAC languages, including Chinese, Japanese, and Korean
  • Further reduction of sensor usage, should improve Screebl power consumption even more
  • Integration with Locale
  • Configuration of notification look and feel (icon image and color)

Version 1.8.x

  • Spanish / Dutch translations added
  • Add in-call behavior configuration 
  • Allow configurable disabling of Screebl when phone is docked
Version 1.7.x
  • Make Screebl monitoring service run in a foreground process to eliminate killing of the service by Android
  • Remote debugging added.  Many defects found and fixed from this addition!
Version 1.5.x
  • Native translation of French and German.
  • Allow Screebl to work when the phone is inverted.  For example, Screebl will maintain the screen when user laying on their back looking up at the phone.
  • Other defect fixes as found.
 Version 1.1.0
  • Released very poor attempt at German and French localizations.
  • Fixed major design flaw in that Screebl did not release accelerometer when the screen turned off.  Lots of power was being wasted monitoring orientation even though the screen was already blank!  Now Orientation sensor is released by Screebl before screen turns off, and subscribed to again when the screen turns back on.  
Version 1.0.1 & 1.0.2 - Minor Bug Fixes
Version 1.0.0 - Initial Release