일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Service
- PHP
- workmanager
- jobschduler
- firebase
- Library
- 검사
- alarmanager
- Job
- jobdispatcher
- Background
- schedule
- epmty
- Android
- 빈
- livedatam
- shceduler
- Today
- Total
목록분류 전체보기 (163)
에몽이
Introducing Compile-Only DependenciesOne of the most highly-anticipated Gradle features has just arrived in Gradle 2.12: support for declaring compile-only dependencies. For Java developers familiar with Maven, compile-only dependencies function similarly to Maven’s provided scope, allowing you to declare non-transitive dependencies used only at compilation time. While a similar capability has b..
The other day, I was checking support requestes for Glucosio, a Diabetes app I’m building, when I found a mail from an user complaining about some “invasive permissions” we were asking.My first reaction was: What? We were just asking for storage writingpermissions (to export data and statistics), NFC sensor access to receive data from sensors (like FreeStyle Libre) and network access, for our re..
지난 시간엔 사운들리 백엔드에 대해 설명을 드렸었죠. 이번 시간엔 사운들리 서비스중 클라이언트에 해당하는 안드로이드 SDK, 그 중에서도 백그라운드 서비스에 초점을 맞추어 설명을 해 볼까 합니다.안드로이드의 특징 중 하나로Service 를 들 수 있습니다. 이 서비스란 녀석은 백그라운드에서 실행 될 수 있다는점이 가장 큰 특징인데요. 물론 iOS 에서도 일부 지원은 합니다만 매우 제한적인 경우(음악 재생 등)에만 사용 가능합니다.제가 생각하는 백그라운드 서비스 개발 시 유의 사항은 아래와 같습니다.동작 기간 - 상시 동작 해야 하는가, 특정 조건에서 특정 작업을 할때만 동작 해야 하는가글로벌 프로세스 사용 유무 - 서로 다른 어플리케이션에서 접근이 가능 해야 하는가동작 조건 - 특정 시간 혹은 기간마다 ..
TL; DR: 안드로이드 앱을 구현할 때 경우에 따라 서비스를 별도의 프로세스로 구분하는 것이 유리할 수 있습니다. 프로세스를 분리하면 어떤 장점이 있는지, 그리고 이때 서비스와 액티비티 간 통신을 위해 어떤 방법을 사용할 수 있는지 정리해보았습니다. 언제 프로세스를 분리할까?안드로이드는 여러 가지 의미로 유연한 플랫폼입니다. 앱 개발자는 액티비티, 서비스, 리시버, 콘텐츠 프로바이더 등 앱 구성요소를 다양하게 조합하여 앱을 구현할 수 있고, 매니페스트에 android:process 속성을 정의하여 특정 앱 구성요소가 별개의 프로세스에서 동작도록 정의할 수 있습니다. 세상 모든 일이 그렇듯이, 프로세스를 분리하는 것도 장단점이 공존합니다. 프로세스를 분리하면 더 많은 힙 메모리를 확보할 수 있고, 중요한..
● 작성일 : 2012.08.21 ● OS 설치 버전 : Windows7 64bit ● SDK 설치 버전 : 안드로이드 SDK 4.0 (아이스크림 샌드위치) / API LELVEL : 14 ● ADT 설치 버전 : 16 ● Java 설치 버전 : JDK 1.6.0_20 / JRE6 ● 이클립스 설치 버전 : Indigo ● 테스트단말 : 삼성 갤럭시 S2 4.0.4 (아이스크램 샌드위치) ● API LEVEL : 8 ● minSdkVersion : 8 ● targetSdkVersion : 8 ● Java Compiler Level : 1.6 ● Text file encoding : UTF-8 안드로이드/Android Service 사용법 안녕하세요. 오늘 배워볼 내용은 안드로이드 A..
서비스란 단순히 Background에서만 동작하는 것이 Service가 아니다. Android에서 Service란 Linux에서 Daemon의 의미인 것이다.즉, 오랫동한 수행해야될 작업을 처리하기 위한 시작점이 바로 Service이다. 서비스의 형태에는 2가지 형태가 있다. 1) Local Service로 구현하는 방법 : Service와 Service를 이용하는 Application이 항상 동일한 Process에서 작동하는 경우에 해당 한다.이 경우에는 bindService()의 결과로 바로 해당 Service에 접근해서 원하는 API를 호출 할 수 있습니다. 2) Remote Service로 구현하는 방법 :하지만 실제로 Service가 돌고 있는 Process가 아닌 별개의 Process에서 AP..
java. 리플렉션(reflection)을 통한 인터페이스(Interface) 동적 구현인터페이스의 타입 정보를 특정할 수 없는 상황에서도 해당 인터페이스를 구현한 객체를 생성할 수 있습니다. 인터페이스와 클래스가 다음과 같이 정의되어 있다고 합시다. 인터페이스입니다. package some.test; public interface SomeInterface{ public int some(); } 클래스입니다. package some.test; public class SomeClass{ public int test( SomeInterface i ){ return i.some(); } } 해당 인터페이스와 클래스의 타입정보를 특정할 수 없는 상황에서도 다음과 같이 인터페이스를 구현한 객체를 생성하고 사용할 ..
자바에서는 스레드를 동기화 하기 위해서 synchronized를 제공한다.스레드는 synchronized 메소드에 들어가기 위해 lock을 얻고 메소드가 끝이나면 lock을 반환한다. 어떠한 스레드가 lock을 얻어 synchronized 메소드를 사용중이면 다른 메소드는 lock이 없으므로 synchronized에 접근할 수 없고, 다른 스레드가 lock을 반환 할 때까지 기다려야 한다. synchronized(..변수..){} 예) 안드로이드 class CBoard extends Activity{ void test_syn() { synchronized(this) //이런식으로 해주어도 된다. this -> 자신 { //코드들 .... .... } }} ///////////////////////////..
구글지도나 기타의 이유로 Google의 API를 사용하는 경우가 많이 있습니다. Google API console에서 사용하고자하는 기능을 활성화하고 API key를 받을 것입니다. 이경우 개발용 keystore와 배포용 keystore가 다르기때문에 각각 2개씩의 API KEY를 발급 받아야 합니다.보통 Manifest파일에 아래와같이 선언하실겁니다. 개발중일경우는 배포용 KEY 코드부분을 주석하고 테스트를 하고 배포 할때는 개발용 KEY 코드부분을 주석처리하고 배포하는 식으로 운영합니다. 그런데 만약 깜박하고 배포할때 배포용KEY가 아닌 개발용KEY로 배포해버린다면 실제 서비스에서는 지도나 기타 기능들을 사용할 수가 없습니다..개발/배포 버전에 따라 항상 주석을 만들었다가 없앴다가를 반복해주어야 합니..
자바 5부터 새롭게 추가된 Concurrency API 중에서 Executor, 리턴이 가능한 Callable 및 Future에 대해서 살펴본다. Executor를 이용한 쓰레드 관리 웹 서버와 같이 동시에 다수의 요청을 처리해야 하는 어플리케이션을 개발해야 할 경우 코드는 다음과 같은 형태를 띌 것이다. while(true) { request = acceptRequest(); Runnable requestHandler = new RequestHandler(request); new Thread(requestHandler).start(); } 위 코드가 논리적으로 문제점은 없지만, 다음과 같은 성능상의 문제점을 안고 있다. 소규모의 많은 요청이 들어올 경우 쓰레드 생성 및 종료에 따른 오버헤드가 발생한다...