What are some general tips on improving overall performance of an Android phone? I was wondering if anyone could share some general tips on speeding up/ improving performance of your phone.  I have had my droid eris for about a year now and it seems more sluggish than ever.  I know the newer android releases give the phone better feedback but I was wondering besides the OS, what other options do I have to generally speed up my phone or other phones.  Are there some cache's or program info I can clear out?  If I remove some apps will I see an Improvement?  If I restore to factory and restore all my apps will that help?  Are there programs out there that might help speed/clean it up?  What Im looking for is to improve the overall performance of the phone.  Whats some tips I could use to accomplish this?
Leave some empty space in the internal memory. When there is less than 10 MB left in the internal memory, Android can become very sluggish. Leave at least 20 MB. In my experience, low internal memory is often the root cause of sluggishness (and random errors).


Use app2sd as much as possible, especially if you have small internal memory
Uninstall big applications that you do not use much. 
(!) In rooted ROM, you can use pm setInstallLocation 2 trick to force installing applications on SD card (note that not all applications can be safely installed on SD card). 
(!) When system applications are updated, the original version of the applications are not deleted so you can uninstall the update. This takes up valuable space; if you're rooted, you can remove the stock application entirely and reclaim this space. I do not recommended this unless you are already using a Modded ROM since you can no longer use "Factory Reset" to return your system applications to the factory version (at least not without reflashing a fresh stock ROM).

Choose fast applications.


Use Opera Mobile or Mini. The stock browser is a great browser, however it's also quite sluggish (even Google's mobile home page it is sluggish as hell). Opera's touch interface is a bit annoying to use, but it is much snappier than the stock browser.
Choose a fast Home Screen. Some manufacturers equips their phones with pretty, but sluggish home screen. You may want to use a simpler and faster home screen apps. Also, live wallpapers kills snappiness; if you want to use them, use the simpler ones.

Do NOT use Task Killers, especially the automated ones. You should not Force Kill an applications unless you are sure that the application has gone extremely wrong and the application is ignoring a more polite requests to shut down. Force Killing applications may leave dangling resources in system services that cannot be safely cleaned up. Leave the job of killing applications to Application Life Cycle.
You should not need to clean caches, caches are there to speed up applications. If an application's caching causes it to slow down, report that to the developer as a bug. 


Cleaning out cache may temporarily help with #1 (low internal memory), however cleaning cache is only a temporary fix. The application will just generate the cache again, and your memory will fill up again. Some applications allow you to adjust the size of the cache, which is much more useful permanent solution than cleaning out cache. Generally you want to give applications as much cache as possible while still having a decent amount of space in the internal memory.
Applications that have big caches (e.g. maps) should cache to the SD card, file a bug report to the application developer if they don't.
Due to the nature of caching, there are times when cache may become inconsistent and this may confuse the application, possibly causing random crashes, slowness, ANRs, or other random behaviors. This sort of thing is rare, but it does happen. Generally, you should leave the cache alone unless you suspect there are erroneous behaviors that may be caused by bad caches.

Upgrading Android may bring performance updates, however higher Android versions tend to be bigger than the previous ones and may cause #1 (low internal memory). If an upgrade leaves you with much smaller internal memory that you cannot install all of your favorite applications and have some space left, you may want to stay at an older version.


Android 2.2 (Froyo) comes with a JIT compiler (Just In Time Compiler) that will increase CPU-bound programs by up to 5x (in my Spica, JIT raises Linpack's score from ~3 to ~9). Sluggish program is usually I/O bound, but helping with CPU-bound processes helps quite a bit.
Android 2.3 (Gingerbread) have an improved task management, the Application Life cycle will kill applications that causes sluggishness and battery usage. Gingerbread also have concurrent garbage collector, which should reduce random stutters/pauses.

Some applications can slow down when they have a large amount of data or a large number of items to manage. For example, the stock SMS app on the Incredible gets progressively slower as it accumulates more messages. The only way to fix that is either replace the app, delete messages, or archive them off the phone (SMS Backup+ is great for this).


items marked (!) is potentially dangerous