GPSLogger は、GPS 情報をさまざまな形式 (GPX、KML、CSV、NMEA、カスタム URL) に記録し、アップロードのオプション (SFTP、OpenStreetMap、Google Drive、Dropbox、電子メール) を備えた Android アプリです。このアプリは、可能な限りバッテリー効率を高めることを目指しています。
GPSLogger の機能については、こちらをご覧ください。
F-Droid で見つけることができます
リリースから直接ダウンロードできます。
Weblate で翻訳をお手伝いできます。
バグ修正や新機能についてのプル リクエストを送信することもできます。
私は UI があまり得意ではないので、レイアウトに関する作業は大歓迎です。
GPL v2 に基づいてライセンス供与 |サードパーティのライセンス |プライバシーポリシー
ダウンロードを確認することをお勧めします。 PGP 署名、Cosign バンドル、および SHA256 チェックサムが各.apk
に付属します。
PGP の整合性と署名を検証するには:
gpg --recv-key 6989CF77490369CFFDCBCD8995E7D75C76CBE9A9
gpg --verify gpslogger-132.apk.asc
(実験的) Sigstore Cosign で検証するには、コマンドがリリース ノートに含まれている必要があります。コマンドは次のようになります。
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
チェックサムを確認するには:
sha256sum -c gpslogger-132.apk.SHA256
このプロジェクトは、Gradle 用の Android ビルド システム プラグインに基づいています。これらの手順は Android Studio を使用した Ubuntu Linux を対象としていますが、他の OS でもほぼ同様の手順になります。
Android 開発者 Web サイトの指示に従って、開発用にコンピューターをセットアップします。
Android Studio をダウンロードしてインストールします (簡単な手順もあります)
git clone git://github.com/mendhak/gpslogger.git
このプロジェクトは特定の Android ライブラリを使用します。これらのライブラリは、Google の不十分に実装された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'
Android SDK ディレクトリを指す、 local.properties
というファイルを作成します。
cd gpslogger
echo "sdk.dir=/home/mendhak/Programs/Android" > local.properties
Android Studio を開き、プロジェクトのインポートを選択します。 GPSLogger の下の最上位のbuild.gradle
ファイルを選択します。
インポートダイアログが表示された場合は、外部モデルからプロジェクトをインポートすることを選択します
次の画面で、デフォルトを選択して続行します (デフォルトの Gradle ラッパー)
しばらく待つと、Android Studio がプロジェクトを構成し、さまざまなライブラリをダウンロードします。
OpenStreetMap でアカウントにサインアップしてログインします。
「私の設定」をクリックし、「OAuth2 アプリケーション」をクリックします。
「アプリケーションを登録」をクリックします
これらの詳細をフォームに記入してください。これはモバイル アプリであるため、[機密アプリケーション] チェックボックスを忘れずにオフにしてください。
アプリケーションを登録すると、クライアント ID が発行されます。
クライアント ID を OpenStreetMapManager#getOpenStreetMapClientID() に配置します。
独自のカスタム スキームを使用した場合は、AndroidManifest.xml と OpenStreetMapManager#getOpenStreetMapRedirect() の値を置き換えます。
Dropbox.com でアカウントにサインアップする
Dropbox 開発者ページに移動し、「アプリの作成」をクリックします。
これらの設定を使用しますが、一意の名前を選択してください
アプリを作成すると、アプリのキーとシークレットが届きます(スクリーンショットにあるものは偽物です)。
次のように~/.gradle/gradle.properties
にキーを配置します。
GPSLOGGER_DROPBOX_APPKEY=abcdefgh
GPSLOGGER_DROPBOX_APPSECRET=1234123456
Dropbox アプリ キーを AndroidManifest.xml ファイルに置き換えます
<!-- Change this to be db- followed by your app key -->
<data android:scheme="db-12341234"/>
Google Cloud Platform にサインアップします。新しいプロジェクトを作成します。
[API とサービス] で、Google Drive API を有効にします。
次に、Oauth 同意画面に移動し、スコープに到達するまで手順を実行します。 https://www.googleapis.com/auth/drive.file
スコープを追加します。
Android タイプの OAuth 資格情報をいくつか作成します。
パッケージ名の下で、 com.mendhak.gpslogger
を使用します。 SHA-1 証明書のフィンガープリントについては、 keytool -keystore ~/.android/debug.keystore -list -v
コマンドを使用して取得します。
GPSLogger は、いくつかの主要コンポーネントで構成されています。
イベント バスは、すべての相互通信が行われる場所です。さまざまなコンポーネントがイベント バス上でイベントを発生させ、アプリケーションの他の部分がそれらのイベントをリッスンします。最も重要なのは、位置が取得されると、その位置がイベント バスに配置され、多くのフラグメントによって消費されることです。
GPSLoggingService はすべての作業が行われる場所です。このサービスは位置プロバイダー (ネットワークおよび衛星) と通信します。次に要求される GPS ポイントのタイマーとアラームを設定します。ファイルを書き込めるように、さまざまなロガーに位置情報を渡します。また、自動アップローダーを呼び出して、ファイルを DropBox や OSM などに送信できるようにします。
また、情報をイベント バスに渡します。
これは、アプリ内で表示されるメインのフォームです。それは、単純なビュー、詳細なビュー、全体的なビューといったいくつかの「フラグメント」で構成されています。
メイン画面、メニュー、ツールバーを処理します。
フラグメントはイベント バスをリッスンして位置の変更を検出し、独自の方法で表示します。
他に 2 つの物体が浮かんでいます。 Session
には、現在のファイル名、最後に確認された位置、衛星数、および静的ではないが GPSLogger の現在の実行に必要なその他の情報など、現在の GPSLogger の実行に関連するさまざまな情報が含まれています。
AppSettings
ユーザーの設定を表します。
これらのオブジェクトはアプリケーション全体で表示され、任意のクラス、サービス、アクティビティ、またはフラグメントから直接アクセスできます。
「アセンブル」Gradle タスクがビルドされ、APK に署名するための GPG キーも検索されます。最初にいくつかの設定が必要です。
リリース ストアとそのキーの詳細、および GPG キーの詳細を含む~/.gradle/gradle.properties
を作成します。
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
gpg2 がインストールされていることを確認してください
sudo apt install gnupg2
そして、上記の gnupg.keyname が gpg キーストアにあることを確認し、 gpg2 --list-secret-keys
使用して調べてください。
これらの要素が配置されたら、「アセンブル」タスクで APK を構築し、署名し、チェックサムも作成する必要があります。
gpslogger フォルダーに表示されない場合は、「copyFinalAPK」を実行して、APK、ASC、SHA256 ファイルを gpslogger フォルダーにコピーします。
最後にGithub Releasesにアップロードします。
F-Droid は、Github リポジトリでタグを監視し、それらのタグを構築し、独自のキーを使用して署名します。したがって、やるべきことはあまりありません。
gpslogger/build.gradle versionCode
とversionName
に、リリースされる最新のバージョン番号が含まれていることを確認してください。
最後にコミットにタグを付けます。
git tag -s v128
git push origin master --tags
fdroidserver Docker イメージを使用します。 fdroid メタデータ リポジトリのクローンを作成し、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