tMerge pull request #3726 from bauerj/android-docs - electrum - Electrum Bitcoin wallet
 (HTM) git clone https://git.parazyd.org/electrum
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
       ---
 (DIR) commit 58d889e4806ab649b52f407bf20500c7bd583ad9
 (DIR) parent d580ecfb28d89d6e3bef006fa19c7a840a675b93
 (HTM) Author: ThomasV <thomasv@electrum.org>
       Date:   Mon, 15 Jan 2018 18:44:39 +0100
       
       Merge pull request #3726 from bauerj/android-docs
       
       Update kivy docs to current build process
       Diffstat:
         A gui/kivy/Readme.md                  |      80 +++++++++++++++++++++++++++++++
         D gui/kivy/Readme.txt                 |      24 ------------------------
       
       2 files changed, 80 insertions(+), 24 deletions(-)
       ---
 (DIR) diff --git a/gui/kivy/Readme.md b/gui/kivy/Readme.md
       t@@ -0,0 +1,80 @@
       +# Kivy GUI
       +
       +The Kivy GUI is used with Electrum on Android devices. To generate an APK file, follow these instructions.
       +
       +## 1. Install python-for-android (p4a)
       +p4a is used to package Electrum, Python, SDL and a bootstrap Java app into an APK file. 
       +We patched p4a to add some functionality we need for Electrum. Until those changes are
       +merged into p4a, you need to merge them locally (into the stable branch):
       +
       +1. [kivy/python-for-android#1213](https://github.com/kivy/python-for-android/pull/1213)
       +2. [kivy/python-for-android#1217](https://github.com/kivy/python-for-android/pull/1217)
       +
       +Something like this should work:
       +
       +```sh
       +cd /opt
       +git clone https://github.com/kivy/python-for-android
       +cd python-for-android
       +git remote add agilewalker https://github.com/agilewalker/python-for-android
       +git remote add bauerj https://github.com/bauerj/python-for-android
       +git checkout stable
       +git fetch agilewalker
       +git merge agilewalker/master
       +git fetch bauerj
       +git merge bauerj/add-activity
       +```
       +
       +## 2. Install buildozer
       +Buildozer is a frontend to p4a. Of course it needs to be patched too:
       +
       +1. [kivy/buildozer#612](https://github.com/kivy/python-for-android/pull/1213)
       +
       +```sh
       +cd /opt
       +git clone https://github.com/kivy/buildozer
       +cd buildozer
       +git remote add bauerj https://github.com/bauerj/buildozer
       +git fetch bauerj
       +git merge bauerj/add-activity
       +```
       +
       +You also want to install it:
       +
       +```sh
       +sudo python3 setup.py install
       +```
       +
       +## 3. Update the Android SDK build tools
       +3.1 Start the Android SDK manager:
       +
       +      ~/.buildozer/android/platform/android-sdk-20/tools/android
       +      
       +3.2 Check the latest SDK available and install it.
       +
       +3.3 Close the SDK manager.
       +
       +3.3 Reopen the SDK manager, scroll to the bottom and install the latest build tools (probably v27)
       +
       +## 4. Install the Support Library Repository
       +Install "Android Support Library Repository" from the SDK manager.
       +
       +## 5. Create the UI Atlas
       +In the `gui/kivy` directory of Electrum, run `make theming`.
       +
       +## 6. Download Electrum dependencies
       +Run `contrib/make_packages`.
       +
       +## 7. Build the APK
       +Run `contrib/make_apk`.
       +
       +# FAQ
       +## Why do I get errors like `package me.dm7.barcodescanner.zxing does not exist` while compiling?
       +Update your Android build tools to version 27 like described above.
       +
       +## Why do I get errors like  `(use -source 7 or higher to enable multi-catch statement)` while compiling?
       +Use the `stable` branch of python-for-android. 
       +[This commit](https://github.com/kivy/python-for-android/commit/3534a761b17040755accf941f898cc66b905e8db) in master is the culprit.
       +
       +## I changed something but I don't see any differences on the phone. What did I do wrong?
       +You probably need to clear the cache: `rm -rf .buildozer/android/platform/build/{build,dists}`
 (DIR) diff --git a/gui/kivy/Readme.txt b/gui/kivy/Readme.txt
       t@@ -1,24 +0,0 @@
       -Before compiling, create packages: `contrib/make_packages`
       -
       -Commands::
       -
       -    `make theming` to make a atlas out of a list of pngs
       -
       -    `make apk` to make a apk
       -
       -
       -If something in included modules like kivy or any other module changes
       -then you need to rebuild the distribution. To do so:
       -
       -  rm -rf .buildozer/android/platform/python-for-android/dist
       -
       -
       -how to build with ssl:
       -
       -  rm -rf .buildozer/android/platform/build/
       -  ./contrib/make_apk
       -  pushd /opt/electrum/.buildozer/android/platform/build/build/libs_collections/Electrum/armeabi-v7a
       -  cp libssl1.0.2g.so /opt/crystax-ndk-10.3.2/sources/openssl/1.0.2g/libs/armeabi-v7a/libssl.so
       -  cp libcrypto1.0.2g.so /opt/crystax-ndk-10.3.2/sources/openssl/1.0.2g/libs/armeabi-v7a/libcrypto.so
       -  popd
       -  ./contrib/make_apk