Android
-
액티비티 생명주기 이해하기Android/AndroidDevelopers 2019. 1. 9. 17:22
액티비티 생명주기 이해하기Understand the Activity Lifecycle액티비티 생명주기 개념라이프사이클 콜백이번 섹션에서는 액티비티 생명주기 동안 사용되는 콜백 메소드에 대한 개념적, 구현적 정보에 대해서 알아본다.secContentView()와 같은 몇몇의 액션은 액티비티 생명주기 메소드에 종속 되어있다. 하지만 독립된 구성요소의 동작을 구현한 코드는 컴포넌트 자체에 위치해야한다. 이를 달성하기 위해 lifecycle-aware 컴포넌트를 만들어야 한다. 이를 만드는 방법을 배우기 위해서 Handling Lifecycles with Lifecycle-Aware Components 문서를 확인하라.onCreate()onStart()만약 액티비티가 시작되는 상태에 들어간다면, 시스템은 이 메..
-
안드로이드 httpUrlConnection, VolleyAndroid/AndroidStudio 2018. 12. 3. 16:38
HttpURLConnetion 이제는 웹서버에 연결하는 방식입니다. 이전까지 소켓을 통해서 서버를 만들어서 요청을 보냈는데요. 이제는 웹서버를 사용하겠습니다. 웹은 Http라는 통신규약을 사용합니다. 자바에서 웹에 요청을 보내는 api는 HttpURLConnetion입니다. 마찬가지로 쓰레드에서 웹에 요청을 보내기 때문에 view에 접근하려면 메인쓰레드에 접근하기 위해서 handler를 사용해야합니다.(뒤에 이와같은 방법을 통합한 api가 volley 입니다.) 먼저 thread 클래스를 정의 하고 URL 객체를 받아옵니다. URL 객체에서 openConnction() 메소드를 호출하여 HttpURLConnection 객체를 얻어옵니다.HttpURLConnection 객체를 받아와 setConnectio..
-
안드로이드 asynctaskAndroid/AndroidStudio 2018. 12. 3. 16:37
ASYNcTASK UI에 접근하기 위해 핸들러를 사용하기 복잡하다면 구글에서 제공하는 AsyncTask를 사용할 수 있습니다. AsyncTask를 상속받은 클래스를 정의하고 Main Thread에서 객체를 생성합니다. AsyncTask를 상속한 클래스에서 onInBackground(), onProgressUpdate(), onPostExecute()메소드를 재정의 하면 Thread생성과 Handler 없이 위의 작업을 진행 할 수 있습니다. AsynkTask를 상속받은 객체의 execute() 메소드를 실행하면 Thread가 실행되고 순서대로 onInBackground(), onProgressUpdate(), onPostExecute() 메소드가 실행됩니다. 클래스를 생성시 세가지 type을 정의할 수 ..
-
커스텀 리스트뷰Android/AndroidStudio 2018. 11. 7. 21:05
ListView ListView 리스트뷰는 안드로이드에서 기본인데, 매번까먹는다. 이 포스팅은 listview에 대한 설명이 아니라 내가 이해하려고 적은 글이기 때문에 자세한 사용법은 다른 글에서 찾으시길 바란다. 커스텀 리스트뷰 만드는 방법과 동작에 관해서 매번 까먹어서 그림으로 기억하려고 한다. 1. BaseAdapter를 상속한 커스텀 adapter를 만들자Adapter를 상속해서 오버라이드 해야하는 모든 메소드들을 불러오자. ( alt+insert )어댑터는 아이템(즉 리스트뷰에 보여주고자 하는 것)을 가지고 있다. 아이템리스트에 아이템을 추가하는 메소드를 만들자 addAll(List a), add(item i);getView() 메소드가 가장 중요하다getView()에서 전달 받은 view가 없..
-
MVP MVVM 모델을 활용한 안드로이드 설계Android/AndroidStudio 2018. 10. 8. 11:49
vogella[Android Architecture with MVP or MVVP Tutorial] http://www.vogella.com/tutorials/AndroidArchitecture/article.html MVP MVVM 모델을 활용한 안드로이드 설계안드로이드 아키텍쳐 이 튜토리얼은 테스트가능성을 증진시킬 수 있는 안드로이드 어플리케이션 아키텍쳐에 대하여 설명하고 있다. 1. 안드로이드를 위한 설계 안드로이드의 기본 탬플릿은 대규모의 액티비티 나 프래그먼트의 사용을 기본으로 한다. 이 요소들은 일반적으로 비지니싀와 UI로직을 포함하고 있다. 이 것은 테스트와 안드로이드의 유지보수를 어렵게 한다. 다음은 테스트 가능성을 향상시킬 수 있는 유명한 패턴들이다.Model View Presenter ..
-
안드로이드 thread와 handlerAndroid/AndroidStudio 2018. 7. 7. 00:05
본페이지는 edwith 사이트의 "android developer" 부스트 코스의 5강.네트워크를 참고 하여 작성하였습니다. THREAD 하나의 Progress안에서 여러 일을 수행하려고 할때 Thread를 사용합니다. 예를 들어, 게임속 여러 몬스터들이 생성되는 것은 사용자가 움직이는 Thread와는 다른 Thread에서 진행되는 것입니다. 안드로이드에서 여러 Thread가 존재합니다. 네트워크로 데이터를 받아오는 경우는 많은 일들이 일어나기 때문에 별로의 Thread를 만들어 데이터를 받아와 화면에 보여주게 됩니다. 특히 안드로이드에서는 앱이 실행되면 메인 쓰레드가 실행이 되고 그안에서 다른 일들을 처리하는 개별 Thread들이 생성됩니다. 이때 여러 Thread들이 같은 리소스에 접근하게 될 수 있..
-
Android GuidelineAndroid/AndroidStudio 2018. 7. 2. 13:57
코딩을 하면서 지켜야 할 규칙들을 Conventions 라고 합니다.코딩은 협업이 기본이기 때문에 팀원들간 코딩에 들어가기전 규칙들을 만들어 다른 사람들이 보기편하게 하는 것이 좋습니다.또 코드 길이가 길기 때문에 자신이 짠 코드라도 몇일만 지나면 코드를 잊어버리기 되기 때문에 규칙을 지켜서 코딩하는 것이 좋습니다. 안드로이드 또한 코딩 가이드라인을 제공하고 있습니다.https://github.com/umesh0492/android-guidelines/blob/master/project_and_code_guidelines.mdhttps://source.android.com/setup/contribute/code-style 많은 양이라 한번에 고칠 수는 없는데요.코딩하면서 하나씩 지켜나가야 겠네요.한글로 ..
-
ThreadAndroid/AndroidStudio 2018. 7. 1. 00:37
안드로이드 시스템은 어플이 실행되면 메인스레드가 실행되게 되어있다.메인스레드에 너무 많은 작업을 진행하게되면 성능 저하가 발행하므로 부하가 많은 작업은 다른 스레드에서 실행하는 것이좋다.(스레드는 표준자바와 같다) 안드로이드 UI는 메인스레드에서만 접근할 수 있다(싱글스레드라고 칭한다)여러 스레드에서 동시에 같은 뷰에 접근하게 될경우 충될이 발생하기 때문에 이를 방지하기 위해서이다.handler, looper등의 방법이 있다. Looper와 Handler의 작동원리메인 스레드는 내부적으로 looper를 가지고 있고 루퍼는 메세지 큐를 가지고 있다.메세지 큐는 다른 스레드로 부터 전달받은 메세지나 Runnable 객체를 가지고 있으며 차레로 꺼내어 Handler로 보내 Handler가 처리할 수 있도록 한..