[go: up one dir, main page]

0% found this document useful (0 votes)
39 views6 pages

Flask Web Development

This document provides a comprehensive guide on mobile application development using Python and Kivy, detailing the process of developing and packaging applications for Android devices. It covers essential tools like Buildozer and Python-for-Android, as well as methods for running applications using the Kivy Launcher. The unit concludes with a summary of the key concepts and further reading resources for deeper understanding.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views6 pages

Flask Web Development

This document provides a comprehensive guide on mobile application development using Python and Kivy, detailing the process of developing and packaging applications for Android devices. It covers essential tools like Buildozer and Python-for-Android, as well as methods for running applications using the Kivy Launcher. The unit concludes with a summary of the key concepts and further reading resources for deeper understanding.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

e

UNIT 13 MOBILE APPLICATION


DEVELOPMENT WITH PYTHON

13.1 Introduction
13.2 Objectives
13.3 Terminologies
13.4 Android Mobile Application Development using Kivy
13.5 Buildozer Tool
13.6 Packaging with Python-for-android
13.7 Packaging your application for the Kivy Launcher
13.8 The Kivy Android Virtual Machine
13.9 Summary
13.10 Further Reading
13.11 Answer to check your progress

13.1 INTRODUCTION
In the previous unit you learnt to set up the development environment for a
Kivy application. In this unit you will be learning to develop an application
using Kivy and to package it to run on Android devices.

13.2 OBJECTIVES
Upon completion of this unit you will be able to:
• Develop a Python application using Kivy
• Build the developed application and run it on Android device

13.3 TERMINOLIGES
bootstrap: A bootstrap is a class consisting of few basic
components (i.e. with SDL2, Pygame, Webview etc.)
Virtual Machine(VM): A virtual machine is an operating system or
application environment that is installed on software.

13.4 ANDROID MOBILE APPLICATION


DEVELOPMENT USING KIVY
A Kivy application can run on Android device. For that we have to compile a
Kivy application and to create an Android APK which will run on the device
similar to a Java application. It is possible to use different tools which will
help to run code on Android devices. We can publish these APKs to Google
store where users can download and install in their devices or it is possible to
29
Data Handling, Mobile
Application & Gui
run the apps using a Kivy Launger app. These two methods will be explained
Development Using further in this section.
Python
• First method is to use the prebuilt Kivy Android VM image, or use the
Buildozertool to automate the entire process.

• The second method is to run the Kivy app without a compilation step
with the Kivy Launcher app

13.5 BUILDOZER TOOL


Buildozer is a tool that allows packing of mobiles application easily. It
downloads and sets up all the prequisites for Python-for-android, including the
android SDK and NDK, then builds an apk that can be automatically pushed
to the device.
Buildozer currently works only in Linux. The steps to follow when using
Buildozer on Linux are given below.
You can get a clone of Buildozer from https://github.com/kivy/buildozer For
that you need to use the following commands in Linux
Git clone https://github.com/kivy/buildozer.gitcd buildozer sudo python2.7
setup.py install
This will install Buildozer in your system. Afterwards, navigate to your
project directory and run:
buildozer init

This creates a buildozer.spec file controlling your build configuration. You


should edit it appropriately with your app name etc. You can set variables to
control most or all of the parameters passed to Python for android.
You need to install buildozer’s dependencies and then you need to plug in
your android device and run the application using the following command.
This command will build, push and automatically run the apk on your device.
buildozer android debug deploy run

13.6 PACKAGING WITH PYTHON-FOR-


ANDROID
Python-for-android is also represented as P4A. To install P4A you need to
use the following command. This section explains how to do this in Linux
environment. The same process can be done in Windows on top of a Virtual
Machine. This process is explained at the later part of this unit.
Python-for-android can be installed using the following command.
Python –m pip install python-for-android

Then you need to install the dependencies you need. Some of the
dependencies are given below.
30
e
• git Mobile
Application
• ant Development
With Python
• python2
• cython
• a Java JDK
• zlib
• libncurses unzip
• virtualenv ( can be installed via pip)
• ccache (optional)
You need to download and unpack the Android SDK and NDK to a directory
(let’s say $HOME/Documents/)
Then, you can edit your ~/.bashrc or other favorite shell to include new
environment variables necessary for building on android

# Adjust the paths!


export ANDROIDSDK="$HOME/Documents/android-sdk-21"
export ANDROIDNDK="$HOME/Documents/android-ndk-r10e"
export ANDROIDAPI="14" # Minimum API version your
application require
export ANDROIDNDKVER="r10e" # Version of the NDK you
installed

To build your application, you need to have a name, version, a package


identifier, and explicitly write the bootstrap you want to use, as well as the
requirements. For build options some of the existing bootstraps are i.e. with
SDL2, Pygame, Webview etc.
To build an application you need to specify the information given above as
shown below.
p4a apk --private $HOME/code/myapp -- package=org.example.myapp --name "My application" --
version
0.1 --bootstrap=sdl2 --requirements=python2,kivy

If anything goes wrong and you want to clean the downloads and builds to
retry everything it is required to run the following command.
p4a clean_all

If you just want to clean the builds to avoid re-downloading dependencies


you need to use the following command.
p4a clean_builds && p4a clean_dists

13.7 PACKAGING YOUR APPLICATION


FOR THE KIVY LAUNCHER
The Kivy launcher can be used to run the Kivy applications on Android
devices without compiling them. Kivy launcher runs the Kivy examples
stored on the SD Card in the device. To install the Kivy launcher, you must 31
Data Handling, Mobile
Application & Gui
go to the Kivy Launcher page on the Google Play Store. Then click on Install
Development Using and select your phone. If not you can go to https://kivy.org/#download and
Python install the APK manually.
Once the Kivy launcher is installed, you can put your Kivy applications in the
Kivy directory in your external storage directory. Often the application is
available at /sdcard even in devices where this memory is internal. For an
example /sdcard/kivy/<your application>
should be a directory containing your main application
<your application>
file(e.g. main.py) and a text file (android.txt) with the contents given below.
title= <Application Title>
author=<Your name>
orientation=<portrait|landscape>

13.8 THE KIVY ANDROID VIRTUAL


MACHINE
So far you learnt to build a Kivy Android application in a Linux environment
configured with Python-for-android, the Android SDK and the Android
NDK. It is possible to use a fully configured VirtualBox disk image in
Windows and OS X operating system, because using the previous methods
were limited only for Linux based developers.
Setting up the environment
Step 1 : Download the disc image from https://kivy.org/#download, in the
Virtual Machine section. A Virtual Machine with Android SDK and NDK
and all other pre-requisites pre installed to ease apk generation.
The size of the download is more than 2GB and around 6GB after extracted.
Extract the file and remember the location of the extracted vdi file.
Step 2 : Download the version of VirtualBox for your machine from the
VirtualBox download area and install it.
Step 3 : Start VirtualBox, click on “New” in the left top. Then select “linux”
and “Ubuntu 64-bit”. You need to check the available Linux distribution and
select appropriately.
Step 4 : Under “Hard drive”, choose “Use an existing virtual hard drive file”.
Search for your vdi file and select it. Assigning insufficient memory may
result in the compile failing with cryptic errors. Therefore it’s required to
assign sufficient memory when creating the virtual machine.
Step 5 : Go to the “Settings” for your virtual machine. In the “Display ->
Video” section, increase video ram to 32MB or above. Enable 3D
acceleration to improve the user experience.
Step 6 : Start the Virtual machine and follow the instructions in the readme
file on the desktop.
The instructions given in the readme file are given below for your reference.
These instructions can be changed based on the virtualbox disk image that
you are downloading.
32
e Mobile
To use it go into your project directory, and use: Application
buildozer init Development
you can then edit the created buildozer.spec, to suit your project. Then use With Python
buildozer android debug
to build your project, once you have it built, you can use the
buildozer android deploy run logcat
command to start the app on your device and collect the error log. (use ctrl-c
to stop the logcat) Commands can be combined as given below.
buildozer android debug deploy run logcat
This command will do the whole process.
To update Buildozer you need to use the following command.
sudo pip install -U buildozer
To update Kivy and other modules the simplest way is to remove the
buildozer cache before building your distribution. You can do this by using
the following command.
rm -rf ~/.buildozer/android/packages
Building the APK
Once the VM is loaded, you can follow the instructions from Packaging with
Python-for-android given above.
Generally, your development environment and toolset are set up on your host
machine but the APK is build in your guest. VirtualBox has a feature called
‘Shared folders’ which allows your guest direct access to a folder on your
host.

Activity13.1
• Download the Kivy demos for Android by visiting
https://storage.googleapis.com/google-code-archive-
downloads/v2/code.google.com/kivy/kivydemo-for-android.zip
• Unzip the contents and go to the folder `kivydemo-for-android`
• Copy all the subfolders here to /sdcard/kivy
• Run the Kivy launcher and select one of the Pictures, Showcase,
Touchtracer, Cymunk or other demos
Check Your Progress
Q-1 Compare Buildozer and Kivy Launcher.

13.9 SUMMARY
In this unit you learned how to package your Python application to run on
Android devices. In the next section let’s learn about how to design the
Graphical User Interfaces(GUI) for mobile applications using Python
libraries

13.10 FURTHER READING


Python for Android
https://python-for-android.readthedocs.io/en/latest/quickstart/
Create a package for Android
http://kivy.readthedocs.io/en/latest/guide/packaging-android.html 33
Data Handling, Mobile
Application & Gui
Development Using
13.11 ANSWER TO CHECK YOUR
Python PROGRESS
Ans-1 Refer section 13.4, 13.5 and 13.7

34

You might also like