Giter Club home page Giter Club logo

gpstest's Introduction

GPSTest Build Status Twitter Follow

The #1 open-source global navigation satellite system (GNSS) testing app

Get it on Google Play Get it on F-Droid

It supports the following satellite systems:

  • GPS (USA Navstar)
  • GLONASS (Russia)
  • QZSS (Japan)
  • BeiDou/COMPASS (China)
  • Galileo (European Union)
  • Various satellite-based augmentation systems (SBAS):
    • Wide Area Augmentation System (WAAS) (USA)
    • European Geostationary Navigation Overlay Service (EGNOS) (European Union)
    • GPS-aided GEO augmented navigation (GAGAN) (India)
    • Multi-functional Satellite Augmentation System (MSAS) (Japan)
    • System for Differential Corrections and Monitoring (SDCM) (Russia)
    • Satellite Navigation Augmentation System (SNAS) (China)
    • Soluciόn de Aumentaciόn para Caribe, Centro y Sudamérica (SACCSA) (ICAO)

Questions? Check out the FAQ, our Slack group, and Google Group.

Beta Testing

Get early access to new GPSTest versions, and help us squash bugs! See our Testing Guide for details.

Data Output and Logging

Want to know how to output GNSS data to the system log for further analysis? Check out our Data Output and Logging page.

License

GPSTest is licensed under Apache v2.0

Build Setup

The below steps will help you build and run the project. For a Developer's Guide and more details, see https://github.com/barbeau/gpstest/wiki

Prerequisites for both Android Studio and Gradle

  1. Download and install the Android SDK. Make sure to install the Google APIs for your API level (e.g., 17), the Android SDK Build-tools version for your buildToolsVersion version, and the Android Support Repository and Google Repository.
  2. Set the "ANDROID_HOME" environmental variable to your Android SDK location.
  3. Set the "JAVA_HOME" environmental variables to point to your JDK folder (e.g., "C:\Program Files\Java\jdk1.6.0_27")

Building in Android Studio

  1. Download and install the latest version of Android Studio.
  2. In Android Studio, choose "Import Project" at the welcome screen.
  3. Browse to the location of the project, and double-click on the project directory.
  4. If prompted with options, check "Use auto-import", and select "Use default gradle wrapper (recommended)". Click "Ok".
  5. The default build flavor will be the google flavor, which is the version of GPSTest on Google Play that uses Google Play Services for maps. If you want to build the version on Fdroid that uses OSMDroid for maps, use the "Build Variants" toolbar item to select the osmdroid flavor.
  6. Click the green play button (or 'Shift->F10') to run the project!

Building from the command line using Gradle

  1. To build and push the app to the device, run gradlew installGoogleDebug from the command line at the root of the project for the version of GPSTest on Google Play. If you want to build the Fdroid version with OSM Droid, then use gradlew installOsmdroidDebug.
  2. To start the app, run adb shell am start -n com.android.gpstest/.GpsTestActivity for the Google Play version, or adb shell am start -n com.android.gpstest.fdroid/.GpsTestActivity for the Fdroid version (alternately, you can manually start the app)

Testing translations

Translations can be tested with an emulator using the following commands:

adb root
adb shell
...

... where the line ... sets the local as follows.

U.S. English:

setprop persist.sys.locale en_US;stop;sleep 5;start

German:

setprop persist.sys.locale de-rDE;stop;sleep 5;start

Chinese:

setprop persist.sys.locale zh-rCN;stop;sleep 5;start

Release builds

To build a release build, you first need to create a gradle.properties file that points to a secure.properties file, and a secure.properties file that points to your keystore and alias.

The gradle.properties file is located in the \GPSTest directory and has the contents:

secure.properties=<full_path_to_secure_properties_file>

The "secure.properties" file (in the location specified in gradle.properties) has the contents:

key.store=<full_path_to_keystore_file>
key.alias=<key_alias_name>

Note that the paths in these files always use the Unix path separator /, even on Windows. If you use the Windows path separator \ you will get the error No value has been specified for property 'signingConfig.keyAlias'.

To build the release build, run:

gradlew assembleRelease

If Gradle is running as a daemon, you'll be prompted for the keystore/key password via a popup dialog box. If you're not running Gradle as a daemon, command will prompt for your passwords (See barbeau#87).

If you want to force Gradle to not run as a daemon, use gradlew assembleRelease -D org.gradle.daemon=false.

Contributing

We welcome contributions to the project! Please see our Contributing Guide for details, including Code Style Guidelines and Template.

Don't know where to start? Take a look at the issues marked with the your-first-pr label and comment to let me know if you're interested in working on it.

Translations

Users have contributed translations in the following languages:

  • Chinese
  • Dutch
  • German
  • Greek

Want to improve existing translations, or add a new translation? See our Translations documentation.

Troubleshooting

When importing to Android Studio, I get an error "You are using an old, unsupported version of Gradle..."

If you're using Android Studio v0.4.2 or lower, when importing, please be sure to select the "settings.gradle" file in the root, NOT the project directory. You will get the above error if you select the project directory / name of the project.

I get build errors for the Android Support libraries or Google APIs

Open Android SDK Manager, and under the "Extras" category make sure you've installed both the "Android Support Repository" (in addition to the "Android Support library") as well as the "Google Repository". Also, make sure you have the Google API installed for the API level that you're working with in the "/build.gradle" file, including the "Android SDK Build-tools" version (at the top of the "Tools" category in the Android SDK Manager) that matches the compileSdkVersion and buildToolsVersion numbers in /GPSTest/build.gradle.

I get the import gradle project error - “Cause: unexpected end of block data”

Make sure you have the Google API installed for the API level that you're working with in the /build.gradle file, including the "Android SDK Build-tools" version (at the top of the "Tools" category in the Android SDK Manager) that matches the compileSdkVersion and buildToolsVersion numbers in /GPSTest/build.gradle.

Android Studio or Gradle can't find my Android SDK, or the API Levels that I have installed

Make sure that you're consistently using the same Android SDK throughout Android Studio and your environmental variables. Android Studio comes bundled with an Android SDK, and can get confused if you're pointing to this SDK within Android Studio but have your environmental variables pointed elsewhere. Click "File->Project Structure", and then under "Android SDK" make sure you "Android SDK Location" is the correct location of your Android SDK.

Also, make sure you've set the "ANDROID_HOME" environmental variable to your Android SDK location and the "JAVA_HOME" environmental variables to point to your JDK folder.

gpstest's People

Contributors

barbeau avatar mikeandroid avatar dersaxxe avatar mimiix avatar goldfndr avatar bitdeli-chef avatar mikelockwood avatar xsuchy avatar liuyunli avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.