While I recognize your good intentions behind the idea of checking for cores and automatically adjusting settings, so the user doesn't have to adjust settings themselves & to improve performance, it won't work in practice.
This is because there are too many devices and corner cases to cover. For example:
- Some multi-core devices will have core parking and might not be detected by whatever core detection you use.
- Some single-core devices may or may not have hyperthreading, but won't display as multiple cores.
- If the user has their phone on power-save mode, you'll still detect multiple cores, but not recognize that they're running at limited capacity.
I'm sure many other examples exist. The point is, it would probably be a nightmare for you to cover most/all of these cases in order to automatically adjust your app's settings, especially given a relatively simpler solution: ask the user what settings they want at the app's launch, and make it easy to adjust these settings at any time.
Sometimes it's better to just put a burden on the user's lap, especially if it takes little to no effort for them to do it, and proportionally waaay more effort for the developer to do it. Good luck!