3 ms·
Android does a bunch of things to keep you off the UI thread(IO throws an exception, handlers, Async Tasks, etc). You still have to GC at some point and when t
by vvanders 10y ago
Android does a bunch of things to keep you off the UI thread(IO throws an exception, handlers, Async Tasks, etc).
You still have to GC at some point and when that happens chances are you're going to drop frames. Unless you're very aware of the garbage you're creating you'll take more than ~5ms which is usually enough to push you over 16ms with the other work that goes on during a frame.
- pjmlp 10y agoMeasure Java performance by how Android works is not a good measure. Dalvik is well known on Java world for having a JIT and GC implementations that worse than what most commercial embedded JVM are capable of. Things have improved with ART, but even there there are quite a few performance improvements that Google could eventually do. Soft real time Java GCs for embedded devices are being used in ground station controls of missiles and a couple of US Navy weapon systems. They surely don't want GC glitches in battle situations. The Android team seems to only bother with "good enough" in what concerns Android performance. As a side note, just check how many Android releases are they going through and yet real-audio support isn't quite there. Even Windows Phone has better support for it, and they do have WinRT and .NET on them.
- bitmapbrother 10y ago>Even Windows Phone has better support for it, and they do have WinRT and .NET on them. No they don't. Point me to one windows phone audio app that has low latency audio.
- pjmlp 10y agoWell there are these sources from Microsoft: https://blogs.windows.com/buildingapps/2014/05/15/real-time-audio-in-windows-store-and-windows-phone-apps/ https://blogs.windows.com/buildingapps/2014/05/15/real-time-... https://rtaudiowsapps.codeplex.com/ https://rtaudiowsapps.codeplex.com/ https://channel9.msdn.com/Events/Build/2014/3-548 https://channel9.msdn.com/Events/Build/2014/3-548 And I just found this, but not sure how good it fares. https://www.microsoft.com/en-us/store/apps/audio-meter/9wzdncrdkgt7 https://www.microsoft.com/en-us/store/apps/audio-meter/9wzdn...
- bitmapbrother 10y agoYou linked to an app that measures audio db levels. There are no low latency audio / music apps because windows phone isn't very good at it.
- pjmlp 10y agoOr maybe because no one capable of writing such applications wants to target 1% market share? Sometimes being good at something isn't enough.
- bitmapbrother 10y agoI wonder if BB users also use that excuse.
- pjmlp 10y agoI didn't use it as an excuse. I am no real time audio expert, but as someone that does work on Windows, I saw the information I have posted back when it went live. So it is possible, that in spite of the support being there, no one cares about it due to the sad state of the Windows Phone market and not because they suck. Or I suck at understanding how real time audio is supposed to work and the support isn't really there in spite of what Microsoft says.
- bitmapbrother 10y ago>As a side note, just check how many Android releases are they going through and yet real-audio support isn't quite there Actually, there is. As of Android 6.0 Google's CCD includes a section for Professional Audio devices If a device implementation meets all of the following requirements, it is STRONGLY RECOMMENDED to report support for feature android.hardware.audio.pro via the android.content.pm.PackageManager class. The device implementation MUST report support for feature android.hardware.audio.low_latency. The continuous round-trip audio latency, as defined in section 5.6 Audio Latency, MUST be 20 milliseconds or less and SHOULD be 10 milliseconds or less over at least one supported path. If the device includes a 4 conductor 3.5mm audio jack, the continuous round-trip audio latency MUST be 20 milliseconds or less over the audio jack path, and SHOULD be 10 milliseconds or less over at the audio jack path. The device implementation MUST include a USB port(s) supporting USB host mode and USB peripheral mode. The USB host mode MUST implement the USB audio class. If the device includes an HDMI port, the device implementation MUST support output in stereo and eight channels at 20-bit or 24-bit depth and 192 kHz without bit-depth loss or resampling. The device implementation MUST report support for feature android.software.midi. If the device includes a 4 conductor 3.5mm audio jack, the device implementation is STRONGLY RECOMMENDED to comply with section Mobile device (jack) specifications of the Wired Audio Headset Specification (v1.1).
- pjmlp 10y agoI saw the Google IO 2016 presentation where Google acknowledged Android 6.0 didn't actually fully delivered but Android 7.0 is finally there. They even had Samsung on stage to talk about their Android extensions for real-time audio. So with Android 6.0 barely over 10%, still with issues fixed in Android 7.0, it is as I said "real-audio support isn't quite there".