Android/AndroidStudio
-
안드로이드 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가 처리할 수 있도록 한..
-
Guide to background processingAndroid/AndroidStudio 2018. 6. 30. 23:51
https://developer.android.com/guide/background/ 이 페이지에서는 어플의 성능을 저하시키지 않으면서 당신의 어플이 백그라운드에서 작업을 수행할 수 있도록 도와 줄 것이다. 모든 안드로이드 어플은 UI를 담당하는 메인 스레드를 가지고 있으며,( 뷰들을 측정하고 그리는 작업을 포함한다 ), 또는 사용자간의 상호작용을 조절하거나, 생명주기와 관련된 이벤트들을 받는다. 만약 이 메인스레드에 너무 많은 작업들이 일어나면, 머플을 매우 느려져보인다. 이는 사용자들에게 불만족스러운 사용자 경험을 경험하게 한다. 시간이 많이 걸리는 계산작업이나 비트맵, 디스크 관련 그리고 네트워크가 요구되는 일들은 백그라운드의 독립된 스레드에서 수행되어야 한다. 일반적으로 수 밀리초 이상의 일들은 ..