![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bQvxCO/btrA7G5GlFE/khc7xkaoYYkk3ZU22O8XtK/img.png)
예제 앱을 전부 구성하고 APK 빌드를 하려고 했는데, key 생성도 해야하고 war 파일보다 설정해줘야 할 게 많은 거 같아서 정리를 좀 하려고 한다. 우선 빌드할 프로젝트에서 Build>Generate Signed Bundle/APK... 를 클릭하여 빌드 창을 연다. key store 는 제작한 앱에 넣을 서명 같은 개념으로 이 파일이 있으므로써 해당 어플은 구글 플레이 스토어에 APK를 올릴 수 있게 된다. Create New 를 클릭하여 새 key store를 생성하고 서명 정보를 입력해준다. 이제 Next 를 누르고 해당 서명이 release인 지 debug 버전인 지 체크 후에 key store를 등록한다. 이후 빌드를 진행하면 아래 경로에 APK 파일이 생성된 것을 확인할 수 있다.
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/d7gkEt/btrASvry60A/Pjg56b9h9roe4AUkcsni8K/img.png)
Multi Window는 단말 화면에 여러 개의 액티비티가 보이도록 지원하는 기능이다. 이 기능은 사용자가 필요에 따라 만드는 기능이지만 앱에서 별도의 처리를 해주어야 하는 경우도 있기 때문에 따로 다중 창을 지원하는 액티비티 메서드를 사용하는 경우가 많다. 다중 창으로 어플을 열었을 때 화면 레이아웃을 이에 맞게 제어할 수 있는 메서드는 대표적으로 다음과 같다. public boolean isInMultiWindowMode(): 현재 다중 창 모드에 있는 지 체크 public boolean isInPictureInPictureMode(): 현재 PIP 모드에 있는 지 확인 public void onMultiWindowModeChanged(boolean isInMultiWindowMode, Configu..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bwVa0s/btrAPOkjRAA/k6YOOkDeEHIkmYD19Gocb1/img.png)
단말의 인터넷 연결 상태를 확인하고, 연결이 되어 있지 않다면 어떤 에러 메시지나 엑티비티를 띄우기 위해서는 ConectivityService를 활용하면 된다. 딱히 어려운 건 아니니 바로 확인해보자. ◎MainActivity.java package com.example.samplesensor; import android.content.Context; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.os.Bundle; import android.view.View; import android.widget.Button; import and..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/kYvRA/btrAPNez6S0/pocpB0oHEvDStuhYEky0GK/img.png)
시스템 서비스는 단말이 켜졌을 때 자동으로 실행되어 백그라운드에서 동작하는 서비스이다. 이런 시스템 서비스 중에 지금까지 인플레이션을 위한 시스템 서비스나 센서을 위한 시스템 서비스는 공부를 하며 사용을 했었다. 이외에도 안드로이드는 다양한 시스템 서비스를 가지고 있는데, 그 중 ActivityManager, PackageManager, AlarmManager를 사용해보려고 한다. ActivityManager: 액티비티나 서비스를 관리하는 시스템 서비스로 앱의 실행 상태를 알 수 있도록 한다. PackageManager: 앱의 설치에 대한 정보를 알 수 있도록 한다. AlarmManager: 일정 시간에 알림을 받을 수 있도록 시스템에 등록해주는 역할 바로 이 시스템 서비스들을 사용한 간단한 예제를 확인..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/ILwq4/btrAQhAjrTU/lJtUFgGzm9ApAofD7STEL0/img.png)
스마트폰이 가지고 있는 다양한 센서의 정보들은 SensorManager 라는 시스템 서비스를 통해 모두 같은 방식으로 사용할 수 있다. 다음은 안드로이드에서 지원하는 대표적인 센서들이다. 센서 이름 상수 설명 Accelerometer TYPE_ACCELEROMETER 가속도 감지, 외부의 충격량과 방향 감지 (단위: m/s^2)(중력 + 선형 가속) Gyroscrope TYPE_GYROSCOPE 회전 정보 감지, 다양한 축을 따른 회전각 감지 Gravity TYPE_GRAVITY 축의 방향과 중력 감지 Light TYPE_LIGHT 빛의 세기 감지 Linear Acceleration TYPE_LINEAR_ACCELERATION 각 축에 따른 가속도를 감지하는 3차원 벡터 Proximity TYPE_PRO..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/uKbJX/btrAwGzLSln/X9UOwRkHTGLDknt4vqXNuk/img.png)
푸시 서비스는 메시지를 구글 클라우드 서ㅓ에서 구글 Play 스토어가 설치된 단말기로 보내주는 방식이다. 이 푸시 서비스를 단말에서 연결을 유지하고 있기 때문에 사용하는 각각은 앱의 구글 클라우드 서버에서 직접 연결하지 않는다. 만, 이 구글 서비스를 이용하지 않고 직접 구현하려면 단말에서 서버로 연결을 유지하며ㅓ 동시에 연결을 지속적으로 유지해야 한다. 이는 polling 매커니즘을 구현하여 일정 시간 간격으로 연결이 끊어졌는 지 확인해야 하는데, 이러한 매커니즘은 휴대폰의 리소스를 많이 잡아 먹는 문제가 있다. 다음은 안드로이드에서 제공하는 FCM 푸시 메시지 처리 과정을 순서대로 나타낸 것이다. 단말은 자신을 클라우드 서버에 등록하고 서버로부터 등록 ID 를 받는다. 등록 ID는 메시지 전송을 담당..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/cTgpov/btrAtcj3qRp/c4kjD2MWakEZHnYYMxbODk/img.gif)
상단 알림은 Notification 객체를 이용하여 띄울 수 있으며, 이 객체는 NotificationCompat.Builder 객체를 호출하여 참조할 수 있다. 간단하게 버튼을 클릭하면 상단에 알림을 띄우는 예제를 확인해보자. ◎MainActivity.java package com.example.samplenoti; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Build; import android.v..
사용자 알림을 주는 가장 간단한 방식으로 소리와 진동을 들 수 있다. 안드로이드에서 진동은 Vibrator라는 시스템 서비스 객체를 사용하며, 알림 소리의 경우는 Ringtone 객체를 사용한다. 어려울 거 없으니 바로 예제를 확인해보자. ◎MainActivity.java package com.example.samplevibrate; import android.content.Context; import android.media.MediaPlayer; import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.os.VibrationEffect; import android.o..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bXCFc0/btrAajR1Znm/tetaVTI2RDeOZAwkH6CTM1/img.png)
안드로이드에서는 앱 화면 안에 지도를 넣을 수 있도록 MapFragment가 제공된다. MapFragment는 새로운 방식의 구글맵 서비스 v2 기능을 사용할 수 있도록 추가된 기능으로 Google Play Service 모듈을 사용한다. 다음은 XML 레이아웃에서 MapFragment를 추가해서 지도를 보여줄 때 필요한 과정이다. Google Play Services 라이브러리 사용 설정 XML 레이아웃에 MapFragment 추가하기 소스코드에서 내 위치로 지도 이동시키기 Manifest에 설정 추가하기 지도 API 추가하기 1. Google Play Services 라이브러리 사용 설정 SDK Manager를 열고 SDK Tools 탭에서 Google Play Service 를 설치한 뒤 체크하여 ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/Pyxvn/btrAaUYJBtg/4mMYGQO1HBTK0v1xRETIHk/img.png)
안드로이드 기반의 스마트폰 위치는 LocationManager라는 시스템 서비스가 관리한다. 실제로 android.location 패키지에는 이 클래스를 포함아여 위치 정보를 확인하거나 확인된 위치 정보를 사용하는 데 필요한 클래스들이 정의되어 있다. 현재 단말의 위치를 확인하는 가장 기본적인 방법은 LocationManager에게 위치 정보를 요청하는 것으로 다음 단계를 거친다. LocationManager 객체 참조: getSystemService() 메서드를 이용하여 호출 위치 리스너 구현: LocationManager는 현재 위치를 LocationListener를 통해 받게 되므로 새로운 리스너를 구현하여 전달 받은 위치 정보를 처리한다. 위치 정보 업데이트 요청: LocationManager에게..
- 맛집
- redux-thunk
- 파니노구스토
- AsyncStorage
- 인천 구월동 이탈리안 맛집
- react-native
- Promise
- react
- redux
- javascript
- 정보보안기사 #실기 #정리
- await
- 인천 구월동 맛집
- 이탈리안 레스토랑
- Async
- Total
- Today
- Yesterday