분류 전체보기
-
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를 담당하는 메인 스레드를 가지고 있으며,( 뷰들을 측정하고 그리는 작업을 포함한다 ), 또는 사용자간의 상호작용을 조절하거나, 생명주기와 관련된 이벤트들을 받는다. 만약 이 메인스레드에 너무 많은 작업들이 일어나면, 머플을 매우 느려져보인다. 이는 사용자들에게 불만족스러운 사용자 경험을 경험하게 한다. 시간이 많이 걸리는 계산작업이나 비트맵, 디스크 관련 그리고 네트워크가 요구되는 일들은 백그라운드의 독립된 스레드에서 수행되어야 한다. 일반적으로 수 밀리초 이상의 일들은 ..
-
FragmentAndroid/AndroidStudio 2018. 6. 21. 16:52
프래그먼트 이해하기 여러 액티비티에 공통되는 부분이 있다고 가정 ( 카카오톡을 켰을 때, 아래 생기는 메뉴바) 하면,화면이 전환 될 때마다 똑같은 코드가 또 사용되게 된다. 때문에 하나의 액티비티에(시스템에서 관리) 여러 화면을 보여주기 위해 프래그먼트를 사용한다.(과거에는 외부라이브러리였지만 현재는 api에 추가 되었으면, 널리 사용되기 때문에 꼭 알아야한다.) 프래그먼트는 액티비티를 본 따서 만들어졌다. - 생명주기를 갖는다. - 플래그먼트간 전환시 액티비티처럼 intent가 필요하다(intent를 닮았지만 다르다) - 액티비티안에 존재하는 플래그먼트매니저(시스템의 역할)에 의해 전환된다. - 플래그 먼트는 뷰가 아니기 때문에 context가 없다. -> 플래그먼트가 들어가는 액티비티에서 참조해야 한..
-
서비스로 명령 전달Android/AndroidStudio 2018. 6. 20. 16:24
구성요소에서 서비스로 명령전달 startService(intent 객체) 메소드를 통하여 서비스를 실행할 수 있다. 서비스의 경우 onCreate() 및 onDestroy()의 메소드를 재정의 할 수있다.액티비티에 비해 단순한 생명주기를 가진다. 서비스는 한번 호출되면 비정상적으로 소멸된다하더라도 시스템에 의해 다시 실행 될 수 있다.따라서 한번 호출되면 onCreate()가 다시 실행되지 않는다. 여러 구성요소에서 인텐트로 서비스에 명령을 전달할 때,onCreate()에서는 그 명령을 받을 수 없다. -> 이럴때는 onStartCommand() 메소드를 재정의 한다. 일반적으로 새로운 클래스를 정의할 때 onCreate(), onStartCommand(), onDestory() 메소드를 재정의 하는 경..
-
BufferedReader와 StringTokenizer를 사용해보자Programming/Java 2018. 5. 18. 02:24
static class Scan { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; int nextInt() throws IOException{ if(st == null || !st.hasMoreTokens()){ st = new StringTokenizer(br.readLine()); } return Integer.parseInt(st.nextToken()); } } BufferedReader와 StringTokenizer를 계속사용해야 한다면 이너클래스로 정의해 놓자.