Description
I'm recently involved in a project that requires producing images (mainly .PNG) very frequently and I noticed that VScode is experiencing hard time in opening my generated image. For an image with size of 1MB, it takes 2 seconds, 3MB -> 5 seconds, larger the image is, slower the opening does. Is this the natural build-in "feature" for VScode? (I just switched from Atom to VScode, while Atom opens images without wait, which allows me to compare two images intuitively)
Version
Version: 1.74.2
Date: 2022-12-20T10:26:09.430Z (1 mo ago)
OS
macOS Monterey
Version 12.6
Related
Native android supports different pixel densities like ldpi, mdpi, hdpi, xhdpi, xxhdpi and so on. This feature balances app quality and app size.
Currently I'm facing this issue in Unity mobile games (iOS & android) when I use,
high quality graphics it increases crashes and lagging in low-end devices.
low quality graphics it looks blurry and pixelated in high-end devices like iPad Pro etc.
I can use 2 different quality images but again it increases app size as the low-end devices end up downloading the HD images too.
How to solve this issue?
I suggest looking at the Unity Addressables system available in Unity 2020 LTS and beyond. This is a whole new tool that you'll have to investigate so I cannot provide a quick class or line of code to solve your problem. However, the Unity Addressables system is available in the Package Manager with docs available here.
Using this system will likely make it easier to run hi-res assets on lower-end devices. Since assets are streamed in when needed your texture memory is going to be significantly reduced as textures are unloaded as soon as you're done with them.
Addressables can also be used to load in assets remotely which would reduce your total file size. However, depending on how far you are in development this could be a big change.
You may also want to look at splitting the application binary if changing over to Addressables is too much work. If you split the binary, you can reduce the initial download of the application and have users opt-in to hi-res textures. There are a variety of other solutions provided by the Unity docs on Android builds here.
Good luck on getting your game to a shipped state!
In my application i am making an REST call which is giving approximately 7mb of Data but when i see in chrome Devtools i see the resources of around 50mb as in this screenshot devtools is also loading to my browser, which is affecting the performance of application, can you please let us know what exactly is this resources are??
48.9 MB resources refers to the size of all the page's resources after they have been decompressed. 7.4 MB transferred is the amount of data that was downloaded over the network. Your page is downloading 7.4 MB of data, not 48.9 MB.
Think of it like this:
7.4 MB of compressed data is downloaded
The browser decompresses all of that data
The uncompressed size of that same data is 48.9 MB
https://developers.google.com/web/tools/chrome-devtools/network/reference#total-size
I am currently using Unity 2013 p3. The problem is, when I build my project in android, the app apk size is about 29mb. And the installed app size in android is about 76mb.
Once the size was very huge, but after searching unity forums, as mentioned here, I altered the configuration settings under Project setting -> player, and changed the device filter to ARMv7. The size has been considerably reduced then. It resulted in the above mentioned metrics which is yet too large.
I tried reducing the size by compressing images that are used in the project, by using the image compression option available in unity as mentioned here. The apk size is reduced somewhat, but the image quality became low comparatively.
Now I don't know any other way to reduce app size without affecting the quality. Can anyone help me with this issue?? Thanks in advance :)
You should use compressed sounds, low poly models, set image quality to normal. Don't use unnecessary references to prefabs. Hope this will work for you!
I'm trying to upload a file from UIImagePickerController. Is it better to upload an image from memory or save it to disk then upload to S3
Which takes less resources? Currently weaker devices like an iPhone 5 struggles to upload the file.
Your problem is that older devices have lower cellular speeds. There should not be any significant difference in WiFi speeds between iPhone 5 and newer models.
Since it is the uplink speed that is the problem, it makes no difference whether you are sourcing your image from memory or disk. Moving an image from memory to disk and then back to memory before uploading has no advantages except for the fact that only parts of the image maybe kept in memory waiting for upload.
My application has a collection of around 1940 icons that are used throughout.
They're currently in ICO and new images provided to me come in ICO format too. I have noticed that they contain a 16x16 and 32x32 representation of each icon in one file.
Each file is roughly 4KB in filesize (as reported by finder, but ls reports that they vary from being ~1000 bytes to 5000 bytes)
A very small number of these icons only contain the 32x32 representation, and as a result are only around 700 bytes in size.
Currently I am bundling these icons with my application and they are inflating the size of the app a bit more than I would like.
Altogether, the images total just about 25.5MB. Xcode must do some kind of compression because the resulting app bundle is about 12.4MB. Compressing this further into a ZIP (as it would be when submitted to the App Store), results in a final file of 5.8MB.
I'm aware that the maximum limit for over the air App Store downloads has been raised to 20MB since the introduction of the iPad (I'm not sure if that extends to iPhone apps as well as iPad apps though, if not the limit would be 10MB).
My worry is that new icons are going to be added (sometimes up to 10 icons per week), and will continue to inflate the app bundle over time.
What is the best way to distribute these icons with my app?
Things I've tried and not had much success with:
Converting the icons from ICO to PNG:
I tried this in the hopes that the pngcrush utility would help out with the filesize. But it appears that it doesn't make much of a difference between a normal PNG and a crushed png (I believe it just optimises the image for display on the iPhone's GPU rather than compress it's size). Also in going from ICO to PNG actually increased the size of the icon file...
Zipping the images, and then uncompressing them on first run.
While this did reduce the overall image sizes, I found that the effort needed to unzip them, copy them to the documents folder and ensure that duplication doesn't happen on upgrades was too much hassle to be worth the benefit. Also, on original and 3G iPhones unzipping and copying around 25MB of images takes too long and creates a bad experience...
Things I've considered but not yet tried:
Instead of distributing the icons within the app bundle, host them online, and download each icon on demand (it depends on the user's data as to which icons will actually be displayed and when).
Issues with this is that bandwidth costs money, and image downloads will be bandwidth intensive. However, my app currently has a small userbase of around 5,500 users (of which I estimate around 1500 to be active based on Flurry stats), and I have a huge unused bandwidth allowance with my current hosting package.
So I'm open to thoughts on how to solve this tricky issue.
I did some research on MonoTouch for a client. MonoTouch has a minimum file size of 5.1mb because all the C# stuff. It doesn't seem to have affected apps store users willingness to download the MonoTouch based apps.
In my research I didn't see any evidence that end users pay much attention to app size when making purchasing decisions. A lot of apps are first downloaded to non-Mobiles via iTunes and the difference in download time between a 1mb and 5mb is barely noticeable. A lot of end users are only vaguely aware that apps even have a size.
My recommendation would be to try and prioritize the icons based on usage rate. Praeto's rule shows up in most data so you'll probably find that 20% of the icons get 80% of the use. Include that 20% most active icons in the app bundle and then download the rest.