How to reduce the android build size in unity 2017 p3 - unity3d

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!

Related

Does Unity3D supports different pixel densities like native android?

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!

App bundle size not reduce after using Play Asset delivery in Unity

I have a question about play asset delivery that is my game size is 60 MB but I want to reduce my apk size upto 30 MB. Is play asset delivery suitable for this or not?
and other question is .. we use PAD only for those games which are more than 150 MB ?
As per documentation of Google PAD(play asset delivery) recommended to have it for the app size more than 150 MB.
Use the editor logs in unity to understand the reason behind your app size, based on that you can use delivery modes which is suitable.
I would recommend you to go for Install-time delivery, which helps you to set up the app assets while installing.
Also if you need assets only on-demand choose on-demand delivery mode to achieve the lower app size.
if not try Addressables, please share the type of assets which you have in the game, so that get a better understanding to suggest more ways.
Thank you

How to reduce memory usage of dynamically loaded Textures in Unity?

Overview:
Currently working on a project in Unity for iOS and Android, where at runtime we download and store images in PNG format for later use. When we need to we load these textures as well as some from a web server using Unity's WebRequestTexture and both file:// and https:// schemes respectively.
Problem:
The problem we are facing is that when we use the WebRequestTexture method the memory usage of the textures increases significantly.
Question:
Is there a way to potentially pre-compress the locally downloaded images into device compatible compressed formats, and then load them directly to the GPU without it increasing the memory size required?
If this is possible would using Texture2D.CreateExternalTexture allow us to then use these textures without further increasing the memory usage?

GPU usage of webp on iphone, compared to png

I am currently working on an iOS game and the image resources seem to be a little too much. I heard of webP and wanted to know more about it.
I did some researches on webP and know that this new format requires much less space than PNG and its encoding/decoding speed is fast. But I found no article discussing the GPU burden when using WebP pictures, compared to PNG ones.
Is there any article out there on this topic?
Or can I do the experiment myself? I am coding in VS using cocos2d-x. I don't know what to do if I want to simulate an iOS GPU and monitor its memory usage.
Many thanks!
You can assume that the textures generated remain the same, ie render at the same speed, using the same amount of memory.
If you want faster loading and rendering and less memory usage, use the .pvr.ccz format.

Having to store too many image files

So I have a huge app. It is full of features, most of which require a couple images, and all of which have to be saved as part of the binary file. I worked really hard before the release to get under the 20MB threshold, to make the app more accessible to users. My release binaryt was 18.1MB.
So now, with the new iPad and its retina display, what should I do about updating all of my images for this new display. If I did include an updated copy, I would be way over the 20MB limit. Currently, I store some image files on my sever, and download/cache them as the user needs them, but im hesitant to do this with major features because I'm concerned some users may not always have internet access. And without some of those images, the app is useless.
Is there any way I can have an iPhone only install the iPhone graphics, and visa versa?
Apple has since raised the limit for all devices to 50 MB due to the release of the new iPad. This should hopefully allow you to fit all of the pictures in your app bundle.
One approach to minimize the size of your files is by compressing your PNG files. This will only minimize the size, and the images will continue to work correctly.
The links provided below will help you find a crusher you desire.
PNG Crush
PNG Compressor
ImageOptim