본문 바로가기
[도서 정리] 안드로이드 앱 성능 최적화 #3 하드웨어 성능과 배터리 수명 안드로이드 앱 성능 최적화 #3 하드웨어 성능과 배터리 수명 이 글은 “안드로이드 앱 성능 최적화” 의 일부 내용만 정리한 것입니다.자세한 내용은 책을 구매하여 보세요~3.1. 안드로이드의 하드웨어 기능 3.2. 덜 써야 더 쓴다. -구글에서는 단 1초동안 기기가 활성화되어도 2분 동안 대기하는 것과 비슷한 전력을 소모한다고 한다.넥서스 5 기준 대기 시간(LTE 나 와이파이 연결되어 있지만 기기를 사용하지 않음) 은 약 300시간 ( 12.5일 ).그러나 와이파이로 인터넷을 사용하기 시작하면 약 8.5시간 사용 할 수 있다.즉 대략 5분 동안 일반적인 앱을 사용하면 약 1~1.6% 의 배터리가 소모된다.앱이 더 많은 동작을 하면 더 많은 배터리가 사용된다. -광고를 포함한 앱에서 광고만 제거했을 경우 .. 2018. 6. 24.
[도서 정리] 안드로이드 앱 성능 최적화 #2 안드로이드 디바이스 랩 만들기 안드로이드 앱 성능 최적화 #2 안드로이드 디바이스 랩 만들기 이 글은 “안드로이드 앱 성능 최적화” 의 일부 내용만 정리한 것입니다.자세한 내용은 책을 구매하여 보세요~-구글에서는 전 세계적으로 활성화된 안드로이드 기기가 14억 대가 넘었다고 발표했다.전 세계에 보급된 전체 스마트폰의 80% 에 해당하는 수치이다. -TestDroid 의 연구에 따르면 상위 20% 기기를 테스트해보려면 12대의 기기가 필요하다.50% 를 테스트해보려면 최소 60대의 기기가 필요하다. 미국 시장으로 한정하더라도 66% 를 테스트해보려면 25대의 기기가 필요하고90% 정도를 테스트해보려면 128대의 기기가 필요하다고 하다. 2.1. 고객들은 어떤 기기를 사용하나요 -2016년 9월 기준 킷캣(KK)은 27.7%, 젤리빈(J.. 2018. 6. 23.
[Java] Jit Compiler 에 대한 이야기 [Java] Jit Compiler 에 대한 이야기 http://blog.takipi.com/java-on-steroids-5-super-useful-jit-optimization-techniques/ -bytecode 는 original Java 코드를 그대로(dynamic optimization 없이) 나타낸 것이라고 보면 된다.JVM 이 bytecode 를 Assembly로 변환할 때 2가지 mode 가 작동한다. 1.Interpreted mode : JVM 이 bytecode 를 읽고 실행시킨다.2. Compiled mode(byte code to assembly) 이 두가지 mode 를 잇는 것이 JIT compiler 이다. Interpreted mode 가 assembly level 로 최적.. 2018. 1. 14.
[Objective-C] 병렬 프로그래밍 [Objective-C] 병렬 프로그래밍 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 19. 19.1. 멀티 스레드 * 19.1.1. 스레드의 기본 개념 -스레드(thread)란 프로세스(process)안에서 CPU 이용권을 가진 가상적인 실행 단위이다.일반적으로 하나의 프로세스에는 하나의 스레드밖에 없지만 복수의 스레드를 생성해 프로세스 안에서 병렬로 동작시킬 수도 있다. -프로그램 실행이 시작될 때부터 동작하는 스레드를 메인 스레드라 하고 그 외에 나중에 생성된 스레드를 세컨더리 스레드(secondary thread) 또는 서브 스레드(subthread)라고 한다. -부모 스레드는 자식 스레드의 실행이 끝나길 기다렸다 합류(join)할 수 있다.대다수의 스레드 구현은 따로.. 2018. 1. 10.
[ios/reference] Improving Animation Performance [ios/reference] Improving Animation Performance https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/ImprovingAnimationPerformance/ImprovingAnimationPerformance.html#//apple_ref/doc/uid/TP40004514-CH9-SW1 -가능하면 항상 Opaque Layer 를 사용하라. opaque property 를 YES 로 해놓으면 alpha channel 을 유지할 필요가 없음을 알게 된다. 그래서 blend 하는 로직을 타지 않아도 되서 rendering performance 가 좋아진다. 만약 c.. 2017. 11. 23.
Android O Background 실행 제한 Android O Background 실행 제한 https://developer.android.com/about/versions/oreo/background.html#services -앱이 Background 로 돌 때는 디바이스의 리소스를 사용한다. 예를 들면 RAM, CPU.이런것들이 리소스를 많이 사용하는 게임이나 비디오 시청 등에 방해가 된다.이를 개선하기 위해 Android 8.0 ( API 26 ) 부터는 background 작업에 대한 제한이 추가되었다. Overview -많은 안드로이드 앱과 서비스는 동시에 돌 수 있다.예를 들면 게임을 한 윈도우에서 하면서 다른 윈도우에서는 브라우징을 하고, 백그라운드에서는 음악도 재생할 수 있다.더 많은 앱들이 한번에 돌면서 시스템에 더 많은 부하가 생.. 2017. 10. 20.
[Effective Objective-C] #44 플랫폼 확장의 이점을 얻으려면 디스패치 그룹을 사용하라 [Effective Objective-C] #44 플랫폼 확장의 이점을 얻으려면 디스패치 그룹을 사용하라 출처 : Effective Objective-C -플랫폼 확장이라 함은 CPU 의 다수의 코어를 자동으로 활용하는 이점 -디스패치 그룹은 그룹 작업을 쉽게 할 수 있게 하는 GCD 기능이다.이 기능을 사용해 작업들이 모두 끝나기를 기다리거나 작업들이 모두 끝났을 때 콜백을 통해 알림을 받을 수 있다.이 기능은 몇 가지 이유 때문에 매우 유용하다.이점 중 첫 번째이자 가장 흥미로운 것은 다수의 작업이 병렬로 수행되길 원하고 모든 작업이 언제 끝났는지 알고 싶을 때다. 다음 함수로 디스패치 그룹을 생성할 수 있다.dispatch_group_t dispatch_group_create(); -그룹은 식별자가.. 2017. 10. 9.
[iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) [iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100-SW1 -전통적 방법으로의 복수개의 코어를 사용하는 방법은 여러개의 thread 를 만들어 사용하는 것이다.그러나 thread 를 사용한 코드는 scale 측면에서 좋지 않다.core 가 처리하기 좋은 thread 의 갯수를 아는 것도 쉽지 않고, thread 들을 효율적으.. 2017. 7. 1.
[android] adb dumpsys 를 잘 사용해보자. [android] adb dumpsys 를 잘 사용해보자. // service 들의 이름을 보자.> dumpsys | grep “DUMP OF SERVICE" // battery 정보를 보자.> dumpsys battery // wifi 정보를 보자.> dumpsys wifi // cpu 정보를 보자.> dumpsys cpuinfo // 특정 앱의 memory 정보를 보자> dumpsys meminfo “app package name" // activity 정보를 보자> dumpsys activity // 패키지 정보를 보자> dumpsys package [optional app package name] // window 정보를 보자> dumpsys window activity, adb dumpsys, .. 2017. 5. 18.
반응형