Android

    [Android] local.properties를 사용하여 키 관리하기

    [Android] local.properties를 사용하여 키 관리하기

    안드로이드 프로젝트를 Github와 같은 코드 호스팅 플랫폼에 공유를 하는 경우는 많다. 이 때 애플리케이션에서 사용하는 각종 키나 정보들이 있을 수 있다. 특히 보안에 민감하여 외부로 노출되어서는 안되는 인증 키의 경우에는 Github에 노출되어서는 안된다. 이 글에서는 각종 키들을 루트 프로젝트 경로에 존재하는 local.properties 파일을 사용하여 외부에 노출시키지 않고 개인이 사용하는 방법에 대해서 정리한다. 만약 local.properties 파일이 git(+ 다른 버전관리툴)에서 관리되는 파일이라면 제거한다. (git은 .gitignore에 등록하는 방법을 사용한다.) local.properties파일은 안드로이드 스튜디오 툴에서 자동으로 생성해주는 파일이다. 처음 생성되는 아래와 같은..

    [Android] 위치(Location)

    [Android] 위치(Location)

    안드로이드를 최근에 다시 공부 및 개발을 하고 입장에서 10년전과 많이 달라져 적응하기 어려움이 있다. 이번에 위치정보 기반 모듈 설계 및 구현 시 정리한 내용을 블로그로 재정리하려고 한다. 안드로이드의 위치서비스 안드로이드 어플리케이션은 기기의 여러 센서에서 제공하는 신호를 활용하여 기기 위치를 결정할 수 있다. 특히 사용자의 위치서비스를 제공하기 위해 GPS와 Network를 많이 사용하였다. LocationManager를 이용하여 GPS와 Network의 정보를 이용하여 현재 Location 정보를 얻어서 제공하였다. LocationManager 외에 구글은 Google I/O 2019에서 google-service를 이용하여 사용할 수 있는 FusedLocationProvider API를 발표했다..

    [Android Wear] Ambient Mode에서 Display 정보 업데이트하기

    [Android Wear] Ambient Mode에서 Display 정보 업데이트하기

    아래 내용은 AmbientMode에 대해 이해하고 있다는 가정하에 작성하였다. AmbientMode? 안드로이드에는 배터리 효율화를 위하여 AmbientMode를 지원한다. AOD(Always On Display)가 활성화 되어있을 때 사용자가 기기를 사용하지 않는다면 AmbientMode가 활성화되며 디스플레이에 표시되는 정보의 업데이트를 하지 않고 내부적으로 시스템에 영향을 주는 요인들을 최소화 하게된다. AmbientMode Using AlarmManager 안드로이드는 AmbientMode에서도 디스플레이의 정보를 업데이트할 수 있는 방법을 제공한다. 하지만 짧은 주기의 디스플레이 업데이트는 배터리 소모에 영향을 주게 되므로 개발자가 잘 판단하여 밸런스를 맞춰줘야 한다. AmbientMode를 구..

    Application Foreground/Backgroud 상태 확인하기

    Application이 Foreground인지, Background 상태인지 ActivityLifecycleCallbacks 를 사용하여 확인해본다. enum class ApplicationState { FOREGROUND, BACKGROUND } class ApplicationLifecycleStatus : Application.ActivityLifecycleCallbacks { companion object { var state:ApplicationState = ApplicationState.FOREGROUND } override fun onActivityStarted(activity: Activity) { state = ApplicationState.FOREGROUND } override fun o..

    [Android/Unity] Failed to install the following Android SDK packages as some licences have not been accepted.

    문제 Android AAR 플러그인을 유니티 프로젝트에 추가하여 유니티 프로젝트를 빌드 시 아래와 같은 에러를 마주하는 경우가 있다. Failed to install the following Android SDK packages as some licences have not been accepted. 위 에러는 SDK에 라이센스가 없어서 발생하는 문제입니다. 해당 문제의 전체 에러 콘솔로그이다. FAILURE: Build failed with an exception. * What went wrong: Could not determine the dependencies of task ':unityLibrary:compileDebugAidl'. > Failed to install the foll..

    [Android/Unity] 터미널 환경에서 빌드하기 (Ubuntu)

    유니티프로젝트 를 터미널 환경에서 빌드를 해야할 상황이 있었다. 젠킨스를 사용하여 유니티 프로젝트를 안드로이드 타겟으로 빌드를 해야하는 요구사항이 있었고, 해당 사항을 충족시키기 위한 상황이 있었다. Unity 프로젝트에 스크립트 작성하기 유니티 프로젝트 하위에 Assets/Editor/ 하위에 빌드를 위한 스크립트를 하나 생성한다. 아래 예시는 유니티에서 제공하는 스크립트를 조금 변경하였다. (https://docs.unity3d.com/ScriptReference/BuildPipeline.BuildPlayer.html) 아래 코드는 안드로이드 빌드에 대한 내용이다. using UnityEditor; using UnityEngine; using UnityEditor.Build.Reporting; pub..