Basic/etc(33)
-
[Android] Content Provider
ContentProvider 가 뭐하는 거야?ContentProvider 는 Database를 정해진 Interface 로 외부 package 에 노출하는 방법입니다.즉, 한 Application 에서 관리하는 Database 를 다른 Application 에서 사용할 수 있도록 하는 방법이죠.Interface도 제공하기 때문에 외부 Application 에서 쉽게 사용할 수 있습니다. ( 물론 제한적인 부분도 있지요. )URIContentProvider 에 접근하기 위해서는 URI 를 사용합니다.format) content://authority/path/idcontent:// : provider 접근임을 명시하는 것으로 반드시 들어가야 함.authority : 접근하는 provider 를 명시하는 것으..
2014.12.27 -
[Android] 무결성을 위한 앱 설계시 고려할 사항들
다음의 디자인 issue들은 사용자에게 문제를 야기시킬 수 있다. 1. 다른 어플리케이션이나 다이얼로그의 예상치 못한 타이밍의 팝업. 2. 계획되지 않은 상호작용 3. 데이터의 부주의한 손실 4. 의도되지 않은 멈춤 무결성을 위한 디자인 고려사항. 다이얼로그 팝업을 피하라. 일반적인 무결성 문제는 서비스 또는 브로드캐스트 리시버 등이 어떤 이벤트에 응답하여 다이얼로그를 팝업할 때 발생합니다.이것은 실제 디바이스 상에서 다른 어플리케이션이 많이 설치되어 있는 환경에서 자주 발생합니다.다이얼로그를 띄우는 시점에서 focus를 가지지 못하는 상황도 발생하곤 하죠.따라서 무언가를 알리기 위해서는 다이얼로그보다는 최대한 Notification을 사용하는 것이 좋습니다. (focus 방해 최소화하기 위해서) Act..
2014.12.27 -
[Android] ANR 이란?
ANR 이 뭔가요? ANR (Application Not Responding) 은 어플리케이션이 응답하지 않는다는 에러입니다. 어떤 상황에 발생할까요? 1. 응용 프로그램이 5초 이상 사용자의 입력에 반응하지 않을 때 2. 브로드캐스트 리시버(BR)가 10초 내로 리턴하지 않을 때 위 두가지 경우에 대해 OS가 관여하여 ANR 대화상자를 띄우며 이 대화상자를 통해 프로그램 강제종료가 가능합니다. 어떻게 ANR을 피할 수 있나요? Main thread에서 실행되는 임의의 method는 최소한의 일을 해야 합니다.특히 onCreate(), onResume() 과 같은 핵심 생명주기 method에서 가능한 적은 일 수행하는 것이 좋습니다. 네트워크나 데이터베이스 operation 같은 잠재적으로 길게 실행될 ..
2014.12.27 -
[Android] Service 사용법
안드로이드/Android Service 사용법안녕하세요. 오늘 배워볼 내용은 안드로이드 Application을 구성하는 4가지 컴포넌트 중에 하나인 Service에 대해 공부해 보겠습니다. 일단 안드로이드 Application을 구성하는 4가지 컴포넌트 들은 Application을 만들 때 사용하는 핵심 부품 4가지 라고 생각하시면 됩니다.보통 우리가 컴퓨터 본체를 조립하게 되면, 부품들을 크게 메인보드, CPU, RAM, 하드디스크 등으로 분류 할 수 있는데요, 마찬가지로 안드로이드 Application을 컴퓨터 본체라고 생각하시면 그 컴퓨터를 조립 할 때 동작을 할 수 있게 하는 4가지 부품(컴포넌트)이라고 생각하시면 됩니다. 물론 안드로이드 Application은 Activity 하나만으로 구성 할..
2014.12.27 -
클래스와 객체
1. 클래스와 객체 클래스는 각각의 객체가 공통적으로 가지는 정보나 기능 등을 추출해서 정리한 것으로 생각하면 된다. 클래스 ==> 멤버변수(속성,필드) + 메서드 예를 들어 자동차라는 객체는 여러 종류가 있을 수 있지만, 기본적인 구조나 운전방법은 비슷하다. 인간은 자동차를 생각할 때 여러 자동차가 각각 가지고 있는 구성요소나 운전방법 같은 상세한 부분은 생각하지 않고 보다 추상화된 개념으로 생각한다. 이렇게 여러 자동차들에서 공통적이고 추상화된 개념을 추출한 것이 클래스이다. 물론 실제로는 각 객체 사이에 서로 다른 부분이 있을 수도 있지만, 그것들의 공통 부분을 하나의 개념으로 도출할 수 있다면 클래스로 사용할 수 있다. 클래스의 속성과 메서드는 해당 클래스에 속하는 모든 객체의 속성과 메서드로 정..
2014.11.10 -
final, static
1. final 제한자 final은" 마지막 값이다. 변경 될수 없다"는 의미로 클래스 앞에 붙으면 더 이상 상속될수 없다. 메서드 앞에 붙으면 더 이상 오버라이딩 될 수 없다. 변수(멤버, 지역, static) 앞에 붙으면 더 이상 값을 변경할 수 없다.(상수가 됨) 2. static final / final static (final과 static은 순서와 상관없다) final 변수는 그 값을 절대 바꿀 수 없다. 그럼 static과 final이 함께 붙어있으면? 보통 pulbic 접근제어자와 함께 사용되어 어떤 코드에서든지 접근 가능한 상수를 만들때 public static final 변수를 사용한다. 다음 클래스의 MAX_GRADE변수는 객체를 생성하지 않아도 어떤 코드에서도 School.MAX_G..
2014.11.10