mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00

I may have also made a migration path but am not too sure as very difficult to test.
Kiwix is an offline reader for Web content. It's especially thought to make Wikipedia available offline. This is done by reading the content of the project stored in a file format ZIM, a high compressed open format with additional meta-data. ********************************************************************* ************* COMPILATION INSTRUCTIONS FOR ANDROID ****************** ********************************************************************* Android is just an additional target but you can still build for Android only from a Linux or Mac (it cross-compiles). * ./autogen.sh * ./configure --disable-staticbins --disable-manager --disable-server --disable-launcher --disable-indexer --disable-installer --disable-searcher --disable-reader --disable-components --enable-android --enable-compileall * cd src/dependencies && make android-deps && cd - * cd android && ./build-android-with-native.py (If you have problem with aapt on a 64bits Linux, you might have to install 32 libsm on Ubuntu: lib32gcc1, lib32stdc++6, lib32z1) To install the newly created APK on your device, use the following script: ./android/install-kiwix-on-device.sh == Android Custom App == Android Custom App are single-content Kiwix-android clones. Those app are tied to a single content and CAN NOT open other zim file. As well, bundled zim files are not readable by the regular Kiwix app. Custom App have specific branding. Custom App are either compiled as embed (ZIM file is included in APK) or are accompanied by a ZIM file. * Embedded versions can be very large (while Play Store have a 50MB limit) * Non-embedded versions are small (6MB) but require a companion ZIM file which can be up to 2GB. * Companion file is a feature of the Play store. Steps to build a Custom App: 0. Install following requirements 1. Build your first APK * Generate your icon using `gen-std-icon.py logo-file.png lang_code` * For creating a corresponding custom app icon of our widget, please follow these subinstructions: a) Go to this icon generator -> https://goo.gl/6QtNGJ b) Click select image and upload your custom app icon .png c) Download zip, extract, select all drawable folder (hdpi,mdpi...) d) Paste in project's drawable folder (replace existing icon) * Prepare your JSON file using the sample in the script * Choose your package name wisely. ** org.kiwix.kiwixcustomXXXXXX ** o not add levels. Do not use dash or underscores ! ** Use version_code: 1 at first * Build your APK with `gen-custom-android-build.py my-file.json` 2. Go to the Developer Page on https://play.google.com/apps/publish and create a new Application and give it a name. 3. Fill the Store listing section with decent information * App Title (30 chars) * App Short Description (80 chars) * App Description (4,000 chars) * Add 2 screenshots * Add the 512px icon * Add feature graphic (1024x500) * Select Application Type (Applications) * Select Category (Education|Books & Reference|Health & Fitness|...) * Select Content Rating (High Maturity|Medium Maturity|Low Maturity|Everyone) * Add an email Address * Check the "Not submitting a privacy policy URL" box 4. Go to Content Rating Tab * Fill the Questionnaire ** Email address ** Select category ** Check "No" for each question * Hit Calculate rating * Hit Apply rating 5. Go to Pricing & Distribution * Check "SELECT ALL COUNTRIES" box * Check "Content guidelines" * Check "US Export laws" 6. Go to APK * Go to Alpha Testing * Manage list of testers (Add https://plus.google.com/communities/106410746144853739922) * Upload an APK (Use a proper APK (version 1 usually) with correct package name) 7. Build a second APK * Change version_code in JSON file * Rebuild 8. Upload your second APK using the upload script: $GOOGLE_API_KEY=/home/xxx/google-api.p12 $python3 ./upload-apk.py my-file.json` 9. [whenever you feel the need to] Update Play Store listing using play-store script. To make an APK which embeds a ZIM file: * In the json file, add: "embed_zim": true, * You might need to set up following env. variable: _JAVA_OPTIONS="\"-Xmx4096m\" \"-Xms4096m\"" ********************************************************************* *************************** CONTACT ********************************* ********************************************************************* Email: kiwix-developer@lists.sourceforge.net or contact@kiwix.org Jabber: kelson@kiwix.org IRC: #kiwix on irc.freenode.net You can use IRC web interface on http://chat.kiwix.org/ More... http://www.kiwix.org/wiki/Communication ********************************************************************* ********************** LEGAL & DISCLAIMER *************************** ********************************************************************* Read '../COPYING' file
Languages
Kotlin
98.9%
Shell
0.6%
HTML
0.4%