안녕하세요 개발자 정보 게시판에 잇는 android ndk 를 이용한 ffmpeg 빌드예제를 하고 있던중에 질문드립니다.
그 게시물에 질문을 안단건 더이상 활동이 없는것 같아서에요 ㅠ..
일단 질문은 jni에 C로 구현하는 부분인데 결국 C로 구현하고 ndk-build를 하지 않습니까 ..
그러면 소스 전체가 풀빌드가 되면서 상당히 시간을 소비하게 되는데...
소스를 수정하고 다시 ndk-build 하게 되면 또다시 풀빌드하게 되서 개발에 힘이 듭니다.
안드로이드 jni에서 수정한 소스만 빌드하는 방법이 있나요?
어떤 말씀이신지 잘 이해가 안가요;; ffmpeg 를 예로 들면 libavcodec, libavformat, libavutil, libavswscale 폴더에 android.mk가 있고 BasicPlayer라는 폴더 밑에 android.mk 가 있습니다. 제가 BasicPlayer폴더 밑에 c 소스를 수정했다면 libavcodec, libavformat, libavutil, libavswscale 폴더의 android.mk 파일을 지우고 나서 ndk-build 하면 BasicPlayer만 빌드 된다고 이해하면 될까요? ㅠㅠ
음..혹시 ndk-build와 ndk-build -B 의 차이인가 ;; 지금 구조는 ffmpeg 에서 android.mk 가 잇는데 이 파일이 하위 폴더의 android.mk 를 찾아서 빌드 시킵니다. libavforamt 먼저하고 libavformat.a인가가 만들어지고 libavcodec 그 다음으로 .a 가 만들어지고 하는 순인데요 다되면 so파일이 만들어지고요...아즈라엘님께서 말씀하신 것 처럼 소스가 나뉘어져 잇는것 같은데요 문제는 제가 ndk-build -B 이렇게 명령을 실행하는데 뜻모르고 했는데 혹시 -B 때문일지도 모르겟네요 ;; 감사합니다.
make proceeds to consider targets and their prerequisites using the normal algorithms; however, all targets so considered are always remade regardless of the status of their prerequisites. To avoid infinite recursion, if MAKE_RESTARTS (see Other Special Variables) is set to a number greater than 0 this option is disabled when considering whether to remake makefiles (see How Makefiles Are Remade). 



.so 또는 .a 를 나눠서 로딩하면 됩니다.
prebuilt 형태로 빌드하는건데요..
소스를 나누고 android.mk 나눠서 따로 작업한다음에 경우에 따라서는
빌드를 안하고 라이버리를 바로 로딩하도록 하면 되요~!!
빌드시간 줄이고 조아요 ㅎ