본문 바로가기

앱 시작 시간 개선하기 앱 시작 시간 개선하기 1. 중첩되고 복잡한 레이아웃 개선 -> constraintLayout, viewstub으로 나중에 inflate한다2. 메인스레드에서 모든 리소스를 초기화하면 느려진다.(무거운앱초기화) 뷰를 먼저 로드하고 나중에 비트맵등 기타 리소스에 의존하는 시각적 속성을 업데이트한다. 3. 디스크 or 네트워크 io 화면그리기를 하지 않는다. 4. 비트맵을 로드하거나 디코딩하지 않는다.5. 앱시작 빈화면끄기 -> windowdisablepreview -> 별로 좋지는 않다 . 비활성화보다 windowbackground테마 속성을 사용해라. 더보기
안드로이드 성능 개선 팁 성능 개선 팁1. 오래걸리는 작업은 메인스레드가 아닌 작업자 스레드에서 비동기적으로 수행한다. 2. 불필요한 객체생성을 줄인다. 3. 정적메서드가 빠르다. (15~20%)4. 상수에 static final 사용해라.5. 향상된 loop문을 사용해라 for -> foreach문6. private inner 클래스보다 패키지로 분리해라. 7. 부동소수점 사용하지 않는다. (2배느림)8. 라이브러리 알고 사용한다. String.indexOf, System.arrayCopy 더보기
메모리 효율적인 코드 메모리 효율적인 코드 1. 서비스를 아껴서 사용해라. 필요하지 않을때 서비스를 실행중으로 두지 말아라 : intentservice를 이용해라(완료되면 종료)2. 최적화된 데이터 컨테이너를 사용해라. 일반 해쉬맵보다 sparseArray가 더 효율적이다. 3. 코드 추상화에 주의해라 - 추상화에는 상당한 비용이 들어간다.(메모리맵핑에 더많은 시간과 메모리필요)4. 직렬화된 데이터에 nano protobufs 사용해라5. 메모리변동을 피해라. -짧은 시간에 발생하는 많은 gc는 프레임시간을 잡아먹는다. 종종 메모리 변공으로 인해 많은 수의 gc가 일어날수있다. ex) for문안에 여러 임시 객체 생성 -> gc유도6. 메모리 중심의 리소스 및 라이브러리 제거 7. apk크기를 줄인다. 8. 외부라이브러리를 .. 더보기