본문 바로가기
[android] how to improve the performance of WebView Android, How to improve the performance of WebView webview 의 성능을 향상시키기 위해 여러가지 이야기가 돌아다니는데, 가장 general 하게 통용되는 녀석은 cache 를 쓰지 않는 방법으로 보인다. WebView.getSettings().setCacheMode( WebSettings.LOAD_NO_CACHE ); 사실 Cache 를 쓰는것은 성능상의 이슈 때문인데..안드로이드 프레임워크상의 에러인지, 아니면 모바일 단말의 특성상 cache 처리를 위해 여러번의 network connection 을 하지 않고, 무조건 한번에 가져오는 것이 빠른것인지 ( contents 사이즈가 작다는 가정 하에 ) 정확한 이유는 알 수 없지만, 여튼 Cache 를 사용하지.. 2013. 9. 26.
[android] Data 안전하게 저장하기, 안드로이드, Data 안전하게 저장하기. SharedPreference 와 SQLite 만 사용한다면 별로 걱정할 일이 없다.만약 File I/O API 를 직접 이용하면 문제가 된다.ext4 파일 시스템은 YAFFS ( 과거 안드로이드가 채택한 파일 시스템 ) 에 비해 훨씬 적극적으로 버퍼를 활용한다. 따라서 write() 와 close() 메서드를 호출했다고 해서 데이터가 실제 플래쉬 메모리에 저장되었다고 단언할 수 없다. 따라서 데이터를 저장할 때는 RandomAccessFile 의 synchronous 모드를 사용하는 것이 좋다. 이렇게 사용하면 내부적으로 fsync() 를 호출한다. FileOutputStream 을 사용하게 되면 다음과 같이 sync 를 시켜주어야 한다. public stati.. 2013. 9. 25.
[android] how to remove extra padding( or margin ) in the GridView android, how to remove extra padding( or margin ) in the GridView [En] GingerBread and below versions show strange effect at the GridView. Sometimes it introduces extra padding or margin which was not set by programmer. I think the fragmentation of android and the various versions are a huge disaster to the programmer. BTW, there's solution for removing those unexpected extra padding or margin.I.. 2013. 9. 24.
[android] 안드로이드 개발 10계명 안드로이드 개발 10계명 ( 명심해야 할 10가지 ) 1. 앱 구성요소간 데이터를 주고받을 경우, Extra 로 여러값을 따로따로 전달하기보다는 Parcelable 을 사용하는 것이 유지보수에도 쉽고 성능이슈도 있다. Serialization 도 방법이긴 하지만 안드로이드에서는 Parcelable 이 Serialization 보다 더 효율적이다. 2. UI 와 관련된 코드를 제외한 다른 Heavy 한 모든 일은 다른 thread 를 만들어 수행해야 한다. 3. Object Cache 를 적극 활용하자. ( Object Pool 패턴사용이 추천된다. ) 안드로이드의 GC 는 폰이 버벅대는 효과를 가져오는 1등공신(?) 이다. 4. ListAdapter 내부에서는 오랜 시간이 소요되는 연산을 수행하지 않는다.. 2013. 9. 24.
[android] how to disable gridview scrolling. android, how to disable gridview scrolling [En]Not only the GridView but also all kinds of AdapterView can be adjusted not to scroll by making new class which extends the view. You can do nothing in the onTouchEvent and onInterceptTouchEvent function which are responsible for taking MotionEvent and do scrolling logic. [Kr]GridView 뿐만 아니라 모든 AdapterView 들의 Scrolling 을 막는 데는 아래와 같이 해당 View 를 exten.. 2013. 9. 23.
[android] Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 안드로이드, Caused by : java.lang.IllegalStateException : Can not perform this action after onSaveInstanceState 이 Exception 은 Fragment Transaction 의 commit() 함수에서 발생하는데,해당 exception 이 자주 발생하는 상황은 보통 Activity 가 종료하는 타이밍에 Fragment Transaction 으로 Fragment 를 remove 하는 commit 을 하면 그렇다.말 그대로 onSaveInstanceState() 가 실행된 이후에 commit() 이 되면 상태정보가 날아가기 때문에 경고차원에서 Exception 을 던지는 것으로 보이는데, 사실 경고를 보여주지 않고 excepti.. 2013. 9. 21.
[android] 대체 리소스는 어떤 것을 쓸까? 에 대한 실험 결과 안드로이드, 대체 리소스는 어떤 것을 쓸까? 에 대한 실험 결과 모든 resource 가 제대로 박혀 있을 때는 당연히 자신의 resource 를 가져다 쓰는 것이 당연하다. 환경구성 아래 폴더에 각각 drawable.png 이라는 이미지 파일을 만들고, 각 이미지에는 문자로 해상도를 표기한다.drawable drawable-nodpi drawable-ldpi drawable-mdpi drawable-hdpi drawable-xhdpi 실험 1 : xhdpi 단말에서 xhdpi resource 를 지웠다. 어느 것을 가져다 쓸까?예상 : 가장 밀접한 해상도인 hdpi 혹은 아예 default 가 될 수 있는 drawable, drawable-nodpi 를 가져다 쓸 것이다.결과 : hdpi 것을 가져다 .. 2013. 9. 20.
[android] Intent Filter 를 이용하여 link 처리하기. 안드로이드, Intent Filter 를 이용하여 link 처리하기. 간혹가다 보면, 일반 url 을 클릭했을 뿐인데 Google Map Activity 가 뜨는 것을 본 적이 있을 것이다. 분명 link 를 클릭했다면 브라우저가 떠야 하는데 말이다. 사실 브라우저가 해당 link 를 처리하는 것보다는 Map App 에서 처리하는 것이 훨씬 효율적이라는 것은 모두가 공감할 것이다. 그럼 특정 상황 & link 에 대해서 앱이 이를 처리하게 하려면 어떻게 해야할까? 답은 제목에서도 알 수 있듯이 intent filter 를 이용하여 처리할 수 있다. 위와 같이 BROWSABLE 로 category 를 두어 link 를 가로챌 수 있도록 해주고, data 에 scheme, host, pathPrefix 등을.. 2013. 9. 19.
[android] WebView 의 위치가 갑자기 확 바뀌는 현상 안드로이드, WebView 의 위치가 갑자기 확 바뀌는 현상 WebView 의 위치가 갑자기 확 바뀌는 현상의 원인은 WebView 가 Focus 를 받기 때문이다.( 물론 다른 이유가 있을 수 있지만, 필자의 경우의 원인은 이거였다. ) 필자가 겪은 증상은 한 Fragment 에서 아래와 같은 layout 이 있는 상황. ScrollViewLinearLayout ( vertical )다른뷰들WebView 발생한 문제 재현은 해당 fragment 에서 다른 fragment 로 갔다가 돌아와서webview 부분을 클릭하면 webview 부분이 focus 를 받으면서 ( 직관적으로 알 수 없으나 해결결과를 보면 focus 를 받았다는 것을 알 수 있다. ) webview 쪽으로 scroll 이 확~ 이동하는.. 2013. 9. 17.
반응형