안드로이드33 시스템 서비스, 네트워크 활용하기 시스템 서비스 활용 시스템서비스는 단말이 켜졌을때 자동으로 실행되어서 백그라운드에서 동작한다. 이 중 ActivityManager, PackageManager, AlarmManager에 대해 더 알아보자. 첫번째 버튼 : ActivityManager가 프로세스리스트 확인하여 출력. getServiceList()가 호출되고 이 안에서 getRunningAppProcesses()를 호출함으로 앱 프로세스 목록을 확인할 수 있다. public void getServiceList() { ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List processInfoList = manager.getRunni.. 2021. 5. 11. 푸시 알림 설정하기 푸시 메세지란? 단말로 메세지를 보내는 기술적인 방법엔 3가지 방법이 있다. 1: 단순 SMS 사용한 알림 2: 앱에서 서버에 연결을 만들어 둔 후 알림 - 백그라운드 서비스를 이용해 연결을 유지해야 한다. 3: 구글의 푸시서비스(FCM) 사용한 알림 - 구글의 클라우드 서비스를 이용해 메세지 전송한다. 앱에서 서버로 직접 연결할 필요가 없고 단말의 내부연결을 공유하여 메세지를 수신하는 방식이다. 3번째 방법은 현재는 C2DM-> GCM-> FCM 으로 변경되어 사용되고 있다. 이 푸시서비스를 사용하는 앱은 단말에서 연결을 유지하고 있기 때문에 구글 클라우드 서버에 직접 연결하지 않아도 된다. 만약 2번처럼 서버에 연결을 유지하면서 알림을 주려면 연결이 끊어졌는지 일정시간 간격으로 검사하는 polling.. 2021. 5. 10. 앱 위젯 만들기 앱 위젯은 안드로이드 단말의 홈 화면에서 위젯을 바로 보여주고 싶을 때 사용할 수 있다. 위젯은 다른 앱 안에 들어갈 수 있도록 만들어져서 홈화면에 위젯이 보이는 과정은 홈 화면 안에 위젯으로 구성한 앱이 들어가 있다고 생각하면 된다. 앱 위젯은 홈 화면안의 일정영역을 할당받아 보여지지만 결과 화면만을 보여준다. 위젯의 구성은 위젯을 담고있는 그릇인 앱 위젯 호스트와 위젯을 보여주는 제공자인 앱 위젯 제공자로 구성되어 있다. 앱 위젯을 만든다는 건 앱 위젯 제공자를 만드는것이고 앱 위젯 제공자를 구성할 때 필요한 요소는 : 1. 위젯 초기 뷰 레이아웃 : 앱 위젯이 처음에 화면에 나타날때 필요한 레이아웃(XML) 2. 위젯 제공자 정보 객체 : 위젯을 위한 메타데이터(레이아웃, 업데이트 주기 등)을 가진.. 2021. 5. 8. 위치 지도에 표시하기 위치 지도에 보여주기 안드로이드는 지도를 앱 화면 안에서 보여줄 수 있도록 맵 프래그먼트가 제공된다. 이 맵 프래그먼트는 구글맵서비스를 이용해서 Google Play Service모듈을 사용한다. Google Play Service 라이브러리 사용하기 위해선 메뉴 중 Tools -> SDK Manager 를 눌러 매니저 화면을 불러와서 Appearance&Behavior -> System Setting -> Android SDK -> SDK Tools 를 선택해서 들어간다. 이 안에서 Google Play services 가 설치되어 있는지 확인하고 설치 안되어있으면 Install한다. 그리고 File -> Project Structure -> Dependencies -> Modules(app) 을 선택.. 2021. 5. 8. 위치기반 서비스 이용. 내 위치 알려주기. 위치기반 서비스는 지상의 위치정보를 이용해서 어플사용자에게 다양한 서비스를 제공할 수 있다. 내 위치 확인하는 방법 안드로이드 기반 스마트폰의 위치는 위치관리자라는 시스템 서비스가 존재해서 관리한다. android.location 패키지엔 이 클래스를 포함한 다른 위치 관련 클래스들이 정리되어 있다. 내 위치를 확인하는 가장 기본적인 방법은 이 위치 관리자에게 내 위치정보를 요청하는 것이다. 1. 위치관리자 객체참조하기 2. 위치리스너 구현하기 3. 위치정보 업데이트 요청하기 4. 매니페스트에 권한 추가하기 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layou.. 2021. 5. 6. 내용 제공자 내용 제공자는 콘텐트 프로바이더라고 부르며 한 앱에서 관리하는 데이터를 다른 앱에서도 접근할 수 있도록 해준다. 내용제공자도 앱 구성요소여서 시스템에서 관리한다. 즉, 메니페스트에 등록해주어야 한다. 내용제공자는 앱의 보안에 중요한 역할을 하는데 각 앱이 자신의 프로세스와 권한 안에서만 데이터에 접근할 수 있기 때문이다. 내용제공자는 이때 다른 앱에 접근할 수 있도록 데이터 접근 통로를 열어줄 수 있고 이 허용된 통로로만 접근할 수 있다. 내용제공자에서 공유할 수 있는 데이터 : 데이터베이스, 파일, SharedPreferences 이 중 데이터베이스에 접근하는게 가장 일반적이다. 내용제공자는 CRUD에 대응하는 insert(), query(), update(), delete()메서드를 지원하고 내용제공.. 2021. 5. 4. 데이터베이스 안드로이드 단말이나 아이폰같은 스마트폰에서는 데이터베이스를 기본으로 제공해서 앱이 단말에 데이터를 저장할 땐 대부분 데이터베이스를 사용한다. 모바일 데이터베이스? 앱을 만들면서 간단히 데이터를 저장하고 싶을 땐 SharedPreferences를 사용할 수 있다. 하지만 많은 양의 데이터를 체계적으로 관리하기 위해선 데이터베이스 사용이 훨씬 용이한데 표준 SQL문으로 데이터를 조회하는 관계형 디비를 단말에서 사용하면 아주 효율적이다. 안드로이드는 임베디드 데이터베이스로 개발된 경량급 관계형 DB인 SQLite를 가지고 있다. SQLite는 파일로 만들어진 하위 수준의 기능을 가지면서 DB 기능까지 그대로 사용할 수 있다. 또 저장될땐 파일로 저장되어서 DB의 복사,이동,삭제가 매우 쉽다는 장점이 있다. 또.. 2021. 4. 29. 웹 요청, Volley 사용, Json 다뤄보기 웹 요청하기 비연결성인 HTTP는 페이지 정보를 요청할 때마다 소켓을 새로 연결하고 응답을 받은 다음엔 소켓의 연결을 끊는게 일반적이다. 그 소켓 연결 위에서 HTTP 프로토콜에 맞는 요청을 보내고 응답을 받아 처리한다. HTTP로 웹 서버에 접속하기 HTTP로 웹서버에 접속하는 것도 소켓처럼 표준자바방식을 그대로 사용한다. URL객체를 만들고 이 객체의 openConnection()를 호출해서 HttpURLConnection 객체를 만드는게 HTTP클라이언트를 만드는 가장 간단한 방법이다. URL에 들어있는 문자열이 "http://"를 포함하면 HTTP연결위한 객체를 만들게 되므로 URLConnection을 HttpURLConnection으로 형변환해서 사용할 수 있다. 이 경우엔 GET이나 POST같.. 2021. 4. 28. 서버에 데이터 요청 후 응답받기 - 소켓 네트워킹 네트워킹은 인터넷에 연결되어 있는 원격지의 서버 또는 원격지의 단말과 통신해서 데이터를 주고받는 동작들을 포함한다. 네트워킹을 통해 단말의 데이터만 사용하는 것이 아닌 다른 위치의 서버나 다른 사람의 단말의 데이터를 조회할 수도 있다. 네트워크 연결방식은 2티어 C/S방식이 가장 간단한 방식이다. 클라이언트가 서버에 연결되어 데이터를 요청하고 응답받는 단순한 개념으로 쉽게 이해할 수 있다. HTTP, FTP, POP3 프로토콜 등의 연결방식은 모두 2티어로 서버에 접속하여 처리하는 것이다. 3티어 연결방식을 사용하면 서버를 더 유연하게 구성할 수 있다. 응용서버와 데이터 서버로 서버를 나눠 구성하면 DB를 분리할 수 있어 중간에 로직을 처리하는 응용서버가 더 다양한 역할을 할 수 있다는 장점이 .. 2021. 4. 28. 이전 1 2 3 4 다음