3

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?

rmtheis
  • 5,992
  • 12
  • 61
  • 78
Rahul Bhavani
  • 311
  • 2
  • 10

6 Answers6

3

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.

rmtheis
  • 5,992
  • 12
  • 61
  • 78
  • Thank you Robert, splitting the APKs for different CPU architectures worked. But, wouldn't it be hard to maintain all the apks on playstore? – Rahul Bhavani Apr 28 '16 at 19:36
  • The multiple APKs still fall under a single listing on the Play Store, but yes there's the hassle of doing [multiple uploads](http://developer.android.com/google/play/publishing/multiple-apks.html), handling `versionCode`s for each app, and the opportunity for mistakes there. One way to minimize this is to script your APK upload process using the [Developer Console Publisher API](https://developers.google.com/android-publisher/#publishing). – rmtheis Apr 29 '16 at 00:24
  • Thanks Robert for your reply, I will try it. – Rahul Bhavani Apr 30 '16 at 05:56
  • @rmtheis I am assuming that the files libpngt.so/libjpgt.so are only used when building tess two via Android Studio using JNI? Also, how do I use only math characters in Tess Two? I have the eng trained data file. – i_o Feb 09 '19 at 03:02
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.

user898678
  • 2,994
  • 2
  • 18
  • 17
1

Use the 3.01 version of Tesseract .trainddata files.

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

Community
  • 1
  • 1
nguyenq
  • 8,212
  • 1
  • 16
  • 16
0

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

Kasun Siyambalapitiya
  • 3,956
  • 8
  • 38
  • 58
0

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.

Ragesh Ramesh
  • 3,470
  • 2
  • 14
  • 20
0

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