본문 바로가기
[android] Memory Allocation 을 추적하자! Memory Allocation 을 추적하자. DDMS 의 Allocation Tracker 라는 도구를 이용하여 메모리 할당을 조사할 수 있다.해당 application process 를 클릭한 후 Allocation Tracker 를 클릭하고, Start Tracking 버튼을 클릭한 후, 앱에서 여러가지 기능을 수행한다. 그 다음 Get Allocation 버튼을 클릭하면 현재 할당된 메모리들에 대한 정보가 나온다. 해당 메모리가 어떤 경위로 할당되었는지 Stack Trace 정보도 볼 수 있고, 어떤 Thread, 어떤 Class, 어떤 File의 몇번째 줄에서 생성된 녀석인지 상세정보를 알 수 있다. Allocation Tracker, Android, application process, CLA.. 2013. 8. 13.
[Java] JDK 1.7 부터는 String 에 대해 switch 문을 쓸 수 있다!? 자바, JDK 1.7 부터는 String 에 대해 switch 문을 쓸 수 있다!? 제목 그대로이다. 이전의 switch 문은 int 형 형태의 자료형에만 사용할 수 있었다.그러나 우리가 원하던.. string 형태의 switch 문도 1.7 부터는 사용할 수 있다고 한다 야호! switch( str ){ case "감자":// do sthbreak;case "고구마":// do sthbreak;} 이제 위와 같은 구문이 가능해진다는 것!!그러나, 안드로이드 개발자인 나에게는... 안드로이드가 현재 1.6 까지만 지원하기에 그냥 참고정보로만.. ㅎㅎ android java, android java version, android switch, java 1.7, java 1.7 switch, Java 7, .. 2013. 8. 11.
[android] MIME Type 을 쉽게 얻어와보자! 안드로이드, MIME Type 을 쉽게 얻어와보자! 파일처리하는 앱을 만들다 보면, 간단하게 하기 위해 Intent 를 날리곤 한다.그런데, 해당 파일을 처리해줄 앱을 찾기 위해서는 type 을 제대로 넣어주어야 한다.그런데 MIME Type 을 수작업으로 다 매핑해주기는 귀찮고, 대부분의 general 한 파일에 대한 mime type 을 쉽게 얻어오는 방법은 없을까? 있다. MimeTypeMap 이라는 class 가 있어서 이렇게 이용하면 된다. MimeTypeMap mimeTypeMape = MimeTypeMap.getSingleton();String mimeType = mimeTypeMape.getMimeTypeFromExtension( ".pdf" ); // mimeType = "applicat.. 2013. 8. 11.
[Java] inner class 에 대한 이야기 자바, inner class 에 대한 이야기. 자바를 사용하다 보면 항상 적게 사용하는 녀석들은 정확히 개념을 못 잡기 마련이다.필자에게는 그런 것 중 하나가 inner class 인데, 사용은 잘 하지만 IDE 에 의존하는 경향도 있기 떄문에 정확히 개념을 잡아본다. inner class Class 안에 정의된 내부 클래스로, 외부 클래스의 자원을 마치 자기 것처럼 사용할 수 있다는 장점이 있다. Inner class 로 정의하지 않은 경우에는 outer class 의 자원을 파라미터로 다 넘겨주어야 하기 떄문에 복잡해질 수 있다. 일반 inner class 는 맴버변수의 level 로 정의된다. 따라서 outer class 의 instance가 있어야 inner class 를 new 를 통해서 만들 .. 2013. 8. 9.
[android] framework 의 service와 broadcast 안드로이드, framework 의 service 와 broadcast 음악앱은 Service 에서 Notification 과 함께하여 음악을 재생한다. 알람시계앱은 AlarmManager 를 이용하여 PendingIntent 로 Broadcast 를 날리고, 그것을 스스로 수신해서 Activity 를 띄운다. 달력앱은 특정 이벤트 알람내용을 알리기 위해 AlarmManager 를 알람시계앱처럼 이용한다. 백그라운드 파일 다운로드는 다운로드가 있을 경우 작동하는 Service. E-mail 앱은 특정 주기마다 새로운 메일을 확인하기 위해 Alarm 을 통해 Service를 실행한다. 구글 앱들은 네트워크 Push 이벤트 수신과 동기화를 위한 Service 를 돌린다. 구글에서 보내주는 앱 관련 Push 도.. 2013. 8. 9.
[android] Context 관련된 메모리 누수 문제를 피하고 싶다면? 안드로이드, Context 관련된 메모리 누수 문제를 피하고 싶다면? 1. Activity의 Context 참조를 오랫동안 유지하면 안된다. Context 에 대한 참조는 Activity 의 생명주기와 동일해야 한다. 2. Activity Context 대신 Application Context 사용을 고려해야 한다. 3. Activity 내부 클래스의 생명 주기를 잘 관리하는 경우가 아니면, Activity 를 참조하고 있는 내부 클래스를 사용하지 말자. 특히 Static 으로 Context 를 참조하는 object 를 저장하는 것은 아주 위험하다. 대표적인 것은 Drawable. Context 를 참조하는 녀석들은 WeakReference 를 이용하는 것이 좋다. 4. GC는 Memoery Leak 에.. 2013. 8. 9.
[android] MultipartEntity 내용 print out 안드로이드, MultipartEntity 내용 print out. 이미지파일을 server 에 업로드하거나 할 때는 아파치 ( Apache ) 의 library 에 있는 MultipartEntity 를 이용하면 편하다. 그런데 가끔가다 MultipartEntity 에 내용이 잘 들어가서 전달되는지 궁금하곤 하다. 이럴때는 다음 코드로 MultipartEntity 내용을 print out 할 수 있다. ByteArrayOutputStream bytes = new ByteArrayOutputStream();try {entity.writeTo( bytes );} catch ( IOException e ) {Log.e( TAG, "MultipartEntity print", e );}Log.e( TAG, "Mul.. 2013. 8. 8.
[android] CharSequence.equlas( CharSeqence ) 이야기 안드로이드, CharSequence.equals( CharSequence ) edittext 의 내용을 비교하기 위해 CharSeqeucne.equals( CharSequence ) 를 했는데,항상 false 를 내뿜는다. ex)edittext1.getText().equals( edittext2.getText() ) // return false always. 이번에는 같은 내용의 string 과 비교했지만 항상 false 를 내뱉는다. ex)edittext1.getText().equals( "Gamza" ) // return false always 같은 reference 를 가르키는 것이 아니라면 항상 false 를 내뱉는다. 그럼 어떻게 비교할까? 1. Charsequence 에 toString 값을 .. 2013. 8. 8.
[android] FragmentPagerAdapter? FragmentStatePagerAdapter 사용도 고려해보자. 안드로이드, FragmentPagerAdapter? FragmentStatePagerAdapter 사용도 고려해보자. FragmentPagerAdpater 나 FragmentStatePagerAdapter 를 사용할 때는 사실 가장 좋은 방법은 getItem() 부분만 잘 구현하고, instantiateItem() 은 건들지 않는 것이 좋다. 만약 건들고 싶다면, ViewPager 가 이 PagerAdapter 들을어떤 방식으로 호출하고, 어떤 루틴을 타는 지 정확히 이해하고 사용하는 것이 좋다. 사실 instantiateItem(), destroyItem(), 그리고 isViewFromObject() 는 이들보다 상위 class 인 PagerAdpater 자체에 정의되어 있는 함수들이다. 그리고 Fra.. 2013. 8. 7.
반응형