This page has deprecated and will be archived. Please go to [[https://www.bitcraze.io/]].
====== Setting up an development environment for the Crazyflie Android client ======
This guide will help you getting started with setting up a development environment for the Crazyflie Android client, running the app from source code and contributing code.
===== Installation =====
==== Requirements ====
* An Android device running version 4.0 or higher (the code might be changed to run on lower versions, but this has not been tested yet)
* USB On-the-go (OTG) cable (aka. USB Host cable) to connect the Android device to the Crazyradio dongle
==== Installing the Android Development Tools (ADT) ====
- Download the most recent Android Development Tools from http://developer.android.com/sdk/index.html
* get the latest ADT Bundle (eg. adt-bundle-windows-x86-20130917.zip for Win32)
- Extract the zip file and start Eclipse (adt-bundle-windows-x86-20130917/eclipse/eclipse.exe)
- Start the Android SDK Manager (Window -> Android SDK Manager)
* select Android 4.0 (API 14) and install all of its components
* using an actual Android device for development is recommended
* If you still want to use the emulator for development on a Windows machine, then you should use the "Intel x86 Atom System Image". \\ (Make sure that you use the Intel x86 Emulator Accelerator (HAXM) when your machine support the VT-x extension. This speeds up the emulator considerably.)
If you have problems installing the ADT environment or setting up the emulator you might find some help here:
* http://developer.android.com/sdk/installing/bundle.html
* http://developer.android.com/tools/help/sdk-manager.html
* http://developer.android.com/tools/devices/index.html
* http://developer.android.com/tools/device.html
==== Getting the Crazyflie Android client source code ====
- Install a Git client for your operating system
* Windows client from http://msysgit.github.io
* Linux client, e.g. on Debian based systems with "sudo apt-get install git"
- The Eclipse Git plug-in (EGit) is already included in your ADT environment, but you should update it to the latest version
* Use the Update manager (Help -> Install new software...)
* Update site: http://download.eclipse.org/egit/updates
- With the EGit plug-in you can checkout the Crazyflie Android client source code from https://github.com/bitcraze/crazyflie-android-client.git
* or on the commandline: git clone https://github.com/bitcraze/crazyflie-android-client.git
==== Running the Android client from source code ====
- On Windows: install USB drivers for your Android device (http://developer.android.com/tools/extras/oem-usb.html)
- Enable USB debugging on your Android device (Settings > Developer options)
* You might need to enable the developer options first!
- Connect your PC to the Android device via USB or Wifi
- "Run as Android application" (this deploys and installs the APK to your Android device)
- Use a USB On-the-go (OTG) cable (aka. USB Host cable) to connect your Android device to the Crazyradio dongle
- Run the Crazyflie app (see also [[doc:crazyflie:client:cfandroid:index|Crazyflie Android client user guide]])
More info about USB drivers, developer options and debugging setup can be found here:
* http://developer.android.com/tools/device.html#setting-up
===== Reporting bugs or requesting features ====
Bugs and feature requests should be added as GitHub issues: https://github.com/bitcraze/crazyflie-android-client/issues
===== Contributing your code ====
If you consider contributing code, then you should create a [[https://github.com|Github]] account, fork the [[https://github.com/bitcraze/crazyflie-android-client|crazyflie-android-client repository]] and send a [[https://github.com/bitcraze/crazyflie-android-client/pulls|pull request]].
==== Coding standard ====
Due to a lack of time and laziness the code is still messy, but in general the coding style should follow the [[http://source.android.com/source/code-style.html| Android Code Style Guidelines for Contributors]].
* [[http://source.android.com/source/code-style.html#use-spaces-for-indentation|Use spaces for indentation]]
* [[http://source.android.com/source/code-style.html#follow-field-naming-conventions|Follow field naming conventions]] (this is not consistently used yet)