안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요...
packages에 보면 providers/MediaProvider라는 sub 디렉토리가 있는데요...
코드를 보다 궁금한 점이 있어서 질문 드립니다.
그 안에 MediaScannerConnectin.java를 보면
import android.media.MediaScanner, import android.media.MediaProvider 와 같이
sdk에 포함되어 있지 않음 class들은 import하고 실제로 MediaScanner scanner = new MediaScanner(this)와 같이
생성자를 부르고 실제 사용을 합니다.
아마도 packages가 빌드될때 무언가 include를 했을 거라 판단하고
package에 같은 디렉토리 구조를 만든뒤 Android.mk도 실제 되는 package것의 이름만 바꾸어서 빌드를 해보았지만
에누리 없이 심볼을 못찾는 다는 메시지가 나오네요...
혹시 관련된 정보를 아시는 분 있으시면 많은 조언 부탁 드립니다.
펍 여러분 새해 복 많이 받으세요...
debug-library 라는 것이 정식명칭은 아니고요. 그게 뭐냐 하면, 안드로이드 풀소스를 받아서 직접 풀빌드를 한 경우
framework-classes-full-debug.jar 와 비슷한 이름의 라이브러리 파일을 얻을 수 있습니다.
이 라이브러리를 같이 링크(??)하면, 위에서 언급하신 모든 클래스들을 다 사용할 수 있습니다.
다만 이런 클래스들은 public sdk 에 없는 것으로서, 차기 안드로이드에서는 없어질 수 도 있고,
바뀔 수도 있는 성질의 것입니다. 그래서 보통 폰 제조사에서 폰에 기본 탑재하여 배포하는
어플을 만들 때 사용하고, 마켓에 올리거나 하는 어플 만들시에는 사용하지 못하도록 구글에서
public sdk 로는 열어두지 않는 것입니다.
안드로이드 풀소스 받아서 기본 탑재 어플들 쏘스를 까보면, public sdk 에 없는 클래스들을 많이 사용하죠 :(