Things take time

[Android] 깃허브 외부 라이브러리 적용하기 본문

Android(기능)

[Android] 깃허브 외부 라이브러리 적용하기

겸손할 겸 2017. 7. 24. 14:45

[외부 라이브러리]


안드로이드로 개발하다보면 모든 것을 내가 짠 코드로 작성하면 좋겠지만..

실제로 그런 경우는 많이 없다. 기능은 구현했으나 최적화가 되지 않아 속도가 느리거나, 앱이 죽거나, OOM이란 Out Of Memory를 만나거나.. 등등 문제가 많기 때문이다.


나같은 경우에는 초반에는 무조건 내가 짜서 내 소스만을 이용하려 했으나, 앞에 말한 속도 저하 등의 이유로 몇 개는 외부 라이브러리를 사용한다.

그런 경우, 외부 라이브러리를 사용하는 방법을 2가지 소개한다.



[Gradle]


컴파일할 때 사용하는 그래들, 그 안에 해당 외부 라이브러리의 주소를 입력하면 바로 사용할 수있다. 보통 깃허브를 통해 사용할 때는 거기서 설명하는 그대로를 따라하면 된다.



https://github.com/darsh2/MultipleImageSelect


예제는 앨범 이미지 피커라이브러리인데 거기서 설명하는 내용이다. 다만 첫 번째 repositories는 Gradle중 프로젝트 단위의 그래들안에 allprojects밑 repositories를 의미하고.. 두 번째 dependencies는 모듈 단위의 그래들 안에 dependencies를 의미하는 것이므로.. 그 안에 작성해서 사용하면 된다.


그런데 여기서!

내가 저 라이브러리를 사용하는데 중간 수정하고 싶은 곳이 생겼다면? 해당 라이브러리의 string.xml을 열어 수정해야 겠다면 위의 방법으로는 해당 라이브러리 소스코드를 접근할 수 없다. Ctrl키를 눌러 해당 클래스로 들어가도 수정은 불가능하다. 이 때가 두 번째 방법이다.



[외부 라이브러리를 패키지 안에 넣기]


1. 깃허브에서 해당 폴더를 다운받는다. (Download ZIP으로)


2. 다운받은 압축파일을 해제하고.. 필요없는 경우 sample 폴더를 삭제한다. (샘플은 말 그대로 예제기때문에.. 해당 프로젝트는 사용할 일이 없다)


3. 안드로이드 스튜디오에서 File -> New -> Import Module.. 클릭하고, 다운받은 압축 푼 폴더의 경로를 입력한다. (바탕화면 경로일 경우, 윈도우 사용자 계정이 한글이면 안된다)




이 작업을 마치면 그래들이 알아서 동기화작업을 수행하는데, 경고 메시지나 업데이트 관련 메시지가 뜨면 그대로 해주면 된다.



그럼 이렇게 내가 원래 생성한 프로젝트(app)과 import한 multipleimageselect가 보인다.


4. 이제 사용할 수 있는 것이 아니라.. 첫 번째 방법에서 그래들 밑의 dependencies에 해당 코드를 넣은 것처럼 비슷한 결과물(?)을 내기 위해 File -> Project Structure을 킨다.


5. 좌측 메뉴 app을 누르고 Dependencies를 선택, 우측의 + 버튼을 누른 뒤, Module Dependency를 클릭한 뒤에 해당 프로젝트를 선택 OK하면 된다.



6. 확인차 그래들의 모듈 단위로 열어보면 dependencies에는 



요렇게 컴파일 프로젝트란 말이 추가 되어 있는 것을 확인할 수 있다. Settings.gradle에도 마찬가지




그리고 코드에서 사용하려 하면



이렇게 라이브러리가 안으로 들어와서 접근할 수 있게 되었다(1번도 마찬가지)

그리고 저 액티비티 클래스로 들어가면




이렇게 외부 라이브러리 코드 안에 글도 작성할 수 있다는 것