드디어 APK를 추출하고 내 폰에 설치를 해보려고 했는데, 자꾸만 설치가 안되고 에러가 뜨길래 도대체 뭐가 문제인지 스마트폰을 직접 연결하여 돌려보니, 진짜 뭐가 문제인 지 감도 안잡히는 에러가 띡 떴다. 에러 내용: Installation failed due to: 'Failed to commit install session 1502073924 with command cmd package install-commit 1502073924. Error: -127: Package com.example.diary attempting to declare permission com.example.diary.andpermission.bridge in group com.example.diary.andpermission..
예제 앱을 전부 구성하고 APK 빌드를 하려고 했는데, key 생성도 해야하고 war 파일보다 설정해줘야 할 게 많은 거 같아서 정리를 좀 하려고 한다. 우선 빌드할 프로젝트에서 Build>Generate Signed Bundle/APK... 를 클릭하여 빌드 창을 연다. key store 는 제작한 앱에 넣을 서명 같은 개념으로 이 파일이 있으므로써 해당 어플은 구글 플레이 스토어에 APK를 올릴 수 있게 된다. Create New 를 클릭하여 새 key store를 생성하고 서명 정보를 입력해준다. 이제 Next 를 누르고 해당 서명이 release인 지 debug 버전인 지 체크 후에 key store를 등록한다. 이후 빌드를 진행하면 아래 경로에 APK 파일이 생성된 것을 확인할 수 있다.
Multi Window는 단말 화면에 여러 개의 액티비티가 보이도록 지원하는 기능이다. 이 기능은 사용자가 필요에 따라 만드는 기능이지만 앱에서 별도의 처리를 해주어야 하는 경우도 있기 때문에 따로 다중 창을 지원하는 액티비티 메서드를 사용하는 경우가 많다. 다중 창으로 어플을 열었을 때 화면 레이아웃을 이에 맞게 제어할 수 있는 메서드는 대표적으로 다음과 같다. public boolean isInMultiWindowMode(): 현재 다중 창 모드에 있는 지 체크 public boolean isInPictureInPictureMode(): 현재 PIP 모드에 있는 지 확인 public void onMultiWindowModeChanged(boolean isInMultiWindowMode, Configu..
단말의 인터넷 연결 상태를 확인하고, 연결이 되어 있지 않다면 어떤 에러 메시지나 엑티비티를 띄우기 위해서는 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..
시스템 서비스는 단말이 켜졌을 때 자동으로 실행되어 백그라운드에서 동작하는 서비스이다. 이런 시스템 서비스 중에 지금까지 인플레이션을 위한 시스템 서비스나 센서을 위한 시스템 서비스는 공부를 하며 사용을 했었다. 이외에도 안드로이드는 다양한 시스템 서비스를 가지고 있는데, 그 중 ActivityManager, PackageManager, AlarmManager를 사용해보려고 한다. ActivityManager: 액티비티나 서비스를 관리하는 시스템 서비스로 앱의 실행 상태를 알 수 있도록 한다. PackageManager: 앱의 설치에 대한 정보를 알 수 있도록 한다. AlarmManager: 일정 시간에 알림을 받을 수 있도록 시스템에 등록해주는 역할 바로 이 시스템 서비스들을 사용한 간단한 예제를 확인..
스마트폰이 가지고 있는 다양한 센서의 정보들은 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..
푸시 서비스는 메시지를 구글 클라우드 서ㅓ에서 구글 Play 스토어가 설치된 단말기로 보내주는 방식이다. 이 푸시 서비스를 단말에서 연결을 유지하고 있기 때문에 사용하는 각각은 앱의 구글 클라우드 서버에서 직접 연결하지 않는다. 만, 이 구글 서비스를 이용하지 않고 직접 구현하려면 단말에서 서버로 연결을 유지하며ㅓ 동시에 연결을 지속적으로 유지해야 한다. 이는 polling 매커니즘을 구현하여 일정 시간 간격으로 연결이 끊어졌는 지 확인해야 하는데, 이러한 매커니즘은 휴대폰의 리소스를 많이 잡아 먹는 문제가 있다. 다음은 안드로이드에서 제공하는 FCM 푸시 메시지 처리 과정을 순서대로 나타낸 것이다. 단말은 자신을 클라우드 서버에 등록하고 서버로부터 등록 ID 를 받는다. 등록 ID는 메시지 전송을 담당..
상단 알림은 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..
안드로이드에서는 앱 화면 안에 지도를 넣을 수 있도록 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 를 설치한 뒤 체크하여 ..
- 정보보안기사 #실기 #정리
- 이탈리안 레스토랑
- AsyncStorage
- Promise
- await
- react
- 인천 구월동 이탈리안 맛집
- redux-thunk
- javascript
- Async
- 인천 구월동 맛집
- react-native
- 맛집
- redux
- 파니노구스토
- Total
- Today
- Yesterday