안녕하세요?

항상 많은 도움을 받고 있습니다. 한가지 또 질문드립니다.

Developer site에 보면, 아래와 같이 NDK에 대해서 부분적인 제약이 있다는거 같습니다.

It provides a set of system headers for stable native APIs that are guaranteed to be supported in all later releases of the platform:

    * libc (C library) headers
    * libm (math library) headers
    * JNI interface headers
    * libz (Zlib compression) headers
    * liblog (Android logging) header
    * A Minimal set of headers for C++ support


그리고 릴리즈된 NDK소스에 보면 two-libs 예제가 있습니다.
first.c를 build해서 static library인 libtwolib-first.a을 생성하고,
second.c를 build해서 libtwolib-second.so을 생성하게 됩니다.
Main 기능은 first.c에 위치하여 static library에 포함되고 이 static library에 있는 function을 second.c로 생성된
Dynamic Library(.so)에서 사용하고 있습니다.

Java Application 쪽에서는 second.c로 생성된 libtwolib-second.so를
System.loadLibrary("twolib-second")와 같이 Load해서 사용하고 있습니다.

질문은 아래와 같습니다.

제가 만약 Android Java Application을 개발하는데, Third party에서 제공하는 static library(C나 C++로 구현됨)를 사용해야 합니다.
(* 사실 Third party업체는 Android Platform관련해서 전혀 모릅니다. Android의 NDK의 제약이나 환경에 대해서는 전혀 모르고 있으며
단지 C나 C++ 로 개발한 library를 제공하면 된다고 생각합니다. 소스 open은 당연히 안하구요)
Thidr party에서 제공하는 static library(대략 encryption/decryption, random number 생성, file system access및 기타역할을 함)를
받아서 그 static library에서 제공되는 함수를 제가 만든 dynamic library(.so) 에서 호출해서 연결해서 사용하려고 합니다.
(* NDK의 two-libs 예제처럼요)

1) 이 경우 잠재적으로 문제가 될만한 것이 무엇인지요?

2) Third party library도 NDK환경에서 제공하는 limited library(lib headers, libm headers, libz headers.. 등)와 GNU 3.8.1 이상의 version으로 build해서 release해 달라고 요청하는게 맞을까요?

감사합니다.