Is 2048x1536 a Common Camera Resolution on Android Devices? - android

My app is optimized for handling images with the size of 2048x1536. Am I safe to assume that most modern Android phones with at least a 5MP camera support this resolution?
I will not rely completely on the availability of this resolution, but I wanted to know if this is a good common denominator that covers most common devices.

No-contract Android phones are getting more popular, and you see these with 3 MP cameras. Most mid-end to high-end phones will have the higher megapixel count. By the way: 2048x1536 is a little over 3 MP.
It should be a pretty safe target. Just watch out for RAM allocation, especially before 3.0, since that uses about 9.4 megs of RAM as uncompressed RGB24

Related

What are the criteria to select the appropriate resolution to build a 2D game?

I'd like to know, how can I select the best resolution to build a 2D game in android?
You can go with 1920*1080 - this will give you a clear output on most current devices - and use FitViewPort or ExtendViewPort as you wish.
I'm rendering my graphics in 2K resolution (i.e. in 3040 x 1,40 - aiming most popular high-end phones of today, i.e. Samsung S10) so it will definitely look well on screens with higher resolution. And then I'm using camera zoom to display it properly on current screen resolution. It does take a bit more space for graphics and it's probably loosing some frame per second but on today's devices it's acceptable loss. My games run smooth even on older devices, so I don't think it's an issue at all.

Why do we need multiple versions of images in android and IOS?

I am working with images in IOS. The project has same images with 3 different resolutions - 1x, 2x and 3x. The app picks up the required version by itself, depending on the screen resolution of the phone. i have few questions regarding this.
How does the app picks up the best suitable version?
Why don't we keep the images with the highest resolutions, instead of keeping multiple version?
Does applying high resolution images to a low resolution device affects the clarity of image?
Even in android, we do the same. We have multiple versions of the same image. So, these questions applies to android as well.
We need different size images so that OS loads particular image size that is required at that time, Smaller images reduces memory usage. It leads better efficiency. If your app uses less memory, it also means more apps can occupy memory simultaneously, faster multitasking. Phones with low pixel density are usually the old phones with less memory, so that's why giving a low resolution option for those phones makes the user experience more flexible.

The slower FPS on the faster Android devices

I use SurfaceView for my 2D Android game which I have almost completed. It's based on JBox2D. It is perfectly running on Samsung Galaxy S2, its FPS is 60. It is also running smoothly on HTC Explorer, its FPS is about 54. I thought that if my game was working well in these relatively old devices, it would be working better in the newer ones. But I was wrong! I saw yesterday the FPS value of my game on Galaxy Note 4 is varied between 22 and 45 depending on the number of game objects.
After investigating on this issue in Google and StackOverflow, I deduced that the new devices like Galaxy Note 4 which has higher resolutions (1440 x 2560) could not handle with their large images whereas the little ones can handle with their own smaller images (Galaxy s2:480 x 800, HTC Explorer:320 x 480). Yes, the new devices are surely faster than the older ones, but I think their huge resolutions of the newer devices are the reason of the slowness on the SurfaceView. Of course, this is valid under SurfaceView conditions. If I used OpenGL for my game, it would not be a problem for the new devices having high resolutions.
My bitmaps are designed for 800 x 1280 devices. According to the different device resolutions, my game rescales the images when they are loaded at the beginning of the each level by using createScaledBitmap.
I couldn't transform my game from SurfaceView to OpenGL platform because my game is about to finish and I didn't have enough knowledge about OpenGL.
What should I do?
I believe you have correctly identified the problem: newer devices have pixel counts like you'd find on a 27" monitor (2560x1440), because the manufacturers are chasing screen resolution like they do camera megapixels. The result is that rendering a full screen takes longer, especially when you're doing it in software. Faster CPUs and increased bus bandwidth can help, but full-screen software rendering is problematic.
The solution for Android is to make the Surface smaller, and let the hardware scale it up as it's being scanned out. This is significantly easier (and more efficient) than scaling up each individual item. You do this with the SurfaceHolder#setFixedSize() method. For example, for a 2560x1440 display, you could set the Surface size to 1280x720, and only render a quarter of the pixels. The display performs the pixel doubling (with bilinear filtering).
You can find a blog post here, and can see this in action in Grafika's "hardware scaler exerciser" activity (youtube demo video).
The various examples use GLES -- which also benefits from having fewer pixels to fill -- but applies to Canvas rendering as well.

Adobe AIR lag on high resolution Android devices

I have made an app which works well on iOS but has performance problems on Android. I have noticed that on older devices such as galaxy s2 with a low screen resolution, the app is fine. It only lags on the new hd devices such as the galaxy s4 and nexus 4.
Are high screen resolutions causing the devices to lag?
Does anyone know what I can do to find out how to fix this?
It's really strange because it's only on the new devices.
Not sure why it is happening on the S4 since it has a decent CPU and GPU, but high-density screens will cause lag, especially in Flash-based apps. I ran into the same problems when trying to move from the iPad 2 to the retina displays.
Let's look at it this way, with regards to the iPad issue I had. The iPad 3 bumped the resolution from 1024x768 to 2048x1536. That is 4x as many pixels. Traditionally, Flash has issues rendering vector images. It is good at it, among the best, but it is slow. So rendering a vector object on the iPad 2 was only a 40x40 area to update. On the iPad 3, it is a 160x160 area to update.
Quick tips:
Never use CPU rendering. Stick to Direct (or GPU if you need to, but you lose features with GPU rendering, such as filters)
Decrease the amount of vectors being used and how often you are changing them. You should avoid, at all costs, updating vector objects every frame.
Make sure you are testing a release build (In Flash Builders, Project->Export Release Build...) when testing framerate issues. It is generally much more evident on the iOS side than the Android side, but debug builds do cause lag
Don't set the framerate higher than you have to. As the framerate goes higher, each frame has less time to run the necessary calculations. The lag you notice isn't truly from low framerates (though that doesn't help), but more from dropped frames when a frame takes longer than available to render. 24 is the default, 30 is the standard. 60 is the max and is always nice, but it is completely unnecessary unless you are making a game.
I have several apps in production right now that run just fine on my Nexus 5, which is the same resolution as the S4 with roughly the same hardware, spec-wise. Unless there is a problem with that hardware specifically, you should be able to manage 30fps no problem, if not 60.
use direct render mode it is recommended by adobe.

Is there any Android device with resolution 640x960?

I'm not sure if this is the best place for this question, if not please point me the right one!
I am scaling my app for multiple resolutions and I've come across this two pages
Look on Scren Sizes and densities, the chart says 17% of the devices are normal/xhdpi, also here, in the Table 3 it says that normal/xhdpi is 640x960.
I know this is the Iphone resolution, running searches on google and gsmarena and I can only find iPhones and some android devices yet to be released.
So my question is among tablets and phones, already in the market, is there any android device with this resolution? If not, why is that resolution in that table?
Thanks!
EDIT
So according to the answers there are no devices with that resolution, but if there are no android devices with that resolution, which ones fit in those 17% with normal size and xhdpi? Why is that even on the chart?
Normal/xhdpi is the bucket that the Galaxy Nexus and all other 720p (1280x720) normal sized phones fall into. 720p has become a popular resolution for high end Android phones which is why you see 17% in that bucket. The 960x640 resolution you see listed is just the minimum resolution to be considered xhdpi with a normal size screen. It doesn't necessarily mean that there are phones with that resolution.
It's kind of obscure, but this seems to count:
http://en.wikipedia.org/wiki/Meizu_M9
...unless you're looking for Western phones. Never seen one in real life, though. My own personal big list of wacky Android devices doesn't show any 640x960 screens, but I have encountered a 540x960 one.
Current resolutions in Arc/Neo/Pro/Play & S2 are good... higher resolution will surely increase the sharpness of images and the whole UI duo to the higher ppi but it will have negative impacts too
1- small difference in battery life... this is small enough to just ignore
2- lower performance in 3D games and UI rendering...
the iPhone 4 GPU it self ( SGX 535 ) is slower than the Adreno 205, and it also uses higher resolution this is why 3D games dev. have to sacrifice quality to have playable fps...
currently the fastest GPU is SGX 540 ( used for example in OMAP 4430, in the heart of Optimus 3D )... and Tegra 2 which is a little bit slower than SGX 540.. and btw Tegra 2 by it self is a whole SoC and not just a GPU.. but it uses nV own GPU and no one else is using it.. and they cost more than Adreno 205 based SoC ( this what makes Adreno 205 more mainstream in the high-end )... but both of these GPU's are still not powerful enough to give 30 - 40 fps in high resolution like 960x640
so next year when the new or newer GPU's becomes mainstream and cost same as what todays Adreno 205, SGX 540 cost's then we may see higher resolution that can be used without sacrificing performance... but don't expect a direct jump between 854x480 to 960x640, there's a hell a lot of pixels there to compute and screen panel makers tend to have a control hand here too... the close one is Atrix which has 960x540 ( 100px less in width than iPhone 4 ) and it uses Tegra 2.
EDIT : Just found this! Sharp IS03 has a 960x640 resolution. But, unfortunately it has been released only in Japan.
Check these links for more info on it : link1 , link2, link3.

Categories

Resources