GPSLogger es una aplicación de Android que registra información de GPS en varios formatos (GPX, KML, CSV, NMEA, URL personalizada) y tiene opciones para cargar (SFTP, OpenStreetMap, Google Drive, Dropbox, correo electrónico). Esta aplicación pretende ser lo más eficiente posible con la batería.
Lea acerca de las características de GPSLogger aquí
Puedes encontrarlo en F-Droid.
Puede descargar directamente desde los lanzamientos.
Puedes ayudar con las traducciones en Weblate.
También puede enviar solicitudes de extracción para corregir errores y nuevas funciones.
No soy muy bueno con las interfaces de usuario, por lo que agradecería cualquier trabajo con los diseños.
Licenciado bajo GPL v2 | Licencias de terceros | Política de privacidad
Es una buena práctica verificar las descargas. Una firma PGP, un paquete Cosign y una suma de comprobación SHA256 acompañarán a cada .apk
.
Para verificar la integridad y firma de PGP:
gpg --recv-key 6989CF77490369CFFDCBCD8995E7D75C76CBE9A9
gpg --verify gpslogger-132.apk.asc
(Experimental) Para verificar con Sigstore Cosign, el comando debe estar en las notas de la versión, se verá así:
cosign verify-blob gpslogger-132.apk
--bundle gpslogger-132.apk.cosign.bundle --new-bundle-format
--cert-oidc-issuer https://token.actions.githubusercontent.com
--cert-identity https://github.com/mendhak/gpslogger/.github/workflows/generate-release-apk.yml@refs/head/master
Para verificar la suma de verificación:
sha256sum -c gpslogger-132.apk.SHA256
El proyecto se basa en el complemento del sistema de compilación de Android para Gradle. Estas instrucciones son para Ubuntu Linux con Android Studio, pero para otros sistemas operativos, deberían ser más o menos similares.
Siga las instrucciones en el sitio web para desarrolladores de Android para configurar su computadora para el desarrollo.
Descargue e instale Android Studio (también es muy sencillo)
git clone git://github.com/mendhak/gpslogger.git
Este proyecto utiliza ciertas bibliotecas de Android, puedes instalarlas usando sdkmanager
mal implementado de Google:
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'
Cree un archivo llamado local.properties
, apuntando a su directorio SDK de Android.
cd gpslogger
echo "sdk.dir=/home/mendhak/Programs/Android" > local.properties
Abra Android Studio y elija importar un proyecto. Seleccione el archivo build.gradle
superior en GPSLogger.
Si aparece un cuadro de diálogo Importar, elija Importar proyecto desde un modelo externo.
En la siguiente pantalla, elija los valores predeterminados y continúe (contenedor gradle predeterminado)
Espere un minuto y Android Studio configurará los proyectos y descargará las distintas bibliotecas.
Regístrese para obtener una cuenta con OpenStreetMap e inicie sesión.
Haga clic en 'Mi configuración' y luego en 'Aplicaciones OAuth2'.
Haga clic en 'Registrar su aplicación'
Rellena el formulario con estos datos. Recuerde desmarcar la casilla de verificación 'Aplicación confidencial', ya que se trata de una aplicación móvil.
Después de registrar la aplicación, recibirá una identificación de cliente.
Coloque el ID del cliente en OpenStreetMapManager#getOpenStreetMapClientID().
Si utilizó su propio esquema personalizado, reemplace el valor en AndroidManifest.xml y OpenStreetMapManager#getOpenStreetMapRedirect()
Regístrese para obtener una cuenta en Dropbox.com
Vaya a la página de desarrolladores de Dropbox y haga clic en "Crear una aplicación".
Utilice esta configuración, pero elija un nombre único
Después de crear la aplicación, recibirás una clave de aplicación y un secreto (los de la captura de pantalla son falsos)
Coloque las claves en su ~/.gradle/gradle.properties
así:
GPSLOGGER_DROPBOX_APPKEY=abcdefgh
GPSLOGGER_DROPBOX_APPSECRET=1234123456
Reemplace la clave de la aplicación Dropbox en su archivo AndroidManifest.xml
<!-- Change this to be db- followed by your app key -->
<data android:scheme="db-12341234"/>
Regístrese en Google Cloud Platform. Crea un nuevo proyecto.
En API y servicios, habilite la API de Google Drive.
A continuación, vaya a la pantalla de consentimiento de Oauth y siga los pasos hasta llegar a los alcances. Agregue el alcance https://www.googleapis.com/auth/drive.file
.
Crea algunas credenciales OAuth, de tipo Android.
En el nombre del paquete, utilice com.mendhak.gpslogger
. Para la huella digital del certificado SHA-1, consígala usando el comando keytool -keystore ~/.android/debug.keystore -list -v
.
GPSLogger se compone de algunos componentes principales;
El Event Bus es donde ocurre toda la comunicación cruzada. Varios componentes generan sus eventos en el bus de eventos y otras partes de la aplicación escuchan esos eventos. El más importante es cuando se obtiene una ubicación, se coloca en el bus de eventos y se consume en muchos fragmentos.
GPSLoggingService es donde ocurre todo el trabajo. Este servicio habla con los proveedores de localización (red y satélite). Configura temporizadores y alarmas para el siguiente punto GPS a solicitar. Pasa información de ubicación a los distintos registradores para que puedan escribir archivos. También invoca a los cargadores automáticos para que puedan enviar sus archivos a DropBox, OSM, etc.
También pasa información al Event Bus.
Esta es la principal forma visible en la aplicación. Consta de varios "fragmentos": la vista simple, la vista detallada y la vista grande.
Se encarga de la pantalla principal, los menús y las barras de herramientas.
Los fragmentos escuchan el bus de eventos en busca de cambios de ubicación y lo muestran a su manera.
Flotando hay otros dos objetos. Session
contiene varios datos relacionados con la ejecución actual de GPSLogger, como el nombre del archivo actual, la última ubicación conocida, el recuento de satélites y cualquier otra información que no sea estática pero que sea necesaria para la ejecución actual de GPSLogger.
AppSettings
es una representación de las preferencias del usuario.
Estos objetos son visibles en toda la aplicación y cualquier clase, servicio, actividad o fragmento puede acceder a ellos directamente.
La tarea de Gradle 'ensamblar' se compilará y también buscará una clave GPG para firmar el APK. Primero necesita algo de configuración:
Cree ~/.gradle/gradle.properties
que contenga el almacén de versiones y sus detalles clave, así como los detalles de la clave GPG.
RELEASE_STORE_FILE=/path/to/the.keystore
RELEASE_STORE_PASSWORD=xxxxxxxxxxxxxxxxxx
RELEASE_KEY_ALIAS=gpsloggerkey
RELEASE_KEY_PASSWORD=xxxxxxxxxxxxxxxxxx
signing.gnupg.keyName=xxxxxxxxxxxxxxxxxx
signing.gnupg.passphrase=xxxxxxxxxxxxxxxxxx
Asegúrese de que gpg2 esté instalado
sudo apt install gnupg2
Y asegúrese de que el gnupg.keyname anterior esté en el almacén de claves gpg, eche un vistazo usando gpg2 --list-secret-keys
Una vez que estas piezas estén en su lugar, la tarea de "ensamblaje" debería compilar el APK, firmarlo y crear también una suma de verificación.
Si no aparece en la carpeta gpslogger, ejecuta 'copyFinalAPK' para que copie los archivos APK, ASC y SHA256 a la carpeta gpslogger.
Finalmente cárguelo en Github Releases.
F-Droid observa el repositorio de Github en busca de etiquetas, las creará y las firmará con su propia clave. Entonces, no hay mucho que hacer.
Asegúrese de que gpslogger/build.gradle versionCode
y versionName
contengan el número de versión más reciente que se publicará.
Finalmente etiquete el compromiso,
git tag -s v128
git push origin master --tags
Utilice la imagen de la ventana acoplable fdroidserver. Clone el repositorio de metadatos de fdroid y realice cambios en el archivo com.mendhak.gpslogger.yml.
git clone https://gitlab.com/fdroid/fdroiddata.git
cd fdroiddata
# https://f-droid.org/en/docs/Submitting_to_F-Droid_Quick_Start_Guide/
# 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
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 readmeta
# see if the latest tag will get picked up.
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 checkupdates --auto com.mendhak.gpslogger
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 rewritemeta com.mendhak.gpslogger
# 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