전체 글
Android # 진동과 소리 울리기
진동과 소리 울리기 진동(Vibrate) 진동은 얼마동안 울리도록 할 것인지 지정할 수 있으며, Vibrator라는 시스템 서비스 객체를 사용한다. Vibrator에는 vibrate라는 이름의 메서ㅓ드가 있어 진동이 울리는 패턴이나 시간을 지정할 수 있다. vibrate() 메서드의 파라미터로 long자료형의 값이 전달된다. 이 값은 시간을 의미하며 진동을 얼마나 지속시킬 것인지 지정한다. 그런데, 이 long 자료형의 값을 전달하는 vibrate()메서드가 버전에 따라 달라지게 되었다. 다음 포스팅을 참고. https://philipbox.tistory.com/69 소리 Ringtone 객체의 play() 메서드를 호출하면 소리가 울린다. API에서 제공하는 소리가 아닌, 다른 음원 파일을 재생시킬 수..
Android # 진동(Vibrate) method 버전확인 후 적용시키기
진동(Vibrate) method 버전확인 후 적용시키기 vibrate() 메서드는 안드로이드 버전 26부터 VibrationEffect를 파라미터로 전달하는 메서드로 변경되었다. 따라서, 이 변경된 내용을 반영하기 위해서는 Build.VERSION.SDK_INT 상수를 이용해 현재 단말의 버전을 체크하는 과정이 필요하다.
GC(Garbage Collection) - summary
GC(Garbage Collection) GC란, 이미 할당된 메모리에서 더 이상 사용하지 않는 메모리를 해제하는 행동. 사용되지 않는 메모리의 대상은 Heap과 Method Area에서 사용되지 않는 Object를 의미. 소스상에서 close()는 Object 사용중지 의사표현일 뿐 Object를 메모리에서 삭제하겠다는 의미가 아님. System.GC()를 명시적으로 호출할 수 있지만, Full GC를 수행시키는 메소드이기 때문에 Stop-the-world 시간이 길고 무거운 작업이며 또한 반드시 즉시 수행한다는 보장도 없는 메소드이기에 사용을 지양. GC 작동원리 Heap을 3개의 영역으로 나누어 관리. young 영역(Young Generation): 새롭게 생성한 객체의 대부분이 위치해있음. 가득..
GC(Garbage Collection) - stop-the-world
stop-the-world stop-the-world란, GC(Garbage Collection)을 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. stop-the-world가 발생하면 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춘다. GC 작업을 완료한 이후에야 중단했던 작업을 다시 시작한다. 어떤 GC 알고리즘을 사용하더라도 stop-the-world는 발생한다. 대개의 경우 GC 튜닝이란 이 stop-the-world 시간을 줄이는 것이다.
GC(Garbage Collection) - 2 (GC Algorithm 구동방식)
GC Algorithm 구동방식 Garbage : 참조되지 않고 있는 객체 reachability : 참조되고 있는 상태 unreachability : 참조되지 않는 상태 참조 상태중 최초에 참조되는 상태를 루트 셋이라고 하는데, 루트 셋에 연결되지 않고 unreachability한 객체들을 garbage처리한다. Heap 영역에 있는 객체들은 총 4가지의 종류가 있다. Heap내의 다른 객체에 의한 참조 Java stack, 즉, 메소드 내에서 사용하는 지역변수와 파라미터에 의한 참조 네이티브 영역에서 생성된 객체에 의한 참조 메서드 영역의 정적 변수에 의한 참조 2,3,4가 루트 셋이다. Serial GC : 적은 CPU, 메모리일 때 적합. Parallel GC : 다수의 스레드를 GC로 사용.
GC(Garbage Collection) - 1 (intro)
GC(Garbage Collection) 누군가 GC에 대해서 알고 있냐고 물어봤을 때, 어떤 역할을 하는지 두루뭉술하게는 알지만 명쾌하게 설명해줄 수 없었다. Java를 주로 사용하는데 GC에 대해서 설명하지 못한다면 좋은 개발자가 아니라고 생각한다. Naver D2의 글 중에서, GC에 대해서 관심을 가지고, 이해하는 것은 훌륭한 Java 개발자의 기본이라는 내용 일부를 본 적이 있다. 그래서 더욱 더 조사하고 알아보고 싶었다. Garbage Collection은 무엇일까? GC란 이미 할당된 메모리에서 더 이상 사용하지 않는 메모리를 해제하는 행동을 의미한다. 사용되지 않는 메모리의 대상은 Heap과 Method Area에서 사용되지 않는 Object를 의미한다. 그리고 소스상에서 close()는 ..
상수(constant,final)와 리터럴(literal)
상수(constant)와 리터럴(literal) 한 번쯤은, 또는 자주 들어봤을만한 용어들이다. 하지만 두 용어를 같은 의미로 사용하거나 차이를 모르는 사람들이 많다. 나 역시 명쾌하게 설명하지 못했기에 포스팅 하고자 한다. 아주 간단하게 설명하자면, 상수는 변하지 않는 변수를 말하며, (ex. final key word) 리터럴은 변수의 '값'이 변하지 않는 데이터 그 자체를 의미, 소스 코드의 고정된 값을 대표하는 용어(ex. 100, "abc") 라고 말할 수 있겠지만, 아래 내용을 보기 전이라면 와닿지 않을 수 있다.(나도 그랬다) 조금 더 구체적으로 알아가보자. 사람들이 이 둘을 헷갈리는 이유는 아마도 둘 다 변하지 않는 값(데이터)를 의미하기 때문이다. 상수(constant) 코드의 관점에서 ..
Android # baseline(view)
baseline 뷰 속성의 baseline이 적용되는 것을 확인해 볼 것이다. [baseline.xml] 1234567891011121314151617181920212223242526272829303132 Colored by Color Scriptercs 이렇게 속성을 수정하면 각각의 뷰에 들어 있는 텍스트의 아래쪽에 바닥면이 똑같이 맞춰진다. 이것은 baselineAligned의 디폴트 값이 true이기 때문이다. 다음은 baselineAligned의 값을 false로 바꿔본 결과이다. baselineAligned의 속성은 LinearLayout에서 지정한다. (아래 코드 7번줄) [baseline.xml] 12345678910111213141516171819 ... Colored by Color Sc..