android internals and memory/processor constraints?

By : Jared

I'm considering creating a screen reader for Android. My questions are as follows. One how much of the internals of Android are exposed through the Java API? I'm looking for things such as system wide notification when text is displayed, notification of a new application being launched, etc. I'd rather not have to modify the kernel source and only allow my app to run on a developer phone. Two, how much processor and memory are left over on the G1 assuming no applications running? Three assuming average use of applications on the phone how much processor and memory are left?
More info
I'm aware that applications should not be designed to work on a specific phone. I picked the G1 because it's the most popular phone currently running Android that I know of. I am looking for lower end system specs that my program would have to fit in, it may run great on a netbook with Android installed but use to much memory and processor to run on most Android handsets.
There are now two screen reader projects that use Android 1.6, they can be found at

By : Jared


(1) Depends on what you are looking for. You better check for yourself. I am not ware of any assistive technologies in place, but I wasn't looking for them either.

Regarding the two specific capabilities you asked for: (a) Notifications are part of the API. (b) I am not aware that you can be notified on applications being started.

(2/3) I don't the general amount of RAM that is available for apps, but I can give you an practical answer. Your app's process will be killed if it tries to grab more than 16MB. I don't know the exact clock speed, but on the android-dev list it was mentioned that the G1 doesn't run at full speed. The rationale behind it is that among other things more speed would run down the battery much more quickly.

Just another practical matter regarding this question. If you want to discuss the constraints go to the android-dev list.

I had a similar error once in a form that tried to make a database call during constructor initialization.

Unfortunately, Component.DesignMode doesn't get set until after the constructor finishes!

By : Joshua

This video can help you solving your question :)
By: admin