All Projects → mendhak → Gpslogger

mendhak / Gpslogger

Licence: gpl-2.0
📡 Lightweight GPS Logging Application For Android.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Gpslogger

Awesome Gnss
Community list of open-source GNSS software and resources 📡
Stars: ✭ 56 (-95.85%)
Mutual labels:  gps, satellite
Gps.js
A NMEA parser and GPS utility library
Stars: ✭ 171 (-87.31%)
Mutual labels:  gps, satellite
Phpgeo
Simple Yet Powerful Geo Library for PHP
Stars: ✭ 1,306 (-3.12%)
Mutual labels:  gps
Chromephp
class for logging PHP variables to Google Chrome console
Stars: ✭ 1,339 (-0.67%)
Mutual labels:  logging
Lumberjack
Chop and cut Angular logs like a professional lumberjack.
Stars: ✭ 93 (-93.1%)
Mutual labels:  logging
Systemdlogger
Exports systemd logs to an external service, eg cloudwatch, elasticsearch
Stars: ✭ 91 (-93.25%)
Mutual labels:  logging
Logsip
A simple, concise, colorful logger for Go
Stars: ✭ 94 (-93.03%)
Mutual labels:  logging
Xsrv
[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities
Stars: ✭ 89 (-93.4%)
Mutual labels:  logging
Keylogger
🔐 Open Source Python Keylogger Collection
Stars: ✭ 97 (-92.8%)
Mutual labels:  logging
Capture Thread
Lock-free framework for loggers, tracers, and mockers in multithreaded C++ programs.
Stars: ✭ 93 (-93.1%)
Mutual labels:  logging
Meshtastic Device
Device code for the Meshtastic ski/hike/fly/customizable open GPS radio
Stars: ✭ 1,331 (-1.26%)
Mutual labels:  gps
Phpgpx
Simple library for reading and creating GPX files written in PHP.
Stars: ✭ 92 (-93.18%)
Mutual labels:  gps
Autovalueplugin
AutoValue plugin for IntelliJ
Stars: ✭ 91 (-93.25%)
Mutual labels:  intellij
Geogeometry
GeoGeometry is a set of algorithms and functions for manipulating geo hashes and geometric shapes with geo coordinates.
Stars: ✭ 94 (-93.03%)
Mutual labels:  gps
Nodejs Logging
Node.js client for Stackdriver Logging: Store, search, analyze, monitor, and alert on log data and events from Google Cloud Platform and Amazon Web Services (AWS).
Stars: ✭ 91 (-93.25%)
Mutual labels:  logging
Logtrail
Kibana plugin to view, search & live tail log events
Stars: ✭ 1,343 (-0.37%)
Mutual labels:  logging
Leaflet Gps
Simple leaflet control plugin for tracking gps position
Stars: ✭ 90 (-93.32%)
Mutual labels:  gps
Intellij Touch
MacBook Touchbar support in IntelliJ
Stars: ✭ 92 (-93.18%)
Mutual labels:  intellij
Opensatkit
Core Flight System (cFS) Application Developer's Kit
Stars: ✭ 94 (-93.03%)
Mutual labels:  satellite
Logging Log4php
Mirror of Apache log4php
Stars: ✭ 97 (-92.8%)
Mutual labels:  logging

GPSLogger githubactions pgp

Note: Development has paused, and the app is not available from the Play Store, see this note. The app is now on F-Droid.

GPSLogger is an Android app that logs GPS information to various formats (GPX, KML, CSV, NMEA, Custom URL) and has options for uploading (SFTP, OpenStreetMap, Dropbox, Email). This app aims to be as battery efficient as possible.

Read about GPSLogger's features here

Download

You can find it on F-Droid

You can download directly from the releases.

Contribute

You can help with translations on Crowdin.

You can also submit pull requests for bug fixes and new features.

I'm not very good at UIs, so any work with the layouts would be appreciated!

License and policy

Licensed under GPL v2 | Third party licenses | Privacy policy

Verifying

It's good practice to verify downloads. In recent releases, a PGP signature and an SHA256 checksum will accompany each .apk.

Import PGP Public Key from Keybase.io or just gpg --recv-key 6989CF77490369CFFDCBCD8995E7D75C76CBE9A9

To verify the integrity and signature:

$ gpg --verify ~/Downloads/gpslogger-71.apk.asc

To verify checksum:

$ sha256sum -c ~/Downloads/gpslogger-71.apk.SHA256

Setting up the code

The project is based on the Android build system plugin for Gradle. Feel free to adopt and document your own OS and IDEs. These instructions are for Ubuntu Linux with IntelliJ IDEA.

Set up your Android Development Environment

Follow the instructions on the Android Developer Website to set up your computer for development.

These instructions are for IntelliJ but the repo can be opened in Android Studio.

Download and install IntelliJ IDEA Community Edition, which is free.

Clone the GPSLogger repository

git clone git://github.com/mendhak/gpslogger.git

Get the Android SDK extra repositories

This project uses certain Android libraries, you can install them using Google's poorly implemented sdkmanager:

  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'tools'
  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'platform-tools'
  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'build-tools;26.0.2'
  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'platforms;android-27'
  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'platforms;android-25'
  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'extras;google;m2repository'
  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'extras;android;m2repository'
  echo y | $HOME/android-sdk/tools/bin/sdkmanager 'extras;google;google_play_services'

Create local.properties

Create a file called local.properties, pointing at your Android SDK directory.

cd gpslogger
echo "sdk.dir=/home/mendhak/Programs/Android" > local.properties

Import the project

Open up IntelliJ and choose to import a project. Select the topmost build.gradle file under GPSLogger.

If you get an Import dialog, choose to Import project from external model

import

On the next screen, choose the defaults and proceed (default gradle wrapper)

import

Give it a minute and IntelliJ/Gradle will configure the projects and download the various libraries.

IntelliJ may not know where your Android SDK is. You can find this under File > Project Structure... where you should set the Project SDK. You will want to use Java 1.6 with Android 4 or above.

OpenStreetMap Setup (Optional)

Sign up for an account with OpenStreetMap and log in.

Click on 'oauth settings'

Click on 'Register your application'

Fill in the form with these details

Oauth settings

After registering the application, you will receive a 'Consumer Key' and a 'Consumer Secret'.
Place the keys in OSMJob.java and OpenStreetMapManager.java.

Dropbox Setup (Optional)

Sign up for an account with Dropbox.com

Go to the Dropbox Developers page and click on 'Create an App'

Use these settings, but choose a unique name

Dropbox settings

After creating the app, you will receive an app key and secret (the ones in the screenshot are fake)

Dropbox settings

Place the keys in your ~/.gradle/gradle.properties like this:

GPSLOGGER_DROPBOX_APPKEY=abcdefgh
GPSLOGGER_DROPBOX_APPSECRET=1234123456

Replace the Dropbox app key to your AndroidManifest.xml file

<!-- Change this to be db- followed by your app key -->
<data android:scheme="db-12341234"/>

Overview

GPSLogger is composed of a few main components;

design

Event Bus

The Event Bus is where all the cross communication happens. Various components raise their events on the Event Bus, and other parts of the application listen for those events. The most important one is when a location is obtained, it is placed on the event bus and consumed by many fragments.

GPS Logging Service

GPSLoggingService is where all the work happens. This service talks to the location providers (network and satellite). It sets up timers and alarms for the next GPS point to be requested. It passes location info to the various loggers so that they can write files. It also invokes the auto-uploaders so that they may send their files to DropBox, OSM, etc.

It also passes information to the Event Bus.

GPS Main Activity

This is the main visible form in the app. It consists of several 'fragments' - the simple view, detailed view and big view.

It takes care of the main screen, the menus and toolbars.

The fragments listen to the Event Bus for location changes and display it in their own way.

Session and AppSettings

Floating about are two other objects. Session contains various pieces of information related to the current GPSLogger run, such as current file name, the last known location, satellite count, and any other information which isn't static but is needed for the current run of GPSLogger.

AppSettings is a representation of the user's preferences.

These objects are visible throughout the application and can be accessed directly by any class, service, activity or fragment.

Working notes for F-Droid

Use the fdroidserver docker image. Clone the fdroid metadata repo and make changes to the com.mendhak.gpslogger.yml file.

git clone https://gitlab.com/fdroid/fdroiddata.git
cd fdroiddata

# initialize the metadata repo
docker run --rm -v /home/mendhak/Android/Sdk:/opt/android-sdk -v $(pwd):/repo -e ANDROID_HOME:/opt/android-sdk registry.gitlab.com/fdroid/docker-executable-fdroidserver:master init -v

# lint your metadata yml
docker run --rm -v /home/mendhak/Android/Sdk:/opt/android-sdk -v $(pwd):/repo -e ANDROID_HOME:/opt/android-sdk registry.gitlab.com/fdroid/docker-executable-fdroidserver:master lint com.mendhak.gpslogger -v

# build
docker run --rm -v /home/mendhak/Android/Sdk:/opt/android-sdk -v $(pwd):/repo -e ANDROID_HOME:/opt/android-sdk registry.gitlab.com/fdroid/docker-executable-fdroidserver:master build -v -l com.mendhak.gpslogger

I'll just aim for a static release. Still some tasks remaining, need to clean up text references to GDocs, GDrive, Dropbox, activity recognition. Need to hardcode the OSM keys into the code rather than an environment variable.

In the future may want to make it auto update, and add screenshots too. Example fastlane snippet.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].