개발/Android

안드로이드 만보기 샘플 코드 이해해보기 (android pedometer)

doyou1 2023. 2. 5. 21:01
반응형

- references : https://github.com/j4velin/Pedometer

 

GitHub - j4velin/Pedometer: Lightweight pedometer app for Android using the hardware step sensor

Lightweight pedometer app for Android using the hardware step sensor - GitHub - j4velin/Pedometer: Lightweight pedometer app for Android using the hardware step sensor

github.com

 

-----------------230205-----------------

만보기 앱을 출시해보려하는데, 구현 중에 계속 실패하게 되서.. 찾던 중 발견한 샘플이다.

옛날 코드이기도 하고, 처음 보는 로직 및 API들도 있어서 분석조차도 힘들다..

하나하나 공부하면서 코드 전반을 이해하려 한다.

 

- AndroidManifest.xml에서 확인할 수 있는 권한

android.permission.RECEIVE_BOOT_COMPLETED
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.FOREGROUND_SERVICE
android.permission.WAKE_LOCK

 

- AndroidManifest.xml에서 확인할 수 있는 uses-feature

android.hardware.sensor.stepcounter

 

- AndroidManifest.xml에서 확인할 수 있는 컴포넌트

* android:launchMode란?

1. activity

1.1. MainActivity

1.2. WidgetConfig

1.2.1. android.appwidget.action.APPWIDGET_CONFIGURE

 

2. broadcast receiver

2.1. BootReceiver

2.1.1. android.intent.action.BOOT_COMPLETED

2.2. AppUpdateReceiver

2.2.1. android.intent.action.MY_PACKAGE_REPLACED

2.3. Widget

2.3.1. android.appwidget.action.APPWIDGET_UPDATE

 

3. service

3.1. SensorListener

3.2. DashClock

3.2.1. com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA

3.2.2. com.google.android.apps.dashclock.Extension

3.3. WidgetUpdateService

3.3.1. android.permission.BIND_JOB_SERVICE

 

키워드 하나-하나 살펴보자.

 

-references: https://developer.android.com/reference/android/Manifest.permission

 

- android.permission.RECEIVE_BOOT_COMPLETED

응용 프로그램이 시스템 부팅이 완료된 후 브로드캐스트되는 Intent.ACTION_BOOT_COMPLETED를 수신할 수 있습니다. 이 권한을 요청하지 않으면 해당 시간에 브로드캐스트를 수신할 수 없습니다. 이 권한을 유지하는 것은 보안에 아무런 영향을 미치지 않지만, 시스템을 시작하는 데 걸리는 시간을 늘리고 사용자가 알지 못하는 사이에 응용 프로그램이 자체적으로 실행되도록 허용하여 사용자 환경에 부정적인 영향을 미칠 수 있습니다. 따라서 사용자에게 이 기능을 표시하려면 이 기능의 사용을 명시적으로 선언해야 합니다.

 

- android.permission.FOREGROUND_SERVICE

일반 응용 프로그램에서 Service.startForeground를 사용할 수 있습니다.

 

Service.startForeground?

 

 

 

 

 

 

 

 

 

 

반응형