GPSLogger는 GPS 정보를 다양한 형식(GPX, KML, CSV, NMEA, 맞춤 URL)으로 기록하고 업로드 옵션(SFTP, OpenStreetMap, Google Drive, Dropbox, 이메일)을 제공하는 Android 앱입니다. 이 앱은 최대한 배터리 효율을 높이는 것을 목표로 합니다.
여기에서 GPSLogger의 기능에 대해 읽어보세요.
F-Droid에서 찾을 수 있습니다.
릴리스에서 직접 다운로드할 수 있습니다.
웨블레이트에서 번역에 도움을 줄 수 있습니다.
버그 수정 및 새로운 기능에 대한 풀 요청을 제출할 수도 있습니다.
저는 UI를 잘 다루지 못하므로 레이아웃 작업을 해주시면 감사하겠습니다!
GPL v2에 따라 라이센스가 부여됨 | 제3자 라이센스 | 개인 정보 보호 정책
다운로드를 확인하는 것이 좋습니다. 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 개발자 웹사이트의 지침에 따라 개발용 컴퓨터를 설정하세요.
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를 받게 됩니다.
OpenStreetMapManager#getOpenStreetMapClientID()에 클라이언트 ID를 입력합니다.
자체 맞춤 구성표를 사용한 경우 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 등에 보낼 수 있도록 자동 업로더를 호출합니다.
또한 이벤트 버스에 정보를 전달합니다.
이는 앱에 표시되는 기본 양식입니다. 이는 단순 보기, 상세 보기, 큰 보기 등 여러 '조각'으로 구성됩니다.
메인 화면, 메뉴 및 도구 모음을 관리합니다.
프래그먼트는 이벤트 버스에서 위치 변경을 수신하고 이를 자체 방식으로 표시합니다.
떠다니는 것은 다른 두 물체입니다. 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 릴리스에 업로드하세요.
F-Droid는 Github 저장소에서 태그를 감시하고 해당 태그를 구축하고 자체 키를 사용하여 서명합니다. 그래서 할 일이 너무 많지 않습니다.
gpslogger/build.gradle versionCode
및 versionName
에 출시될 최신 버전 번호가 포함되어 있는지 확인하세요.
마지막으로 커밋에 태그를 지정하고,
git tag -s v128
git push origin master --tags
fdroidserver 도커 이미지를 사용합니다. 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