Search My Network...

Wednesday, February 23, 2011

Finally, I have an Android!

After all kinds of anticipation for getting myself an Android smartphone, my wife Maria finally helped me out this past Christmas and bought me a Droid X! ;)

Of course, I anticipated getting one ever since the original Droid was announced by Verizon. It's why I named this blog "Widget Droid" and grabbed the WidgetDroid.com domain name (which I hope Google will allow me to mount as the home address for this blog, eventually, since they allow that with Google "Sites").

Anyways, I have had all kinds of fun with it since Maria bought us each one the week before Christmas. I've discovered a great deal of really neat stuff. I've also discovered a whole bunch of "What were they thinking?" type of crap.

I am planning on using this blog to both celebrate the android platform, as well as criticize it for its transgressions. I am hoping the result will be that we are able to make the platform better.

There are some real idiotic things that developers are doing that need to be addressed, as well. And I understand why they happen, they happen because developers are way too busy making their stuff better and miss how others use their devices or how their applications work in the field by real users.

As an example, I think that it is criminal what most applications are doing... they think that they have to be running all of the dang time and therefore even if I force quit ("force stop") an application, it just relaunches itself, immediately. There are too many applications that are doing this.

It is a pathetic excuse for a software developer to assume that any user wants any application running all the time, no matter how vital they think it is. Unless the developer adds a setting for us to configure the app to allow it to run all the time, it should not. Not ever, no matter how important it is.

C'MON, MAN!

There is 16GB for apps on a stock DroidX SDCard and 6GB storage internally. My phone usually only shows around 300 MB of usable memory, and the system is usually using near half of that. After I installed all sorts of neat stuff, I had to go through and uninstall anything that wouldn't behave correctly (anything that would relaunch after a force quit). That was a whole heckuva lot of stuff! I couldn't believe how many great programs were acting like crap, running all the time, slowing down the system, even though they were never needed unless I had just launched them. Some I had never launched, or barely ever used. Some I wanted to, but were persistent memory hogs. Hey guys, there is a very limited amount of RAM here. Get real.

The following are a few examples of apps that should NOT run all the time, and why:
  1. The TV Guide does NOT have to run all of the time, TV Guide! I only need it running when I access it, not 24 hours a day. How many times do you think I don't know what to watch? Even if I did watch a lot of TV, say a couple of hours a day,I would probably be watching my favorite shows as scheduled and would only need to reference the TV Guide once every other day. So why does it stay in memory once I am done with it? Furthermore, why does it relaunch after I have force quit the app? Don't get me wrong, I like the app, Digital TV compression makes it impossible to flip through the channels quickly now (what is up with that, Television industry? That just plain Sucks!). So I love having the TV Guide available through the phone, it's a necessity. But I am now only installing it each and every time I need it, and uninstalling it when I am done. And I do consider myself a videot (a slang term I like to use for videophiles or "addicts of the boob-tube"). C'MON, MAN! Really? Yeah, RIGHT... my wrinkled butt that's a well behaved app.
  2. Twitter. I suppose if you are an extremely active telemarketer spamming all the social networks, you would want Twitter to run all the time. But Twitter was over commercialized from the start. Yes, I would love to have the app on my phone if it would just quit when I am done. Who in his/her right mind wants Twitter running when they aren't using the phone, when they are in a different application, when they are using the phone or when they are listening to music? It just doesn't take that long to load and we all know that Twitter's servers are well over-burdened in the first place. It is a huge app that does nothing good for me when I'm not using it, and it still relaunches itself after a force quit? Why? Because Twitter thinks we are all need to be spammers instead of real people with real lives. C'MON, MAN! Really? Yeah, RIGHT... my wrinkled butt that's good.
  3. Yahoo Mail. Sure, many people want such email programs working all the time, informing them of new messages, keeping them apprised. But the point is, I have always used GMail since Yahoo betrayed my trust and allowed spammers to swamp my inbox full of scams and advertisements; most of the ads being for pornography. I signed-up with Yahoo way back in maybe 1995 when I was young and dumb and didn't understand anything about internet security and all the spammers grabbed my email address from the usenet groups I enjoyed frequenting. Since then, I am deluged with spam. The username itself is from when I was less mature and they don't allow me to change it without wiping my account. But my point is that although I do want to check it from time to time, I don't want to be annoyed with all the constant email updates because it is almost all spam. Or if I used that address for work, I would only want to access it during times when I am working, at my willingness to do so. Being updated constantly is just adding all sorts of noise to my world, even if I have notifications silenced. It still updates. We have to be aware that technology is often a distraction and behave appropriately. You would think that Yahoo would understand this? No, they have to be the distraction that I wind-up shunning? C'MON, MAN! Really? Yeah, RIGHT. This is irresponsible behavior by a tech giant that should know better. It should want my attention, not continue to push me away.
  4. Quickoffice is a free app that consumes well over 5MB of my memory even though I've never used it beyond checking it out after installing. It refuses to quit and I am anxious to find a replacement. Once uninstalled how useful will it be to me? Absolutely useless and the developer will lose market share in a hotly contested space for word processing and document management. C'MON, MAN! Really? Yeah, RIGHT. There are no excuses!
Those are just the ones off the top of head because I had just uninstalled them. They are among at least 2 dozen other android 2 applications that just don't cut the mustard. Heck, they fall so short that I personally perceive them as crap applications.

Not every application acts persistent enough to run all the time like this and there are responsible applications out there, thanks to alert & considerate developers. But I only have one example at the moment:
  1. Kruff's Password Safe & Password Safe Lite. These are the best two password safes on the android market. Of course, this is also a feature of it's security. But once you back out from the home screen of the program, it will ask you to click again to assure that you want to exit the application. When it quits, it will release its memory, as almost every single application should. Both of these programs are fine examples of how a Droid app should behave. You can press the home key to get to another app to look something up, and as long as you don't take longer than configured in the settings, once you return and renter the proper password you will arive exactly where you left off in that app. As it should be.
Unfortunately, there aren't many examples of programs that are so well behaved. I cannot figure out why...
  1. UPS Mobile works well, once you back out of it, it asks you if you really want to exit. Still, upon exiting, it remains resident in memory. Luckily, a Task Killer or a Force Quit works well on it.
  2. The AIM & ICQ messengers almost get it right. Obviously, we want our "smart" phones to "multitask" so that we can get to other apps in a hurry and get back to what we were doing before, like chatting with a friend and grabbing a URL for him from somewhere, and then pasting it into a chat. So, upon backing out of the app, the app remains live (unless force quit), so that such things can be accomplished. But in the menu there is an option to "Sign Out". Upon signing out and backing out of the app, these apps both still remain in memory. At least they will stay shut down after force quitting them or using an App Killer, and they won't relaunch again thereafter, or upon a boot-up.
  3. The Silver Edit code editor has the option to Exit in the menu, or it will ask if you want to exit when you hit the back key. Remember that you can leave the app while leaving it running when you hit the Home key, as any android app should do. So why doesn't the menu's Exit selection release the app from memory? Why doesn't the Back key exit and release the program from memory when you are sitting at its home page, especially when the Home key leaves the application to go to the home screen while leaving it in memory? Has Google missed something? I think so. These are UI issues and unfortunately, Google's android is plagued with many such goofs.
  4. When you exit SBMX (Autodesk's SketchBook Mobile eXpress) you simply press the back key and the app asks you if you want to exit, exit & save your work, or cancel the act altogether. That's great, but it still remains in memory.
It's obvious that we have to do some inconvenient things in the name of what, laziness in development? We either have to force quit nearly every app after using it, reboot our phone once in a while (and I suggest that we might have to do that more than the once-a-day that Google recommends we have to do it, if we are avid android users), or keep an "App Killer" or "Task Killer" running in the background and poke it often (after configuring it to allow the few programs we need to run in the background to do so).

I am sure that Google will defend its nonsensible UI steadfastly, as it is not like them to make mistakes in design, and this is especially embarassing in terms of how a convenient and usable UI should present itself. Still, the problem is not completely in the navigation. It is in the lack of vision to not allow applications to terminate normally. And this is both the fault of the platform and the application developer him or herself.

If Google has gone Microsoft, I imagine that Google's answer may just be to throw more active memory at the problem and ship new versions with more RAM, but that doesn't address the real problem which is still a complete and utter design flaw.

When should an app relaunch upon force-quit?

There are very few applications that should run all the time. The bulk of these came on your phone as a part of the android system. Obviously, there is the Android OS and its required system files. But unless you are a developer for the OS itself, there are very, very few third party applications that should always run. That list is very short...
  1. Dialer App
  2. Contacts App
  3. Calendar
  4. Alarm
  5. Blacklist
  6. Caller ID
  7. Maps
  8. Weather
  9. (An active) Live Wallpaper
  10. App/Task Killer
  11. Antivirus
  12. Antispam
  13. Sync Service
  14. Network Connection Manager
  15. Updater
  16. Input Devices/Gizmo Apps
  17. Home/Skin/Folder/App/Icon Managers/Organizers
  18. Widgets
Every other application in the android app world should ALWAYS include an option in the settings to remain persistent in memory as an option and NEVER, EVER continue running after a force quit unless it is a vital system level task that is required to run in the backround. Even the stock Google android Calculator doesn't quit after backing out of the application, but at least it doesn't relaunch upon a force quit or boot-up. No application developer should EVER make the assumption that his/her program is vital to the operation of a smart phone unless they can handily prove that would be the case for absolutely everyone who installs it and no one would ever uninstall that app because it remained persistent in memory. Not ever.

Oh, and one more thing... no application should ever run in memory fresh after installing until the user has accessed it at least one time.

C'MON Google! C'MON App Developer Man! Get real.

3 comments:

  1. You are slightly misunderstanding the Android app lifecycle.

    The operating system is responsible for closing tasks and will do this when it needs the memory. This can have the appearance of many apps running in memory but they are in fact just cached processes that are consuming little or no resources.

    The exception to this are services but they are usually running to perform specific tasks.

    http://androidspin.com/2010/05/25/why-you-dont-need-a-task-killer-app-with-android/

    ReplyDelete
  2. Ah....

    Well, you heard it from one of the best developers in the industry, folks, right here. I had it wrong, but Kuffs corrected me.

    You can see how its misleading though, right kuffs?

    Very interesting. Thanks again for all your help!

    -Doug

    ReplyDelete
  3. Although I understand and accept your explanation, and you are correct that I did misunderstand situation, these apps are still acting as resource hogs and often do slow down system.

    Providing a simple app shutdown, exit, totally quit, leave system memory. button... offers the simplest possible solution.

    ReplyDelete