Related
Hi,
I noticed that OS constantly unloads my applications.
Say, I visit some page using IE, then switch to another application, then switch back - it is usually at the same page, but, probably depending on idle time, it sporadically gets closed.
That said, when I go to IE again, it starts afresh on its initial page and I must reload my page again. Needless to say, in most cases this is unacceptable. (extra traffic, so it costs $$, also GPRS could become unavailable etc :x )
How do I PREVENT this behaviour?
Not only IE suffers, any application! Sporadically exits despite of fact there are tons of free memory and I would better free resources with another way than just closing what is required for me.
I have elder device with PocketPC 3.0 (Cassiopeia E-125) and it does NOT behave in such a way. Does not close even it has 4times less memory! Now I understand how nice it is.
While this problem persists, I forced to have both devices with me.
Please help me solving this!
Vadim.
I've noticed the same behavior randomly also. I don't have a fix, but you're not alone.
What ROM version are you using? There was an issue with the earlier ROMS in that there were too many programs running and when you launched another program the OS would terminate a background program to provide the necesssary process space.
The newer ROMs have solved this problem, but CheckNotify and ClearNotify (search the forum) will help with the earlier ROMs.
This is an old problem, related to the number of running processes.
Consult this thread
http://www.ppcw.net/?itemid=1645
which will show you how to solve it. Also the newer roms cut down on the number of processes at startup, which helps.
Surur
Mine is much more random than that described. Sometimes I can have a half dozen apps open with no problem, and sometimes a single app will close itself while I work in the phone or the Today screen.
Carlos said:
Mine is much more random than that described. Sometimes I can have a half dozen apps open with no problem, and sometimes a single app will close itself while I work in the phone or the Today screen.
Click to expand...
Click to collapse
Don't forget that we are talking processes, not appications, here. One app. may have many processes and multiple app's may use the same common processes. Therefore, launching one application can generate a number of new processes and that can push you over the limit (e.g. ActiveSync, which launches three or four I recall), so something gets nuked.
I understand, and was looking for a pattern, but there is none. In fact, it seems reversed, as it happens more often while I'm just out and about and less frequenty while the device is in the cradle. Very often it happens after a fresh boot with a single app running.
I may look at it more closely with a process viewer. It's not bugging me enough to make it a priority.
Thank you all for providing many help!
surur said:
This is an old problem, related to the number of running processes.
Consult this thread
http://www.ppcw.net/?itemid=1645
which will show you how to solve it. Also the newer roms cut down on the number of processes at startup, which helps.
Click to expand...
Click to collapse
That explains it all, many fruitful comments, and a prove that there could be no fix but just temporary solutions to reduce a problem a bit.
It is a bit larger problem in my case, because I use special sotware to support Russian.
Too bad MS can't recognize and fix such a big design mistakes.
Hi,
I have noticed that my Nexus' performance starts to drop after some hours on: going from one home screen to the other becomes quite choppy, and so do the animations of opening an application.
Have you guys noticed that too, or is it just me?
It was like this for me until I bought Advanced Task Manager. I have it auto end applications that I don't need to run all the time. It runs much better now.
The issue is RAM. The kernel that shipped with the Nexus One doesn't support the full 512MB of RAM. However, CyanogenMod 5.0-beta4 does and the difference in speed is amazing. With 26 apps running I have 167MB free atm.
But like stickerbob said, you should have Advanced Task Manager at the least.
Deathwish238 said:
The issue is RAM. The kernel that shipped with the Nexus One doesn't support the full 512MB of RAM. However, CyanogenMod 5.0-beta4 does and the difference in speed is amazing. With 26 apps running I have 167MB free atm.
Click to expand...
Click to collapse
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
Yep but some people just don't get that, ah well...
efeltee said:
Yep but some people just don't get that, ah well...
Click to expand...
Click to collapse
Well, that doesn't really explain the performance drops. Does the phone run out of RAM, or not? It seems to be snappy again after a reboot, so there must be something.
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
That is what I have read, but it did not work for me. I downloaded the free version of advanced task man to troubleshoot the problem and found that most of my apps were still running in the background even when my ram was down to 10-20mb. That is about when the phone would start acting up on me. When I ended the tasks the phone would act normal again. So I just broke down and bought the app for $.99. If you do this make sure you exclude some system apps, if you don't your phone could freeze while it is trying to restart them.
10-20mb free is normal operation. This is how the OS is designed to operate, linux and even windows7 now also operate in this fashion (show very little 'free' memory). there is no performance problem with low free memory, purely a misconception on modern memory managment. Whats going on is that you have a buggy application, which is why 'killing' apps looks to be resolving your issue. You're only resolving the symptom, not the problem.
I never kill apps and have had weeks of uptime without any slow down. This gets rehashed over and over again by people claiming task killers help performance. The reality is they do nothing for performance, only nice to have around for that great once and a while an app runs away from you, or in troubleshooting if you have a poorly written app. It should not be anyones habit to do a kill all on a regular basis, if it were the OS would do this automatically.
btw, compcache has been known to cause this slowdown over time issue, it has since been removed from most of the popular custom baked rom's.
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
Yes it does...
bofslime said:
10-20mb free is normal operation. This is how the OS is designed to operate, linux and even windows7 now also operate in this fashion (show very little 'free' memory). there is no performance problem with low free memory, purely a misconception on modern memory managment. Whats going on is that you have a buggy application, which is why 'killing' apps looks to be resolving your issue. You're only resolving the symptom, not the problem.
I never kill apps and have had weeks of uptime without any slow down. This gets rehashed over and over again by people claiming task killers help performance. The reality is they do nothing for performance, only nice to have around for that great once and a while an app runs away from you, or in troubleshooting if you have a poorly written app. It should not be anyones habit to do a kill all on a regular basis, if it were the OS would do this automatically.
btw, compcache has been known to cause this slowdown over time issue, it has since been removed from most of the popular custom baked rom's.
Click to expand...
Click to collapse
Well then there must be many buggy applications. I had to rely on Advanced Task Manager to keep my G1 running acceptably fast. The N1 slows down without its full RAM available so I needed to use Advanced Task Manager then too.
If the RAM is not the issue, why does having the extra 200 MB available make the phone run much smoother with 20+ apps running?
frandavid100 said:
I don't get it. Isn't Android supposed to kill unused apps when it's running out of RAM?
Click to expand...
Click to collapse
well technically no, it reallocates what is being used and frees up memory for programs currently running but non the less the OS manages itself
personally i close apps that i do not have going with the task manager. i seem to notice a performance difference if i do it manually, it takes 2-3 extra taps for peace of mind rather than relying on the OS to figure it out for me...
Deathwish238 said:
The issue is RAM. The kernel that shipped with the Nexus One doesn't support the full 512MB of RAM. However, CyanogenMod 5.0-beta4 does and the difference in speed is amazing. With 26 apps running I have 167MB free atm.
But like stickerbob said, you should have Advanced Task Manager at the least.
Click to expand...
Click to collapse
The speed benefits of CM's ROM isn't due to the HIGHMEM supporting kernel, but rather other tweeks he's done with his build. Extra ram is nice, but there is certainly no limitation with the 213 or so userspace memory that is available now. Android itself does not even use this memory, it has its own reserved memory space, userspace memory is only for applications to be loaded in. And there is speed for keeping as much of your applications loaded in memory as possible.
swetland said:
Roughly 220MB is available to userspace in the shipping build (ERD79).
Quite a lot of memory is dedicated to the radio firmware (41MB), dsp firmware (32MB), display surfaces (32MB), gpu (3MB), camera (8MB), a/v buffers (41MB), and dsp buffers. Much of this needs to be set aside for these specific tasks due to hardware requirements of very large physically contiguous buffers which can be difficult or impossible to obtain after boot once the physical memory space gets fragmented.
The big limitation though is that the Linux kernel needs to do a 1:1 physical:virtual map of general purpose memory used by the kernel and userspace (which excludes the special purpose stuff described above). This eats into the available kernel virtual address space, which is also needed for cross process shared memory used by the binder, etc. Run out of virtual memory and things get unhappy.
In 2.6.32, HIGHMEM support for ARM will allow us to avoid this requirement for a 1:1 mapping which will allow us to increase memory available to userspace without running the system out of virtual memory adddress space.
Click to expand...
Click to collapse
The speed difference I'm talking about is what I experienced when running CM beta3 and CM beta3 w/ highmem. The difference was huge. I assumed the change was mainly attributed to the double RAM available.
Even now with the full RAM available, things run faster when I end the other apps running. It's not necessary, but the difference is there.
It would be nice to be able to pinpoint which apps caused slow downs.
The best way I've seen this put I found in a thread where someone wanted to disable apps from auto-starting entirely. I saved it, because I though it was very elegant way to explain androids mem management.
equid0x said:
I just wanted to chime in here about the whole apps on startup thing....
Android has the concept of services which are programs that typically have a frontend piece, like a GUI for IM that you would normally use, that only runs when you are using it, and a background piece, the service, which is constantly running to keep you connected to your IM servers. This will account for some portion of the things you see running on startup, depending on how many apps you have installed, and whether or not they were written to run as a service.
There are also some, usually older, android programs that existed before "services" were really used.. that basically use triggers to keep reloading themselves. These programs are less efficient, and probably should be re-written to use the official service method of operation, caveat emptor.
Android also makes several modifications to the stock process handling that comes with any Linux kernel, which is already radically different from what most would be used to seeing on Windows as it is. Android attempts to keep commonly used applications running(loaded into memory), but in a sleeping state (using no cpu), so that they may be quickly resumed on request. Android also contains some agressive modifications to the behavior of the OOM(out of memory) task killer in Linux, that seem to cause it to keep applications running until nearly all memory is consumed, killing apps it deems unnecessary only when absolutely necessary. However, Android also supports a methodology of saving the running state of a program, so that if it is killed due to an OOM condition, it may be restarted with relevant data restored, to give the appearance of never having been killed at all.
This functionality is not all to alien to Linux as a platform in general, though Android has many modifications which tend to favor aggressive app management in memory, and less so filesystem cache. This was likely a design choice made to suit the low-speed/low memory platforms Android targets.
Click to expand...
Click to collapse
Good read.
So then given that...only services running should slow down the phone and not the background apps running.
However, this doesn't really answer the OP's question. If it's not a memory issue...what's causing his slowdowns?
Could be too many widgets on the home screen, I don't run that many but its possible that while in an app for a while, and switching back to home the OS may have to kill a whole bunch of apps to allow it to reload all the widgets on the home screen.
I tested this, and loaded the crap out of my home screens with widgets, and then launched a game. When I exited the game there was a good 500ms - 800ms delay in my homescreens from displaying anything other than the background. However, after it loaded, scrolling between screens looks smooth. The new kernel with highmem support can help this, but I would suspect some crazy widget filled homescreen with a 3rd party live wallpaper (star's configured with too many stars) and all of that combined could be an issue even still. Apple combats this by allowing only one app at a time, they know people will go overboard if allowed.
Well, that doesn't really explain the performance drops. Does the phone run out of RAM, or not? It seems to be snappy again after a reboot, so there must be something.
Click to expand...
Click to collapse
There's probably no easy answer to this question. There could be IO contention, a runaway process, high CPU usage, a memory leak, shoddy code in some app, etc etc... One would really have to take a look at the whole state of the system at the time the problem is happening to be able to ascertain what is causing the slowdown.
The phenomenon is in no way unique to Android. I'm sure nearly everyone is familiar with the common complaint "my computer is running slow". The reasons that can happen on a common PC are the very same reasons that can be happening here, and unfortunately there are many of those reasons. While in many cases, throwing memory at the issue may appear to solve the problem temporarily, it often is not a permanent fix.
The amount of userspace memory available really amounts to 1 thing and 1 thing only -> the total number of running processes that we can keep totally in memory at any given time. On stock android, slowdown due to an OOM condition should be minimal, since stock android doesn't swap. Discounting any other bottlenecks, there is a practical limit to the number of programs once would be able to run in the memory space that is available. Realistically speaking, android programs tend to be fairly small, so you'd really have to be running a lot of them to exhaust this space. It is far more likely one or 2 poorly written programs are hogging huge amounts of memory (and probably other resources), which is causing constant killing and restarting of other apps you are trying to run concurrently. You end up with contention on the slow flash, resulting in poor performance.
You can't even really compare the Nexus One to the G1 in this regard, because the G1 truly is terribly deprived of memory. Though, the argument in both cases could really be made that you are attempting to run the hardware beyond its design specifications...
Its been my experience that the culprit is usually one or 2 specific programs. Sometimes the best, although inconvenient, way to figure out which programs these are, is to keep watch of your usage habits, and if you suspect something is the problem, uninstall it, and see if the issue persists. Its time consuming but there really isn't any better way to figure it out without using all kinds of tools that android doesn't really provide convenient access to. There are a few apps on the market that help with this but I am not sure what they are called offhand.
Programs that were identified as sources of slowdown for me have been:
Weatherbug
The Weather Channel
Calorie Counter
Locale
SMS Popup
10000
USA Today
National Geographic Wallpapers
CNN News Widget
Streamfurious
Nav4All
Waze
Just about every app with Admob Ads
And this is really just what I can think off offhand... there are more...
equid0x said:
There's probably no easy answer to this question. There could be IO contention, a runaway process, high CPU usage, a memory leak, shoddy code in some app, etc etc... One would really have to take a look at the whole state of the system at the time the problem is happening to be able to ascertain what is causing the slowdown.
The phenomenon is in no way unique to Android. I'm sure nearly everyone is familiar with the common complaint "my computer is running slow". The reasons that can happen on a common PC are the very same reasons that can be happening here, and unfortunately there are many of those reasons. While in many cases, throwing memory at the issue may appear to solve the problem temporarily, it often is not a permanent fix.
The amount of userspace memory available really amounts to 1 thing and 1 thing only -> the total number of running processes that we can keep totally in memory at any given time. On stock android, slowdown due to an OOM condition should be minimal, since stock android doesn't swap. Discounting any other bottlenecks, there is a practical limit to the number of programs once would be able to run in the memory space that is available. Realistically speaking, android programs tend to be fairly small, so you'd really have to be running a lot of them to exhaust this space. It is far more likely one or 2 poorly written programs are hogging huge amounts of memory (and probably other resources), which is causing constant killing and restarting of other apps you are trying to run concurrently. You end up with contention on the slow flash, resulting in poor performance.
You can't even really compare the Nexus One to the G1 in this regard, because the G1 truly is terribly deprived of memory. Though, the argument in both cases could really be made that you are attempting to run the hardware beyond its design specifications...
Its been my experience that the culprit is usually one or 2 specific programs. Sometimes the best, although inconvenient, way to figure out which programs these are, is to keep watch of your usage habits, and if you suspect something is the problem, uninstall it, and see if the issue persists. Its time consuming but there really isn't any better way to figure it out without using all kinds of tools that android doesn't really provide convenient access to. There are a few apps on the market that help with this but I am not sure what they are called offhand.
Programs that were identified as sources of slowdown for me have been:
Weatherbug
The Weather Channel
Calorie Counter
Locale
SMS Popup
10000
USA Today
National Geographic Wallpapers
CNN News Widget
Streamfurious
Nav4All
Waze
Just about every app with Admob Ads
And this is really just what I can think off offhand... there are more...
Click to expand...
Click to collapse
I'm banking on it being an issue with an app that the OP has installed as well...not the phone or Android. I have only a handful of tried and true apps, and haven't experienced a slowdown even after 150 hours without a reboot.
OP... start uninstalling apps a couple at a time and wait several hours in between to narrow down the problem app.
I can't speak for the OP, but when I was having that problem I had 5 widgets running on my home screen. The Google Search, Sports Tap, Power Control, Calendar, and The Small Weather Channel. Does this seem like too much? I hope not.
stickerbob said:
I can't speak for the OP, but when I was having that problem I had 5 widgets running on my home screen. The Google Search, Sports Tap, Power Control, Calendar, and The Small Weather Channel. Does this seem like too much? I hope not.
Click to expand...
Click to collapse
It's not just widgets that you should be thinking about... any app you've installed can throw something off.
stickerbob said:
I can't speak for the OP, but when I was having that problem I had 5 widgets running on my home screen. The Google Search, Sports Tap, Power Control, Calendar, and The Small Weather Channel. Does this seem like too much? I hope not.
Click to expand...
Click to collapse
I removed the weather & news widget and the phone seems much faster now. I'll keep it like that for a day, see if it stays fast.
Since no one replied to this message in the official CM 5.0 thread. I have decided to create a new thread and hope to find a solution to this problem.
My alarm clock would stop working randomly ever since I flashed to CM 5.0, from Beta 4 to 5..2, the problem persists. If i set an alarm that is about one hour from now, it would go off. But the real alarm I need which is supposed to go off at 8 am in the morning never goes off. Anyone had similar problems? I read Cyanogen's warning about the alarm clock problem. But seems he's just trying to remind you to reset your alarm after flashing to CM. Unluckily, I've reset my alarm numerous times and it never goes off in the morning.
Anyone can give me a hand? Thanks in advance! Overall, CM is a great ROM which gives me the option to use open vpn, which is vital for me since I'm living in China behind the GFW.
Are you by chance using any taskillers?
I do use a task-killer program. But I always keep the clock app on while i'm sleeping to try to make sure the alarm goes off on time. But it never does in the morning.
Don't use task killers on the N1, there really is no need.
cyanogen said:
Don't use task killers on the N1, there really is no need.
Click to expand...
Click to collapse
I wouldn't say that's accurate... The phone does slow down noticeably when you have 20-30+ things open
Sometimes a lot of them are running as well (using TasKiller, a lot of Yellow, including Camera, Gmail etc even when not in use and no emails being downloaded). This probably affects battery life as well.
Paul22000 said:
I wouldn't say that's accurate... The phone does slow down noticeably when you have 20-30+ things open
Sometimes a lot of them are running as well (using TasKiller, a lot of Yellow, including Camera, Gmail etc even when not in use and no emails being downloaded). This probably affects battery life as well.
Click to expand...
Click to collapse
Do you have any evidence to back this up? Yes this was a problem on older devices because many things would be fighting over the tiny amount of RAM.
You'll see lots of processes running but that's just the way Android works. Since it doesn't really benefit from simple caching like a normal linux system would, it just keeps everything running and kills unused stuff when memory is low. Most of the things you see running are either paused and using no CPU, or are services that would be periodically launched anyway.
http://developer.android.com/guide/topics/fundamentals.html#lcycles
Keeping these processes alive should actually be saving you battery rather than using it. It's more expensive to launch and restore the state of an application or service after being killed than it is to simply resume one that's been paused.
cyanogen said:
Do you have any evidence to back this up? Yes this was a problem on older devices because many things would be fighting over the tiny amount of RAM.
You'll see lots of processes running but that's just the way Android works. Since it doesn't really benefit from simple caching like a normal linux system would, it just keeps everything running and kills unused stuff when memory is low. Most of the things you see running are either paused and using no CPU, or are services that would be periodically launched anyway.
http://developer.android.com/guide/topics/fundamentals.html#lcycles
Click to expand...
Click to collapse
Yes. The phone gets slow when TasKiller shows 30 things in it. I click close all, and it's faster. Do you know my personal experiences more than I do?
Paul22000 said:
Yes. The phone gets slow when TasKiller shows 30 things in it. I click close all, and it's faster. Do you know my personal experiences more than I do?
Click to expand...
Click to collapse
I think there is likely one or two specific misbehaving applications that are giving you trouble, rather than the way the system works as a whole, thats all.
I think what Cyanogen is saying is that android does not handle running processes the way other os's do They have a lifecycle that is non-obvious to someone just looking at a process list. If you insist on killing tasks outside of the activity/service lifecycle they you _will_ get service failures (like the alarm clock) its up to you what you value more.
I have not installed any sort of task manager (outside what's in astro but I don't use it) and never see any noticeable slow down.
Anyway - back on topic.
Yes I have the same issue, never had it before.
Since flashine 5.0.2 my alarm doesn't work in the morning.
The linux kernel keeps a buffer cache of recently used files in RAM. So whenever an application wants to access something on the flash, instead of going to the flash file system, it can just get it from the file buffer cache in RAM, a significant speed increase.
If the RAM is currently being taken up by unused android apps, then that leaves less room for the buffer cache, so in theory, by killing off unused android apps more quickly, that will allow the linux kernel to allocate more space for the buffer cache and thus speeding up the system.
Am I way off here?
Dave
cyanogen said:
Do you have any evidence to back this up? Yes this was a problem on older devices because many things would be fighting over the tiny amount of RAM.
You'll see lots of processes running but that's just the way Android works. Since it doesn't really benefit from simple caching like a normal linux system would, it just keeps everything running and kills unused stuff when memory is low. Most of the things you see running are either paused and using no CPU, or are services that would be periodically launched anyway.
http://developer.android.com/guide/topics/fundamentals.html#lcycles
Keeping these processes alive should actually be saving you battery rather than using it. It's more expensive to launch and restore the state of an application or service after being killed than it is to simply resume one that's been paused.
Click to expand...
Click to collapse
I would have to agree with Cyanogen on this one. When I first got my N1, I looked towards task killers to help alleviate slowdown, but in the end, I think it's just the placebo effect in a way; you did something to try to solve the problem, and so therefore you perceive a difference.
In other words, task killers aren't needed on this beast of a phone. As for battery life (if that's an issue), look into SetCpu.
Thanks for the reply Cyanogen. I think not using task-killer, or at least not killing the clock app got my alarm working this morning. But I use task-killer not for the purpose of saving ram, but for using less data. Some programs such as facebook or a twitter client would try to connect to the internet every once in a while. I'm on a low data limit plan in China. So I don't want those programs to eat up all my data. When I'm on wifi at home, I don't worry about that. Thanks again.
Same problem. Don't use taskkillers, flashed last CM last night and didn't wake up on time this morning - alarm didn't work, thought I checked that clock icon was on place on notification bar
amwayorlando said:
But I use task-killer not for the purpose of saving ram, but for using less data. Some programs such as facebook or a twitter client would try to connect to the internet every once in a while. I'm on a low data limit plan in China. So I don't want those programs to eat up all my data.
Click to expand...
Click to collapse
Have you thought about using something like APNDroid or Toggle Data, to just switch off the cell data when you don't want to use it?
Or, Modify the behavior of the applications you don't want using data?
I have my facebook and twitter for example set to manual update only (for battery saving purposes) because there's nothing there that is critical important info, and I don't need to be notified.
Nice thread though, I'm pretty sure I try to keep people informed that task-killers aren't needed and cause issues, everywhere where it comes up. I find humor that people will still argue, even with a developer, this fact. I've had 150+ hours uptime with no slowdown (and 30 apps running) on the stock rom (without highmem support).
bofslime said:
Or, Modify the behavior of the applications you don't want using data?
I have my facebook and twitter for example set to manual update only (for battery saving purposes) because there's nothing there that is critical important info, and I don't need to be notified.
Nice thread though, I'm pretty sure I try to keep people informed that task-killers aren't needed and cause issues, everywhere where it comes up. I find humor that people will still argue, even with a developer, this fact. I've had 150+ hours uptime with no slowdown (and 30 apps running) on the stock rom (without highmem support).
Click to expand...
Click to collapse
Then please inform us of a thread that can verify what you all are saying. Not in an argumentative tone, my linpack score drastically improves after 16 hours of uptime, and a task-killer.
Rom:CM 5.0.2 -OC Kernel
wesbalmer said:
Then please inform us of a thread that can verify what you all are saying. Not in an argumentative tone, my linpack score drastically improves after 16 hours of uptime, and a task-killer.
Rom:CM 5.0.2 -OC Kernel
Click to expand...
Click to collapse
This has basically been discussed into the ground. In my eye's, its a fight vs what I like to call "Windows XP mentality", and that there was benefit on phones like the G1. With the copious amounts of memory on the N1 and droid, they cause way more harm, and immeasurable good (if any).
Summary thread: http://forum.xda-developers.com/showthread.php?t=627836
I've linked to quotes from others.
Threads/posts of interest: http://forum.xda-developers.com/showthread.php?p=5494890#post5494890
And: http://forum.xda-developers.com/showthread.php?p=5298630#post5298630
Well, this discussion is very interesting, but lets return to our problem with non-working alarm.
As posted on my blog: http://www.chainfire.eu/articles/68/AutoClosePatch_1_0_released/
Updated to 1.1 on 24 February 2010
AutoClosePatch
Some devices, especially the new 2009 Omnia series from Samsung do not have a lot of memory available. Some of these are also configured to use rather aggressive memory management. The result is that you can hardly start any amount of applications (3 or 4, usually) before the system starts to shut down already running applications, while half or more of the available physical memory is not being used at all.
What AutoClosePatch attempts to do is hook into these memory management functions and beat them into submission, preventing them from doing anything we have not explicitly told them to do.
Of course, we do have to have automatic application closing functionality so our devices do not get stuck in a low memory position, so occasionally we let the system do what it wants within specified parameters.
Note that this patch was specifically written and only tested on the Omnia II (I8000), but it should work on many WM 6.5 devices. This patch does not need any of the other changes mentioned in various MoDaCo threads and is compatible with TaskMon!
Also note that the system is not always very smart, and in my experience tends to close the last application I openened instead of the first.
Beta
Consider this a beta version (even though it is a 1.0 release). Several factors come into play and operation cannot be guaranteed. Works great for me, though!
I take no responsibility for issues that may occur, at all. If your dog explodes due to using AutoClosePatch, tough luck.
Settings
By default, my Omnia II starts closing apps when available memory drops below about 30mb, and doesn't stop closing apps until available memory has risen above about 45mb. As I start out with about 50mb of available memory this isn't very handy.
AutoClosePatch's default settings are to not start closing apps until available memory drops below 15mb, and to stop closing apps when available memory has risen to above 20mb.
The "Ultra" variant lowers this to 10/15, but has more chance of showing you an 'out-of-memory' dialog.
Installation
Install the AutoClosePatch CAB. If you want to play with the "Ultra" variant, install the normal version first!
Soft-reset after installation
Uninstallation
Simply uninstall the CAB files if you are not using the "Ultra" variant. Uninstalling will clear most settings but not some system settings. These changes aren't harmful, but you'll need to hard-reset to clear them up.
Soft-reset after uninstallation
Technical
Skip this part if you're not a techy
The whole thing is done through run-time patching, this means no files are modified on the device itself, only in-memory.
Some system calls are overridden / intercepted in shell32.exe, and depending on actual memory state WM_CLOSE may be re-cast as WM_HIBERNATE.
For the new 2009 Omnia series from Samsung TaskMon.dll is also patched, disabling it's application closing functionality. All other TaskMon functions should remain fully operational. In essence, only the standard WM application closing functionality should remain functional.
The low memory boundary (when apps start being closed) can be configured through the following registry key:
HKEY_CURRENT_USER\Software\Chainfire\AutoClosePatch\CloseStartMB
The high memory boundary (when apps stop being closed) can be configured through the following reigstry key:
HKEY_CURRENT_USER\Software\Chainfire\AutoClosePatch\CloseStopMB
You must soft-reset after changing these keys for them to take effect.
Also note that if you are going below the default 15/20 value you must install the "Ultra" settings first.
Furthermore, if you are playing with very low settings (and are thus using the "Ultra" settings) make sure to NOT set the CloseStopMB value above 20!
Downloads
REDISTRIBUTION AND COOKING INTO ROMS IS EXPLICITLY FORBIDDEN (for the time being)
AutoClosePatch v1.1
AutoClosePatch v1.1 Ultra (Settings only)
Donate
Donations can be made through PayPal
Changelog
1.1 Adjusted closing behavior so it closes less programs
1.1 Slightly adjusted default settings
1.0 Initial release
looks pretty cool
my omnia should arrive sometime next week, will definitely use this.
thanks !
does not really work for me, whenever i get to 10mb of free ram, all applications get closed ...
khomen that should be fixed in 1.1
Works with Omnia B7610 but with a bug
When memory reaches 24mb down (in my case 24-18mb) you cannot open anymore applications/programs,and those that were opened (16 apps opened with 24mb left) even the task manager cannot be opened, so soft reset is needed to close all... Though system apps (those in the settings) still open and run.
Thank you my good man 08C54399RW746270M Here you have little something for beer
fire_z said:
Works with Omnia B7610 but with a bug
When memory reaches 24mb down (in my case 24-18mb) you cannot open anymore applications/programs,and those that were opened (16 apps opened with 24mb left) even the task manager cannot be opened, so soft reset is needed to close all... Though system apps (those in the settings) still open and run.
Click to expand...
Click to collapse
Did this happen with 1.0 or 1.1 ?
Please try agian with 1.1 and make sure to soft-reset after installation !
Thank you!
Works great on my omnia i900!
Just what I needed!
Best regards!
Hi Chainfire,
Donation sent to keep your research on.
Thanks very much.
Thank you so much.
I found this thread from WinMo and is now going to give it a try.
Thanks again for your work!
Not working?
Hi,
This is exactly what I am looking for, but it does not seem to work on my devise TP2, the programs still close randomly...
I try to run the regular and ultra manually, I do not see any loaded progam (I guess that is normal since it leaves only the dll), but I do not see any entries/changes in the Registry?
Please help to make this work or propose another solution.
THanks,
Hi Stephane,
personally I switched from AutoClosePatch to EverApp (see http://www.modaco.com/content/pocket-pc-software/291321/app-everapp-v0-2-application-persistence-under-wm6-x/ for details).
It is working more confident for the case that you have individual apps that must not be closed when running in background (apps like countdown-timers, SIP-phones etc.).
This is good.. i thought closing down apps is a problem of Omnia pro only...
With this patch, my Omnia is very powerful again as my previous Touch Pro..
Thanks a lot..
Im trying it on my Omnia II now and its look really good
Thx for it!
i always have out of memory crash
Thanks for your great work. But i have a doubt:
Is there a way to exclude only one App from being closed?
I really like the autoclose function, it keeps my mobile working correctly all the day, but I'm working with my mobile ERP all the day long and i don't want anyone to close it...
thanks!
Nosfi said:
Thanks for your great work. But i have a doubt:
Is there a way to exclude only one App from being closed?
I really like the autoclose function, it keeps my mobile working correctly all the day, but I'm working with my mobile ERP all the day long and i don't want anyone to close it...
thanks!
Click to expand...
Click to collapse
To do no repost, here is the link to my advice http://forum.xda-developers.com/showpost.php?p=8508020&postcount=12.
This sounds great, but,does not work on my Omnia Pro B7610...
It installs correctly, but i get something like that after soft reset:
An unhandled exception occured at $000115E0 : EAccessViolation : Acces Violation
$000115E0
$00011818
i wish U could tell me what's wrong... i am using FluidX ROM based on 6.5.3 i guess...
Hmmm. Not really. The only idea I have is that maybe you have no .NET Compact Framework 3.5 installed. You can download it from Microsoft. If this does not help you may ask your question in the developers' thread at http://windows.modaco.com/topic/291321-app-everapp-v02-application-persistence-under-wm6x/.
This forum desperately needs a glossary and FAQ. I am willing to maintain it if people would like to submit entries. As a noob to these forums I would have liked descriptions/definitions of things like HSPL, SOD, etc. Please post definitions etc with pertinent links for additional info and downloads etc. I will post them word for word and organize them in the first few posts here. Try to keep it fairly basic, I don't want a huge post that people wont want to go through. Thanks in advance.
Thanks to Huggs for so much input.
Glossary
BSOD- Black Screen of Death. Unresponsive operating system gui, but often bootloader can still be accessed
Bootloader- This is the screen you will see when you hold down your volume down button while booting.
It is characterized by a few colored bands filling up your screen, and the basic information about your phone such as ROM version, Radio, SPL version. This screen is the graphical part of your SPL.
Cold Boot- Turning your phone on when it is all the way off (not sleep mode)
GUI- Graphical User Interface (as opposed to controlling the Operating System and its programs from the command line)
Hard Reset- Resetting your phone back to factory settings. Sometimes, when you modify the operating system and interface of your device, it messes things up and the only way to set things right is to do a hard reset (HR).
To do a hard reset, turn your phone all the way off, and then turn it back on while holding down both volume buttons.
Then instructions will appear on your phone's screen to either complete the hard reset, or not to.
HSPL- Hard SPL, A custom SPL/bootloader which allows the flashing of custom built (AWESOME!!!) ROMS
Kernel- You will see this term a lot in the Android sub-forum, the kernel is like a middle-man between the operating system and your phone's hardware. When you open an application, your phone requires hardware resources such as RAM, processor to process your request to open the app, screen to display it, audio circuitry for sound, etc.
The kernel is responsible for processing these hardware needs, and deciding how to allocate them to certain apps/functions of your phone in order to make it run as smoothly as possible. The kernel is responsible for much more than what I have mentioned here, such as power management, but for all intents and purposes, just think of it as a middle man between hardware and software, like a gatekeeper of resources.
NAND- The portion of your phone's internal memory where the ROM is flashed to and stored i.e 'flash memory', 'ROM memory'
Radio- This is the software that controls how your phone communicates with the cel towers in your area. It is stored in your phone's NAND memory, but in a separate part from where your ROM is stored, this is why Radio and ROM can be flashed separately. The reason that different radios work well for some folks and other radios work well for other folks, is because the we are all accessing different cell towers from different distances, strengths etc, and some people do not have 3g available all the time, or at all. Radios affect battery usage for the same reason, if you are 5 miles from the tower, then a radio optimized for better long-distance reception will be better for you than one that is made for fastest 3g data transfer, like for someone who lives in a big city as compared to a rural farm dweller. So DON'T ASK WHICH RADIO WILL BE BEST FOR YOU!!! Sorry folks, it's just a matter of trial and error, and preference.
RAM- R.andom A.ccess M.emory, also known as 'volatile memory'. This type of memory is what your phone uses as a 'workspace' to temporarily store and process data. Think of storage memory as a bookshelf. When you click an icon, or type something, or change wallpapers, whatever you do, the phone takes information from storage memory and loads it to RAM and processes it in whatever way it needs to. If storage memory is a bookshelf, then RAM memory is like a workbench. Your phone could live without it, but its work would be much much slower, like if you tried to rebuild the carburetor from your Harley without a workbench. You could do it, but it would take you 10 years
ROM- 'R.ead O.nly M.emory is what the three letters stand for, but for all intents and purposes on this website, a ROM is what you flash to your ROM (NAND) memory. A ROM contains all the files that make up your operating system which loads/runs from the phone's internal memory (for now Android only loads from the SD card, this is why the Android builds are referred to as 'builds', and not ROMs, though some folks mistakenly call them ROMs from time to time)
Registry- The registry is like a set of 'switches' and settings within Windows. The Windows mobile operating system is built to run on a number of different phones. And not even just phones. A lot of the satellite communication devices (nicknamed quallcomm's by truckers) in semi trucks actually run on Windows CE for example. So you can see how you would need one set of settings for one device, a different set for another. In order to not have to re-write Windows CE every time it needs to be installed in a different device, some of the most common behind-the-scenes settings changes are thrown together in the registry, and then the registry is set up for the device it is to be used in before the operating system is loaded onto the device. That's why it's so popular to tweak registry settings, you can change things like how much memory is allocated to certain apps, or how loud the speakers are able to go, etc. Just be careful changing registry settings, it may result in you having to perform a hard reset if you mess some certain things up.
SOD- Sleep of Death, a somewhat common problem in the older Android builds, much less common in the new builds using the newer kernels. Requires hard reset. Fixes that may work include updating to a different radio or changing/formatting your SD card.
Soft Reset- A soft reset simply means turning your phone all the way off (not sleep mode) and then turning it back on.
There are many apps available which will soft reset your phone for you, which is simpler and faster than holding the power button, choosing 'power off', then turning your phone back on.
Soft resetting is an important and necessary part of modding your phone, alot of the things you do to your phone (like registry changes) will not take effect until you soft reset (SR) your phone.
SPL- S.econd P.rogram L.oader, This is what it stands for, also known as the phone's bootloader. This is what loads the phone's operating system into RAM memory and initialises the phone's operating system upon a cold boot.
TMOUS- T-Mobile United States
-----------------------------------------
FAQ
I have a HD2 on T-mobile US that I recently got, do I need to put on HSPL before loading one of the Android builds?
It seems that many with some of the more recent HD2s in the U.S. are able to load Android builds without loading HSPL and updating the Radio (including myself!). If your radio version is 2.8 or higher you should be good to go. Just load the Android files to the root of your SD card and run CLRCAD then HARET while in Windows mobile.
It wont allow me to install _______ application in Android (common with Angry Birds), What's wrong?
Try un-mounting your SD card, install the app, then remount your SD card. This usually works. To unmount/remount go into settings/SD card and phone storage/unmount SD card.
Also feel free to post/respond to requests for definitions. I will post requests here.
Definition requests:
OTA
FAQ requests:
How do I disable HTC sense in Windows Mobile?
reserved for future info.
OTA- O.ver T.he A.ir
This is how some firmware updates from Carriers come. You get a message on your phone that an update is available, and you download it straight to your phone, or download it to your computer and flash it via ActiveSync
BTW Could a Mod Please move this thread to HD2 General Discussion or Q&A
I know a glossary might seem like catering to noobs, something xda isnt really about, but I think it will further people's understanding of the basics, and cut down on unnecessary questions and general low level misunderstanding of terms
If anyone notices any inaccuracies in any of my definitions, please feel free to post and correct me. You won't hurt my feelings, I promise. These are just off-the-top-of-my-head explanations in layman's terms explained as simply as I know how. I have no problem with editing the def's in my post, or with josh editing the ones he has imported into his posts.
Everybody feel free to post requests for definitions, I'll try my best
Thanks for the post. If anyone has info or links to add for any definitions that would be great. thanks.
If you find this helpful please let us know! Feel free to post corrections and links or definition requests or questions. If you have noob questions this is the place to ask!
I think this is in the wrong forum. Only a small part of this is specific to Android, and some parts have nothing to do with it.
I suggest the OP gets a mod to move it to the HD2 General or Q&A forum.
Other than that, it deserves a stickie.
I would prefer most the info be geared towards android on the HD2. But whatever people have questions about. If a mod feels this would be better suited in a different forum please feel free to move.
I found it very helpful especially in definition of Kernel, i also have definition requests below and also continously updating these improves what?
Firmware Version
Baseband version
Build number