본문 바로가기
난독화 ( proguard ) 에 대한 고급정보. 난독화 ( proguard ) 에 대한 고급정보. -proguard option 에 -printusage unused.txt 를 추가해주면, 사용하지 않는 코드들이 출력되어 유지보수에 좋다. -optimization 하는 옵션을 줄 수도 있지만,optimization 은 Dalvik version 에 따라 호환이 안 되는 경우가 있어 함부로 쓰지는 않는 것이 좋다. -open source library 의 경우는 obfuscate(난독화) 할 필요가 없다.이미 open 된 소스들이기 때문이다.이럴 경우 아래와 같은 코드를 추가해주면, build time 을 줄일 수 있다. -libraryjars libs-keep class android.support.v4.app.** { *; }-keep interfa.. 2014. 5. 30.
하이퍼 바이저 ( Hypervisor ) 란? 하이퍼 바이저 ( Hypervisor ) 란? 참조 및 이미지 출처 : http://naleejang.tistory.com/91http://virtualhive.tistory.com/36 물리 서버를 가상화 환경으로 만들기 위해서는 하이퍼 바이저 ( Hypervisor ) 기술이 필요하다. 하이퍼 바이저는 호스트 컴퓨터 1대에서 다수의 운영체제를 동시에 실행할 수 있도록 해준다. 하이퍼 바이저는 2가지로 분류된다. 1. Native ( Bare-metal ) 하드웨어에 직접 설치되어 이 녀석이 여러개의 OS 를 돌린다. 호스트 OS 가 없어 이에 리소스를 할당하지 않아도 된다. 호스트형 가상화에 비해 오버헤드가 적고, 물리 컴퓨터 리소스 관리가 유연하다. 자체적으로 관리기능을 갖고 있지 않아 별도의 관리.. 2014. 5. 20.
ViewPager 를 사용할 때 performance, memory 이슈 직면하지 않기. ViewPager 를 사용할 때 performance, memory 이슈 직면하지 않기. View 계층의 단순화 ViewPager 는 현재 보여지는 page 뿐만 아니라 좌, 우의 page 도 pre loading 시켜 놓는다.따라서 UI 복잡한 것들이 page 를 차지하고 있다면, scroll 을 하면서 계속 버벅이게 된다.즉, Pager 에 들어가는 view 구성은 최대한 단순하게. Thread 처리를 확실히. 한 화면에 모든것이 표현될 때는 Main Thread 에서 살~짝 heavy 한 일을 해도 그럭저럭 그냥 넘어가는 일이 발생한다.하지만, viewpager 의 경우는 좌우의 화면을 미리 그려놓기 때문에 생성되면서thread 에서 작업하는 것이 길어지면 성능이슈에 당면하게 된다.이에 대해 알지 .. 2014. 5. 15.
[android] SharedPreferences Performance & Tips [android] SharedPreferences Performance & Tips -SharedPreference 는 Singleton 이다. -getString 과 같은 value retrieve 를 하는 경우에 xml 을 parse 해서 값을 가져와 map 에 저장한다.그래서 처음 call 에는 시간이 오래 걸리지만, 그 이후에는 시간이 오래 걸리지 않는다. -xml & parsing 방식이기 때문에 크기가 커질수록 get, commit, apply, remove, clear 등이 오래 걸린다.그래서 sharedpreferences 를 여러개로 나눠서 저장하거나, DB 도 생각해봄직 하다. -SharedPreferences 는 xml file 로 app data folder 에 저장된다. // sp.. 2014. 4. 18.
[android] flood fill algorithm performance tests. android, flood fill algorithm performance tests. 위와 같은 공룡의 엉덩이, 발, 그리고 꼬리에 이르는 부분을 FloodFill algorithm 을 적용하여 색칠해보았다.avg 값은 5회의 결과를 평균 낸 값이다. 1. Very Intuitive and Simple Flood Fill Algorithm Recursive method call 을 이용하여, 한 점을 기준으로 동,서,남,북 pixel 에 대해 recursive call 을 호출하는 방식이다. private void floodFill3(Bitmap bitmap, Point fillStartPoint, int targetColor, int replacementColor){Queue queue = new L.. 2014. 4. 11.
[Java] Double-checked locking 을 사용하지 말자! [Java] Double-checked locking 을 사용하지 말자! Double checked locking 이란? 보통 synchronized block 은 performance 이슈를 부르기 쉽다.double-checked locking 이 performance 이슈를 조금 완화시켜준다. double-checked locking 은 null check 와 같은 부분을 synchronized 밖으로 빼서synchronized 를 기다리지 않고 처리하게 만들어 준다. volatile 을 주면 read, write 가 sync 로 걸릴 경우 write 를 먼저 하게 하고, read 를 나중에 하게 한다.volatile 이 없다면 반대로 read 를 보통 먼저 하고 write 를 나중에 한다고 한다. .. 2014. 3. 31.
[Android] Blurring Technique faster than RenderScript [Android] Blurring Technique faster than RenderScript http://trickyandroid.com/advanced-blurring-techniques/ 요즘은 이상하게 Blurring 기술이 많이 언급되고 있다.performance 입장에서 Blurring 은 Renderscript 가 진리! 라는 추세인데,이 article 에서는 pure Java 를 이용하여 blurring 을 하면서 renderscript 보다 더 성능이 좋은 방법을 찾아냈다. Renderscript 의 단점은 그 사용법이 어렵다는 것이고, ( 물론 Blurring 만 하는 것은 어렵지 않다. )BackwardCompatibility 측면에서 제약이 있다는 것이다.그래서 저 글의 필자는 P.. 2014. 3. 27.
[android] Parcelable vs Serializable android, Parcelable vs. Serializable Serializable 은 Java 만 아는 사람이라면 쉽게 알 수 있는 serialization 방법.그냥 Serializable 을 implementation 만 해주면, serialize 가 필요한 순간에 알아서 serialze 해주는 편리한 marker interface. 그러나, mobile 시대가 강림하면서 등장한 유망한 어린이(?) 가 있으니 그는 바로 Parcelable.이 녀석은 IPC ( Inter Process Communication ) 에 최적화된 녀석으로.Serialize 보다 속도가 빠르다.물론, 해야 하는 일은 Serialize 보다 훨씬 많다.직접 serialize 되어야 할 녀석들을 선별해서 그것을 쓰고 읽.. 2014. 2. 15.
[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.
반응형