본문 바로가기
[android] gradle build 성능 향상시키기 [android] gradle build 성능 향상시키기 https://android.jlelse.eu/android-build-speed-up-ver-english-c76890aa610 -Gradle 보다 성능이 좋은 Bazel, Buck, Pants 등의 다른 build tool 들이 있다.그러나 그들은 initialize 하기가 너무 어렵다. -Gradle 을 최신 버전으로 유지하자. -minSdk 를 build.gradle 에 명시하자. packaging process 는 두 단계를 거친다.하나는 class to dex 이고, 다른 하나는 dex merge 이다.API level 21 (LOS)부터는 ART 기반이기 때문에 dex merge 를 수행하지 않아도 된다.따라서 minSdk 를 명시해주.. 2019. 2. 3.
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.
[android 보안] 패키지 관리 #2 [android 보안] 패키지 관리 #2 3.3. APK 설치 과정 -사이드 로딩(Side loading) 은 구글 플레이 스토어 같은 정식 스토어를 통하지 않고 앱을 직접 내려받아 설치하는 방법을 말한다. -APK 파일을 앱 디렉터리에 직접 복사하면 패키지 매니저가 자동으로 탐지하고 설치한다.패키지 매니저는 앱 디렉터리에 변화가 있는지 늘 감시한다. * 3.3.1 앱 패키지와 데이터의 위치 -/system/vendor/app/ 디렉터리에는 제조사 고유의 앱이 저장된다.사용자 설치 앱은 읽고 쓸 수 있는 userdata 파티션에 설치되며 언제든지 교체 및 제거할 수 있다.대부분의 사용자 설치 앱은 /data/app/ 디렉터리에 설치된다. -시스템 앱이든 사용자 설치 앱이든 데이터는 /data/data/ .. 2018. 4. 19.
[android 보안] 권한 #1 [android 보안] 권한 출처 : Android Security Internals 2장개요 목차 2. 권한 2.1. 권한의 본질 2.2. 권한 요청 2.3. 권한 관리 2.4. 권한 보호 수준 2.4.1. normal 2.4.2. dangerous 2.4.3. signature 2.4.4. signatureOrSystem 2.5.권한 할당 2.5.1. 권한과 프로세스 속성 2.5.2. 프로세스 속성 할당 2.6. 권한 적용 2.6.1. 커널 수준 적용 2.6.2. 네이티브 데몬 수준 적용 2.6.3. 프레임워크 수준 적용 2.7. 시스템 권한 2.7.1. signature 권한 2.7.2. development 권한 2.8. 공유 사용자 ID 2.9. 커스텀 권한 2.10. 공개 컴포넌트와 비공개 컴.. 2018. 4. 16.
[android 보안] 안드로이드 보안 모델 #1 [android 보안] 안드로이드 보안 모델 출처 : Android Security Internals 1장개요 목차 1. 안드로이드 보안 모델 1.1. 안드로이드의 아키텍처 1.1.1. 리눅스 커널 1.1.2. 네이티브 사용자 공간 1.1.3. 달빅 가상 머신 1.1.4. 자바 런타임 라이브러리 1.1.5. 시스템 서비스 1.1.6. 프로세스 간 통신 1.1.7. 바인더 1.1.8. 안드로이드 프레임워크 라이브러리 1.1.9. 앱 1.2. 안드로이드 보안 모델 1.2.1. 앱 샌드박스 1.2.2. 권한 1.2.3. IPC 1.2.4. 코드 서명과 플랫폼 키 1.2.5. 다중 사용자 지원 1.2.6. SELinux 1.2.7. 시스템 업데이트 1.2.8. 검증된 부트 1.3. 요약 1.1. 안드로이드의 아.. 2018. 4. 14.
[android] ART 의 GC 이야기. [android] ART 의 GC 이야기. http://commonsware.com/blog/2014/06/16/art-garbage-collection.html ART 의 GC 는 아직은 아니지만, Compacting garbage collector 를 추구한다. 기존의 JVM 은 memory 의 fragmentation 이 되 있을 때 마지막 연속된 여유로운 공간에 대해 새로운 memory 할당을 시도하고, 그것이 실패하면 OutOfMemoryError 를 뿜어낸다. 하지만 Compacting garbage collector 에서는 이 fragmentation 을 해결하여 GC 하기 때문에fragmented 된 부분을 포함하여 정말 메모리가 부족할 때 OutOfMemoryError 를 뿜는다. 다시말.. 2015. 12. 2.
[android] ART ( android runtime ) 이란? (2017.08. updated) [android] ART ( android runtime ) 이란? - 2017. 8 내용 보강 ART, Android Runtime from Kitkat( 4.4 ) 기존의 안드로이드에서는 DEX file 을 Dalvik machine(JVM) 위에 올리는 방식이었는데,Kitkat ( 4.4 ) 부터는 ART(Android Runtime) machine 위에서 OAT file 을 돌리는 것이 가능해졌다.기존의 dex 파일을 dex2oat 라는 converter 를 이용해서 converting 하여 생성하고 run 한다. Dalvik 은 bytecode 를 interpret 한다.그러면서 사용자가 앱을 실행할 때마다 성능 개선이 있을 수 있는 부분에 대해 네이티브 코드로 변환을 한다.이를 JIT( jus.. 2014. 1. 22.
반응형