본문

[2017.11.04] 69. Android 음악 플레이어 프로젝트 [최적화 1 - 라이브러리 사용]

도입

이번 포스팅에서는 주요 기능이 완료된 음악 플레이어를 최적화하는 방법을 실습할 예정이다. 그래서 첫번째 방법으로 그림파일을 안드로이드의 기본 라이브러리를 사용하는 것이 아니라 Glide를 사용할 예정이다.


Picasso VS Glide

Default 설정에서 Picasso는 원본 파일을 로드해 resize를 통해 이미지를 불러온다면 Glide는 로드하는 객체에 사이즈에 맞춰 로드하므로 빠르게 이미지를 로드할 수 있다.


적용

변경 전

변경 후

1
2
// 변경 전
infoImageView.setImageURI(music.getAlbumUri());
cs
1
2
3
4
5
// 변경 후
// Gilde 적용
Glide.with(context)
     .load(music.getAlbumUri())
     .into(infoImageView);
cs

문제점

그러나! 적용하니 문제점이 발생했다. Viewpager가 자연스럽게 넘어가지 않는 이유가 그림 파일 Load가 늦기 때문이라고 생각했는데 라이브러리를 적용해도 해결되지 않았다.

 

코드에 문제가 있을 것이라 생각해 코드를 주석 처리하면서 찾아본 결과 Service에서 StartForeground 메소드에서 많은 부하가 걸렸다. 그래서 해당 코드를 SubThread로 분리했다. 

변경 전

변경 후

1
2
3
4
5
6
7
8
9
public class PlayerService 
                extends Service 
                implements PlayerController.IObserver{
    // ...
    private void setNotification() {
        startForeground(11, makeNotification());
    }
    // ...
}
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class PlayerService 
                extends Service 
                implements PlayerController.IObserver{
    // ...
    private void setNotification() {
        // SubThread로 실행
        new Thread() {
            public void run() {
                startForeground
                        (11, makeNotification());
            }
        }.start();
    }
    // ...
}
cs

그래서 속도가 조금 빨라졌다.... 그러나 아직도 느리다 무엇이 문제인지는 파악해봐야겠다.


스크린 샷

 

 

#안드로이드 음악 플레이어 #안드로이드 mp3 #안드로이드 프로젝트  #앱개발 #모바일앱개발 #어플개발

공유

댓글