MIME type은 웹에서도 많이 사용되지만 안드로이드 공부하다가 나왔으므로 ... 안드로이드에서 정리좀 하려고 한다 ... MIME ( Multipurpose Internet Mail Extensions ) -Text가 아닌 데이터나 ASCII가 아닌 문자를 나타내기 위한 방식 -데이터의 "type/fileformat"형식으로 되어 있음 -mime-type은 데이터를 어떻게 play할지 결정하기 위해 사용 ex) audio/mp3, video/avi, application/json, text/html ... 참조 : Android Application 프로그래밍 초급 24강 애플리케이션 컴포넌트 | T아카데미
https://github.com/bufferapp/clean-architecture-components-boilerplate#Architecture bufferapp/clean-architecture-components-boilerplate A fork of our clean architecture boilerplate, this time using the Android Architecture Components - bufferapp/clean-architecture-components-boilerplate github.com 위에서 제시하는 아키텍처를 기반으로 이해한 부분까지 정리하자면 ... User Interface 영역 : 실제 사용자와 가장 밀접한 영역이며, UI 컴포넌트들을 생성하고 이용되어..
MVC 패턴 Model : Data class 또는 Data를 얻어오기 위한 기능을 구현한 class ( 즉, 데이터 처리를 담당하는 클래스 ) View : 사용자와의 interface 를 위한 기능을 구현한 class ( 즉, 사용자에게 어떤 정보를 보여주거나 사용자로부터 입력을 받는 역할 ) Control : View로부터 들어온 사용자 입력을 해석하여 Model을 이용하여 데이털르 처리한 다음 처리 결과를 View에게 전달하여 보여주는 역할을 담당하는 class ( 즉, 어떤 Model이 데이터를 처리할지, 어떤 View를 사용자에게 전달할지를 정하는 역할) OOP (Object Oriented Programming) : 객체지향프로그래밍으로 재사용을 위해 각 기능들을 객체 형태로 분리시켜놓음. M..
애플리케이션 4대 컴포넌트 - 각 컴포넌트는 고유한 기능을 가지고 있음. - 각 컴포넌트는 Intent를 이용하여 메시지 전달가능. - 각 컴포넌트는 독립적으로 실행이 가능함. ( 즉, 특정 컴포넌트를 실행하기 위해 사전에 실행되어야 하는 컴포넌트가 없다는 것 -> Activity : startActivity ... , Service : startService ... , BroadcastReceiver : sendBroadcast ) 1. Activity - 사용자와 인터페이스가 가능한 Window를 하나 가지고 있는 컴포넌트 - 액티비티 구동 시, Window를 하나 생성하고, Window를 통해 사용자에게 보여주고 싶은 View를 보여줌 - 생성된 액티비티들은 스택으로 관리됨 - 액티비티 구동 요청을..
ANR : 애플리케이션의 응답 없음 ( Application Not Responding ) 발생 이유 - 사용자가 애플리케이션의 응답을 바라는 작업을 진행하였을 때, 반응 시간이 약 5초 내로 응답하지 않을 경우 - Foreground 활동이 없을 때, BroadcastReceiver가 상당한 시간 내에 실행을 완료하지 못할 경우 ( BroadcastReceiver 를 구현하는 중에, BroadcastReceiver 내의 로직을 작성하는데 있어서, 시간이 올래걸리는 작업은 Service를 이용해 따로 구현하라는 글을 읽은 적이 있는데.... ANR 때문이라는 것을 이제 알게 되었네.... ㅎㅎ;; ) * 자세한 내용 https://developer.android.com/topic/performance/v..
- ViewHolder : view들을 보관하기 위한 객체 ( ListView, RecyclerView ) - ViewHolder 장점 리스트의 아이템들 내의 view들을 접근하기 위해서는 findViewById를 매번 호출해야 한다. 즉 동일한 작업을 진행하는데 findViewById를 이용하여 매번 xml의 view 태그를 접근해야한다. 이는 아이템이 많아질수록 성능 저하로 연결되는 요인이 된다. 따라서 이를 해결하기 위해, Holder 패턴을 적용한 ViewHolder를 이용한다. ViewHolder를 이용하여, 아이템의 각 view 태그를 저장하고, 아이템의 view를 접근할 때마다 Holder가 저장한 태그를 이용한다. 이렇게 되면 findViewById 의 함수 호출이 적기 때문에 성능 향상에..
UI 변경 작업은 UI Thread에서만 가능하다. 따라서, 기본적인 백그라운드 작업 시 사용하는 Thread에서는 UI 변경작업을 할 수 없다. 백그라운드 작업 시 UI 변경작업을 진행하기 위해서는 백그라운드에서 작업 중인 데이터를 UI Thread에 전달해줘야 하는데 이러한 전달 역할을 Handler가 해준다. 1.Handler 객체를 UI Thread(Main Thread) 에서 생성하고, 생성한 Handler 객체를 이용하여 백그라운드로 작업할 Thread에서 Handler의 post 메소드를 이용하여 처리할 UI 로직을 Runnable 로 실행시킨다. MainActivity { Handler handler = new Handler(); MyThread extends Thread{ Thread()..
Activity의 라이프사이클에 따라 Activity A 와 Activity B 의 라이프사이클 동작 흐름을 적어놓았다 ! Activity A를 실행 onCreate(A) -> onStart(A) -> onResume(A) -> Activity B를 실행 onPause(A) -> onCreate(B) -> onStart(B) -> onResume(B) -> Activity B를 종료 onPause(B) -> onRestart(A) -> onStart(A) -> onResume(A) -> onStop(B) -> onDestroy(B)