how to reduce android app size?

2020-02-11 08:41发布

问题:

First of all , I am using android studio for development of android app. I have build an android app for OCR using tesseract library. The app is currently working great and giving desire output but my problem is with its size. The size of the build app is 30 MB which is high compared to other OCR app available. I have tried "minifyenabled = true" but it reduce just 300 kb of size. So my question is how to reduce size of my app?

回答1:

You can use APK splits to build smaller versions of your app that target individual device architectures. For an example of this, see the San Angeles demo project.

You can get a further reduction by removing the libpngt.so/libjpgt.so files if your app doesn't need them.

Using ProGuard may help too.



回答2:

Regarding tesseract lib size have a look at options provided by tesseract itself. Description is in article less is better. Be aware some of options are experimental, so check your OCR quality.



回答3:

Use the 3.01 version of Tesseract .trainddata files.

How to reduce size of tessdata used for TessBaseAPI in android?



回答4:

Read the answer in http://stackoverflow.com/questions/25101534/reducing-android-app-apk-size you will get the solution. And for the record always try to reduce duplicating codes



回答5:

App sizes largely increases due to 3rd party libraries and images. Please have a look at what all images you have used and try reducing their sizes where all possible.

One more thing you can do is use Lint to check for unused resources and remove them if any.

Just right click on app directory -> Analyze -> Run Inspection By name

and then type in Unused resources.



回答6:

Size of your android app plays a decisive role in application development where devices work on pay-by-the-byte plans. So, here are a few ways of reducing the size of your android app.

  1. Avoid using Pngs ( use vector images ) . Use pngcrush for compressing the png . Url: https://pmt.sourceforge.io/pngcrush/
  2. Try to get most of the images from a server rather than keeping them in source code.
  3. Use Dynamic Delivery concept to load on-demand features during runtime.
  4. Avoid using third party #libraries which can be done simply by a few lines of code.
  5. "Android Size Analyzer" this #plugin helps you in reducing the size of the app by giving you suggestions.
  6. Switch to Android App #Bundles from #APKs while publishing app or releasing updates. In this way , App is built based on CPU architecture (ABI), Language and Screen Density of the device. Documentation: https://developer.android.com/studio/build/configure-apk-splits
  7. Important : Set minifyEnabled and shrinkResources to true in your gradle.

If you want to read more, you can visit my linkedIn profile post. Url : https://www.linkedin.com/posts/abhishek-gupta-9b32b816b_android-app-development-activity-6609095411581972480-heF8