GPSLogger adalah aplikasi Android yang mencatat informasi GPS ke berbagai format (GPX, KML, CSV, NMEA, URL Khusus) dan memiliki opsi untuk mengunggah (SFTP, OpenStreetMap, Google Drive, Dropbox, Email). Aplikasi ini bertujuan untuk menggunakan baterai seefisien mungkin.
Baca tentang fitur GPSLogger di sini
Anda dapat menemukannya di F-Droid
Anda dapat mengunduh langsung dari rilisnya.
Anda dapat membantu terjemahan di Weblate.
Anda juga dapat mengirimkan permintaan penarikan untuk perbaikan bug dan fitur baru.
Saya tidak pandai dalam UI, jadi pekerjaan apa pun dengan tata letak akan dihargai!
Berlisensi di bawah GPL v2 | Lisensi pihak ketiga | Kebijakan privasi
Merupakan praktik yang baik untuk memverifikasi unduhan. Tanda tangan PGP, bundel Cosign, dan checksum SHA256 akan menyertai setiap .apk
.
Untuk memverifikasi integritas dan tanda tangan PGP:
gpg --recv-key 6989CF77490369CFFDCBCD8995E7D75C76CBE9A9
gpg --verify gpslogger-132.apk.asc
(Eksperimental) Untuk memverifikasi dengan Sigstore Cosign, perintahnya harus ada di catatan rilis, akan terlihat seperti ini:
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
Untuk memverifikasi checksum:
sha256sum -c gpslogger-132.apk.SHA256
Proyek ini didasarkan pada plugin sistem build Android untuk Gradle. Petunjuk ini ditujukan untuk Ubuntu Linux dengan Android Studio, tetapi untuk OS lain, kira-kira serupa.
Ikuti petunjuk di Situs Web Pengembang Android untuk menyiapkan komputer Anda untuk pengembangan.
Download dan install Android Studio (ada juga snapnya)
git clone git://github.com/mendhak/gpslogger.git
Proyek ini menggunakan perpustakaan Android tertentu, Anda dapat menginstalnya menggunakan sdkmanager
Google yang diterapkan dengan buruk :
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'
Buat file bernama local.properties
, arahkan ke direktori Android SDK Anda.
cd gpslogger
echo "sdk.dir=/home/mendhak/Programs/Android" > local.properties
Buka Android Studio dan pilih untuk mengimpor proyek. Pilih file build.gradle
paling atas di bawah GPSLogger.
Jika Anda mendapatkan dialog Impor, pilih Impor proyek dari model eksternal
Di layar berikutnya, pilih default dan lanjutkan (pembungkus gradle default)
Tunggu sebentar dan Android Studio akan mengonfigurasi proyek dan mengunduh berbagai perpustakaan.
Daftarkan akun di OpenStreetMap dan log in.
Klik 'Pengaturan Saya', lalu 'Aplikasi OAuth2'
Klik 'Daftarkan aplikasi Anda'
Isi formulir dengan rincian ini. Ingatlah untuk menghapus centang pada kotak 'Aplikasi Rahasia', karena ini adalah aplikasi seluler.
Setelah mendaftarkan aplikasi, Anda akan menerima ID Klien.
Tempatkan ID Klien di OpenStreetMapManager#getOpenStreetMapClientID().
Jika Anda menggunakan skema khusus Anda sendiri, ganti nilai di AndroidManifest.xml dan OpenStreetMapManager#getOpenStreetMapRedirect()
Daftar akun dengan Dropbox.com
Buka halaman Pengembang Dropbox dan klik 'Buat Aplikasi'
Gunakan pengaturan ini, tetapi pilih nama yang unik
Setelah membuat aplikasi, Anda akan menerima kunci dan rahasia aplikasi (yang ada di tangkapan layar adalah palsu)
Tempatkan kunci di ~/.gradle/gradle.properties
Anda seperti ini:
GPSLOGGER_DROPBOX_APPKEY=abcdefgh
GPSLOGGER_DROPBOX_APPSECRET=1234123456
Ganti kunci aplikasi Dropbox ke file AndroidManifest.xml Anda
<!-- Change this to be db- followed by your app key -->
<data android:scheme="db-12341234"/>
Daftar ke Google Cloud Platform. Buat proyek baru.
Di bawah API dan Layanan, aktifkan API Google Drive.
Selanjutnya, buka Layar Persetujuan Oauth, ikuti langkah-langkahnya hingga Anda mencapai cakupan. Tambahkan cakupan https://www.googleapis.com/auth/drive.file
.
Buat beberapa kredensial OAuth, jenis Android.
Di bawah nama paket, gunakan com.mendhak.gpslogger
. Untuk sidik jari Sertifikat SHA-1, dapatkan menggunakan perintah keytool -keystore ~/.android/debug.keystore -list -v
.
GPSLogger terdiri dari beberapa komponen utama;
Bus Acara adalah tempat semua komunikasi lintas terjadi. Berbagai komponen memunculkan acaranya di Bus Acara, dan bagian lain aplikasi mendengarkan acara tersebut. Yang paling penting adalah ketika suatu lokasi diperoleh, ditempatkan di bus acara dan dikonsumsi oleh banyak fragmen.
GPSLoggingService adalah tempat semua pekerjaan dilakukan. Layanan ini berbicara dengan penyedia lokasi (jaringan dan satelit). Ini mengatur pengatur waktu dan alarm untuk meminta titik GPS berikutnya. Ini meneruskan informasi lokasi ke berbagai logger sehingga mereka dapat menulis file. Itu juga memanggil pengunggah otomatis sehingga mereka dapat mengirim file mereka ke DropBox, OSM, dll.
Itu juga meneruskan informasi ke Bus Acara.
Ini adalah formulir utama yang terlihat di aplikasi. Ini terdiri dari beberapa 'fragmen' - tampilan sederhana, tampilan detail, dan tampilan besar.
Ini menangani layar utama, menu dan toolbar.
Fragmen mendengarkan Bus Acara untuk perubahan lokasi dan menampilkannya dengan caranya sendiri.
Mengambang adalah dua benda lainnya. Session
berisi berbagai informasi terkait dengan pengoperasian GPSLogger saat ini, seperti nama file saat ini, lokasi terakhir yang diketahui, jumlah satelit, dan informasi lainnya yang tidak statis namun diperlukan untuk pengoperasian GPSLogger saat ini.
AppSettings
adalah representasi preferensi pengguna.
Objek-objek ini terlihat di seluruh aplikasi dan dapat diakses langsung oleh kelas, layanan, aktivitas, atau fragmen apa pun.
Tugas Gradle 'merakit' akan dibuat, dan juga mencari kunci GPG untuk menandatangani APK. Perlu beberapa pengaturan terlebih dahulu:
Buat ~/.gradle/gradle.properties
yang berisi penyimpanan rilis dan detail kuncinya, serta detail kunci 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
Pastikan gpg2 diinstal
sudo apt install gnupg2
Dan pastikan gnupg.keyname di atas ada di gpg keystore, lihat menggunakan gpg2 --list-secret-keys
Setelah bagian-bagian ini terpasang, tugas 'merakit' harus membuat APK, menandatanganinya, dan membuat checksum juga.
Jika tidak muncul di folder gpslogger, jalankan 'copyFinalAPK' agar menyalin file APK, ASC dan SHA256 ke folder gpslogger.
Akhirnya unggah ke Github Releases.
F-Droid mengawasi repositori Github untuk mencari tag, dan akan membuat tag tersebut, dan menandatanganinya menggunakan kuncinya sendiri. Jadi, tidak banyak yang bisa dilakukan.
Pastikan gpslogger/build.gradle versionCode
dan versionName
berisi nomor versi terbaru yang akan dirilis.
Akhirnya beri tag pada komit,
git tag -s v128
git push origin master --tags
Gunakan gambar buruh pelabuhan fdroidserver. Kloning repo metadata fdroid dan buat perubahan pada file 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