several changes...including a working reboot function for 5.0os
several changes...including a working reboot function for 5.0os
Calculates average battery discharge rate over time.
Discharge rate is resettable, allowing you to detect a failing battery, or to determine how operating system updates or third party applications affect battery usage.
Discharge rate resets automatically upon application installation and when the phone is charged.
Calculates change in free application memory since the phone was last started, allowing you to detect memory leaks.
Customizable Dynamic Home Screen Icons
Choose a single icon or rotate between multiple icons at a selectable rate.
Icons change color to indicate status.
http://www.meterberry.com/icon_battery.gif http://www.meterberry.com/icon_free_mem.gif http://www.meterberry.com/icon_thermometer.gif
Customizable Battery and Memory Notifications
Selectable notification thresholds.
Notification popup appears in any application. MeterBerry doesn't need to be open.
Open MeterBerry: Snoozes and opens MeterBerry.
Snooze: Closes the notification until the next log update.
Dismiss: Closes the notification and doesn't notify you again.
A dismissed battery notification will be re-enabled if the phone is restarted, the battery notification options are changed, the battery level rises above the notification threshold (from a charge), or after 24 hours.
A dismissed memory notification will be re-enabled if the phone is restarted, the memory notification options are changed, or after 24 hours.
Reset Device (Memory Notification Only): Performs a soft reset, equivalent to a battery pull.
Recover Memory (Memory Notification Only): Initiates the Java garbage collector to free up application memory.
MeterBerry's home screen icon indicates when a notification is active or snoozing.
And so does MeterBerry's status screen. A snoozing notification can be dismissed from the status screen.
Customize MeterBerry's notification sounds and other behavior using the phone's Profiles application.
Three log slots can be set to any combination of Battery, Memory, Signal Strength, or Temperature log.
Logs are accessed through main screen's menu. Menu is dynamic based on currently enabled log(s).
http://www.meterberry.com/log_menu_1.png http://www.meterberry.com/log_menu_2.png http://www.meterberry.com/log_menu_3.png
Battery log displays change in battery level over time, when the battery discharge rate was reset, when the battery is fully charged, and the battery level every time the device is restarted.
When battery is full, logging stops. Logging resumes when phone is unplugged from the charger.
Memory log displays change in free application memory over time, and the initial free application memory every time the device is restarted.
Signal Strength log displays change in signal strength over time.
Signal Strength can be displayed in bars or dBm.
Temperature log displays change in device temperature over time.
Temperature can be displayed in °F or °C.
Log screens support multi-touch - swipe left or right to cycle through currently enabled logs.
Log update rate is customizable.
Soft Reset (Battery Pull) Functionality
Simulates a battery pull.
Soft resets can be performed on-demand...
...or scheduled to run daily at a specific time.
MeterBerry is even smart enough not to perform a scheduled reset while you're on the phone.
Intiate the Java garbage collector to free up application memory on-demand...
...when you receive a low memory notification...
...or hourly when your phone is idle.
Event Log Management
View the system event log to troubleshoot application or operating system problems.
Clear the event log hourly when your phone is idle to free up application memory.
Frequently Asked Questions
Q: How do I upgrade to a new version of MeterBerry?
A: Log in to the store where you purchased MeterBerry and you will see a list of applications you've purchased in the past. You will be able to send yourself an over-the-air download link for any new versions via SMS or e-mail.
Q: I got a notification that a new version of MeterBerry was available but when I go to the over-the-air download link, the version number hasn't changed?
A: Refresh the page by pressing the BlackBerry key and selecting "Refresh".
Q: What exactly is "application memory"? How does it relate to the other memory on the Storm?
A: The Blackberry Storm has 1 GB of internal flash, or device memory. 128 MB of that flash is allocated as application space, the other 872 MB is allocated as data space. The Storm also has 192 MB of traditional RAM. These memory spaces are used as follows:
1. When they are running, the operating system and applications both use the 192 MB of traditional RAM like your computer does. Temporary, volatile storage.
2. All applications are stored in the application space. Whatever room is free in the application space is used by the operating system for paging when your phone is running, similar to what your computer does with its hard drive and swap file. Applications can only be stored and run from the application space.
3. The data space is used for an internal file system, as well as storage of things like pictures, ring tones, etc. You cannot store and run applications from the data space.
When you go to Options -> Memory, the "Application Memory" entry refers to the free space in the application block of the internal flash.
So, when you install applications the free space in the application block decreases. And because the application block is also used for paging, the free space fluctuates over time as you use your phone.
RIM most likely doesn't display the free RAM under Options -> Memory is because the RAM is used by the operating system in addition to applications. It wildly fluctuates up and down as the phone is running, and doesn't give you any real measure of what's going on. But if an application has a true memory leak as is described above, you would be able to detect it by looking at the free application memory. And of course your free application memory also tells you how much room you have left for applications.
Q: Is it possible to display the memory usage of individual applications?
A: No. RIM does not provide an API to determine the memory usage of individual applications.
Q: How do I know if I have a memory leak?
A: Java uses automatic garbage collection to manage memory. Applications create memory objects, and the Java garbage collector recovers memory objects that are no longer in use. The garbage collector runs only when it is convenient, usually when the handheld is idle or in an emergency when memory is needed and none is available. Because of this, it is typical for the memory objects created by an application to not be recovered for many minutes or even hours.
So, it is completely normal for the device's free application memory to fluctuate up and down.
It is the responsibility of applications to remove references to memory objects they no longer need. This signals to the garbage collector that the memory used by those objects can be recovered and used for something else. A "memory leak" in the context of a Blackberry device can occur when an application repeatedly creates memory objects and doesn't remove references to those objects when it no longer needs them.
If your free memory drops a certain amount after you restart your phone, this does not automatically mean you have a memory leak. This is completely normal as the Blackberry operating system caches things in application memory, just like your computer does with its RAM. However, if your free memory dwindles to a very low value and never increases unless you restart your phone, you probably do have a true memory leak.
Q: How can I use MeterBerry to determine if an application has a memory leak?
A: MeterBerry provides several facilities to do this. The easiest way is to setup a low memory notification, open the application you suspect is leaking memory, and then wait and see if the notification fires. Alternatively, you can observe the change in free application memory since startup on the status screen, or observe how the memory log changes over time.
Q: What does the Recover Memory button do? Why does it sometimes make my free memory decrease?
The Recover Memory button initiates the garbage collector programmatically. This corresponds with "System.GC() invocation" in the table below. As the table reveals, garbage collection is rather complex, and there is much more involved in the process than simply increasing the amount of free application memory. Initiating the garbage collector programmatically has different effects for different users depending on operating system version, third party applications, and settings. Some users benefit from doing so and some do not.
If the amount of free application memory decreases after pressing the Recover Memory button, it most likely is due to the "auto-commit" operation in the table below. This takes objects that were going to be moved from RAM to flash some time in the future and moves them immediately. The benefit of doing so is that this makes more RAM available for use by the system, which is much faster than flash. Remember that application memory is flash.
Also, even if the amount of free application memory stays the same after the garbage collector us run, it still most likely freed up RAM behind the scenes which should make the phone operate more smoothly.
Note: MeterBerry does not currently display RAM statistics because the amount of free RAM fluctuates up and down much more significantly than application memory as the phone is running, and doesn't give any real measure of what is going on in the system.
Note: It is recommended that the Recover Memory feature is used sparingly, as initiating the garbage collector excessively will not provide any added benefit and only consume battery life.
Thanks Cat and Randy :fing02: sounds like quite a few great additions
And just when I was getting over my addiction. Bam, slapped in the face with a major upgrade. You know I'm going to have to download it and start all over again :)
Great post Randy! That's extremely helpful, thanks! +1 for you!!