When I updated my Samsung Galaxy S3 to the most recent version of Jelly Bean (v4.3), it seemed to lead to some performance issues. Chief amongst this was that playing back audio from the SD card would stutter – it didn’t matter which app was playing it, or whether it was playing music or a podcast, it would frequently stutter. Further investigation led me to realise that this was only happening when the screen was off – it would play perfectly well with the screen on. However, this is hardly ideal (especially when out and about, as it will kill the battery!) so I tried to find a way to solve it.
I wanted to stay on stock as it makes it easier to update the phone, but it appears that my version of the phone (GT-i9300) will not receive an update to KitKat now and so there is no reason for me to stick with stock. However, most of the custom ROMs feature their own gaudy themes, and I’m happy enough with how the phone looks so I don’t really want to go down that route. The solution I found was to install the Boeffla-Kernel.
Whilst not a straightforward process (it first of all requires you to root the phone and install a custom recovery) it opens up numerous possibilities. The most interesting one for me is the ability to change the size of the read ahead buffer for the SD card. The stock value is 128kb, but I’ve now set mine to 512kb, which has fixed the problem and now audio plays without any stuttering, even with the screen off.
Thankfully, there is an app which makes this configuration straightforward, which is called Boeffla-Config. This needs to be manually downloaded and installed rather than installed from the Google Play store, but this is not difficult. Once installed all the kernel settings can be changed and applied from here.
Thanks to Boeffla for creating this kernel and making it easy to fix my problem!