[Nook HD, HD+ Android Development] MossyTC:
Note: I have tested the suggestions in this post on a Nook HD+ using the 0906 build.

If you want to find out if a lower resolution works better for you then change the resolution for a while and see if it makes a difference.

I did quick test using Chrome with a lower resolution and I didn't see a significant difference, but maybe you'd notice fewer lockups if you tried it for a while. In any case a lower resolution is bound to help any app for which the graphics perform poorly because of the HD resolution, so the following may be of use to someone.

Edit: The navigation bar gets screwed up for resolutions lower than 900x1350, but this doesn't affect fullscreen apps, and as long as you get in into portrait mode you can still get to the navigation buttons. In portrait mode lower resolutions the bar is wider than the screen so that the right hand edge (usually empty) is not visible on the screen. In landscape mode the bar does not appear at the bottom of the screen, instead only the very left hand edge (usually blank) of the navigation bar appears in a column at the right hand edge of the screen.

For best results set the height to be 1.5 times the width.

The terminal (e.g. Terminal Emulator for Android) or adb shell command to change resolution is

(run as root, i.e. type "su" and hit enter before running these commands)

wm size WxH

e.g.

wm size 900x1350

To restore the default use

wm size reset

Screen Shift is an app (xda thread, github) that can change your Nook's screen resolution, and optionally can also set the resolution to change automatically based on the current app. So you can configure Screen Shift to set different resolutions for different apps and the resolution will change when you launch an app that is configured to have a custom resolution.

One problem with Screen Shift is that is doesn't always return the screen resolution to the default when you switch tasks from an app that uses a custom resolution, possibly because Screen Shift gets removed from memory when the foreground app requires more RAM. As such it's handy to have a widget to reset the resolution to the default (see below). Another potential problem is that Screen Shift has to be in memory all the time to work (~30MB), though that's probably not a problem for most users.

Another way of changing the resolution is to have a widget for each resolution you want to set, including one to reset the resolution to the default settings. Below I have describe how to create such widgets with $cripter (free) and Tasker (paid).

$cripter

* NEW SCRIPT

* Name your script, e.g. Low Res

* Tick both "Run as root" and "Hide output?"

* Replace the "echo..." line so that the file reads as follows:

#!/system/bin/sh

wm size 900x1350

* Save

* Check that the tickbox to the right of the script name is ticked (if you can't see it, it's not ticked). If it is not ticked long press the script name, choose "Edit", tick both "Run as root" and "Hide output?" again and "Save"

At this point you can test the script by tapping on the script name.

To create a script to reset to the default resolution, go through the same process again, with a different script name, and use the following code:

#!/system/bin/sh

wm size reset

When you add a $cripter widget you'll be presented with a list of your scripts (looks exactly like you just launched the $cripter app). Just click on the name of the script for which you want to create a widget.

Advanced: To create a $cripter widget that changes resolution AND launches an app you'll need to determine the package name and launchable activity name. See here and here.

Then you'll need to add a line of code to launch the app, e.g.

#!/system/bin/sh

wm size 900x1350

am start -n com.android.chrome/com.google.android.apps.chrome.Main

Tasker

To change the resolution to 900x1350

* Create a new task

* Add an action: Code | Run Shell

* The command is

wm size 900x1350

* Tick "Use root"

* Save

To reset the resolution to the default

* Create a new task

* Add an action: Code | Run Shell

* The command is

wm size reset

* Tick "Use root"

* Save

In Tasker to launch an app after changing the resolution just add an action "App | Launch App" and select the app.