본문 바로가기
[android 10] android Q 기능과 API 들 [android 10] android Q 기능과 API 들 https://developer.android.com/about/versions/10/features 보안 강화 * 생체 인증 dialog 의 개선 -Android 10 에서는 통합 생체 인증 dialog 가 강화되었다.... * 내장된 DEX code 를 APK 에서 직접 수행한다. -platform 에 앱의 APK file 안에 embedded 된 DEX code 를 실행하도록 할 수 있다.이 option 은 공격자가 단말에서 locally compile 한 것으로 대체하는 공격을 막을 수 있다. -이 feature 를 enable 하면 앱 성능에 영향이 있을 수 있다. 왜냐하면 이 옵션이 on 되면 ART 는 앱이 시작할 때 AOT 로 co.. 2020. 3. 16.
[git] Git Prune 에 대해 알아보자 [git] Git Prune 에 대해 알아보자 https://www.atlassian.com/git/tutorials/git-prune -git pull (fetch) 과정에서 ref lock 에러를 마딱뜨렸는데, 이 때 해결방법중 하나가 'git remote prune origin' 을 수행하는 것이라 한다.그래서 이 녀석의 정체에 대해 알아보고자 한다.$ git remote prune origin -git prune 은 unreachable 한 git object 들을 "local" 에서 clean 하는 작업이다.unreachable 이란 git tree 에 의해 참조되지 않는 gc 대상이 되는 dangling refs 들이다. -git prune 은 보통 직접 수행되지 않는다.이 녀석은 git gc.. 2020. 3. 6.
[Java8 In Action] #16 결론 그리고 자바의 미래 [Java8 In Action] #16 결론 그리고 자바의 미래 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 16.1. 자바 8의 기능 리뷰 -자바 8에 큰 변화가 생긴 이유는 두 가지 추세 때문이다. 한 가지 추세는 멀티코어 프로세서의 파워를 충분히 활용해야 한다는 것. 무어의 법칙에 따라 실리콘 기술이 발전하면서 개별 CPU 코어의 속도가 빨라지고 있다. 즉, 코드를 병렬로 실행해야 더 빠르게 코드를 실행할 수 있다. 데이터 소스를 이용.. 2019. 1. 5.
Overview of Android Memory Management ( 안드로이드의 메모리 관리 ) Overview of Android Memory Management ( 안드로이드의 메모리 관리 ) https://developer.android.com/topic/performance/memory-overview.html -Android Runtime ( ART ) 과 Dalvik 은 paging 과 memory-mapping 을 이용해서 메모리 관리를 한다.app 이 조작하는 메모리는 모두 RAM 에 상주하며 page-out 되지 않는다.이 memory 를 해지하는 방법은 GC 되도록 하는 방법밖에 없다.수정이 발생하지 않는 code 와 같은 녀석들은 RAM 에서 page out 될 수 있다. Garbage collection -Android 의 memory heap 은 세대가 있다(?).예를 들어 .. 2018. 10. 9.
[도서 정리] 안드로이드 앱 성능 최적화 #5 메모리 성능 안드로이드 앱 성능 최적화 #5 메모리 성능 이 글은 “안드로이드 앱 성능 최적화” 의 일부 내용만 정리한 것입니다.자세한 내용은 책을 구매하여 보세요~5.1. 안드로이드 메모리는 어떻게 동작하는가 -안드로이드 기기에서 구동되는 자바 런타임(Dalvik 이나 ART)은 메모리 관리 환경이다.일반적으로 런타임에서 모든 메모리 할당과 해제(GC)를 처리한다. 5.1.1. 공유 메모리와 전용 메모리 -모든 앱에서 공통으로 사용하는 프레임워크 클래스, 리소스, 네이티브 라이브러리 등이 있다.안드로이드는 메모리를 절약하려고 이런 것을 공유 메모리에 올려두고 앱 사이에서 함께 사용한다.공유 메모리는 메모리 사용량을 분석할 때 프로세스에 균등하게 1/n 으로 나누어 적용한다. -전용 메모리는 특정 앱 내부에서 사용되.. 2018. 6. 26.
Efficient Android Threading #4 메모리 관리 Efficient Android Threading #4 메모리 관리 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.6.1. 가비지 컬렉션 -각 프로세스(결과적으로 각 앱)는 자신만의 VM 과 가비지 컬렉터를 가진다. -진저브레드까지 안드로이드의 가비지 컬렉션은 메모리가 회수되는 동안 앱 실행이 중지되는 순차적 실행이었다.이는 UI rendering 의 일시적 멈춤으로 이어질 수 있었다.허니컴부터 GC 는 앱 스레드를 중지하지 않고 자체 스레드에서 동시적으로 실행된다. -달빅 GC 는 mark & swap 이라는 일반적인 두 단계 메커니즘을 사용한다.마크 단계는 객체 트리를 탐색하고 다른 객체에 의해 참조되지 않는 모든 미사.. 2018. 3. 20.
[Kotlin] Kotlin 의 숨겨진 비용 #1 [Kotlin] Kotlin 의 숨겨진 비용 #1 https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-1-fbb9935d9b62 -“With great power comes great responsibility” 를 기억해야 한다.( 간단한 코드를 짜는 대신 대가가 있다는 얘기다 ) -Kotlin bytecode inspector 를 사용하면 Kotlin 코드가 어떻게 bytecode 로 변환되는지 볼 수 있다.Android studio plugin 으로 접할 수 있다.이를 보면 primitive type 의 boxing, code 에서 보이지 않는 기타 object 들의 instantiation, 그리고 각종 추가 method 들의 추.. 2018. 1. 16.
[Effective Objective-C] #33 weak 참조를 사용하여 리테인 순환을 피하라 [Effective Objective-C] #33 weak 참조를 사용하여 리테인 순환을 피하라 출처 : Effective Objective-C -객체들끼리 서로를 어떠한 방법으로 참조하여 순환을 이루고 있는 객체 그래프(object graph)에서 순환이 발생하는 것을 흔히 볼 수 있다.순환이 발생하면 특정 지점에서 메모리 누수가 발생할 것이다.순환을 이루는 모든 객체가 결국엔 순환 밖에 있는 객체들에 의해 참조되지 않기 때문이다.그렇게 되면 순환 내의 객체에 접근할 수 있는 방법이 더는 없게 된다.그뿐 아니라 순환 내의 객체들은 서로를 할당 해제하지 않을 것이다.서로가 서로를 살아 있게 유지하기 때문이다. -리테인 순환 중 가장 간단한 것은 객체 두 개가 서로를 참조하는 것이다. -리테인 순환 내의 .. 2017. 9. 27.
[Effective Objective-C] #29 참조 세기를 이해하라 [Effective Objective-C] #29 참조 세기를 이해하라 출처 : Effective Objective-C -메모리 관리는 오브젝티브-C 같은 객체 지향 언어에서 중요한 개념이다.어떠한 객체 지향 언어든 그 언어의 메모리 관리 모델을 깊이 이해하고 있으면 메모리를 효과적으로 사용하고 버그가 없는 코드를 작성할 수 있다.이 법칙을 이해하고 나면 오브젝티브-C 의 메모리 관리가 더는 복잡하지 않고 ARC 를 쉽게 사용할 수 있을 것이다.ARC 는 거의 모든 메모리 관리에 대한 결정을 컴파일러에 넘긴다.그래서 개발자는 비지니스 로직에만 집중할 수 있다. -오브젝티브-C 는 메모리 관리를 위해 reference count 를 사용한다.객체가 계속 살아 있길 원하면 count 수를 올리고, 그 객체의.. 2017. 9. 22.
반응형