0

android ndk에서 2 개의 다른 라이브러리에 대한 싱글 톤을 만들려고합니다.NDK 정적 라이브러리에서 싱글 톤 만들기

내가 가진 것을 상상해 : (정적)

  • LIB2

    • LIB1를 (공유)
    • lib3 (공유)

    lib1는 항상 lib2lib3

    의 LOCAL_STATIC_LIBRARIES으로 정의된다

    하지만 내가 lib2의 싱글 톤 값.이 값은 lib3에서 NULL로 유지됩니다.

    어떻게이 아키텍처로 싱글 톤을 만들 수 있습니까?

  • 답변

    0

    herehere과 같이 문제는 일반적이며 좋은 해결책이 없음을 인정합니다. 공유 라이브러리에는 링크 된 정적 라이브러리 (코드와 데이터 모두)의 별도 사본이 있습니다. 서로 다른 SO의 정적 라이브러리 인스턴스는 상호 작용하지 않으며 많은 좋은 이유도 있습니다.

    필요한 것은 두 가지 모두에서 액세스 할 수있는 메모리 덩어리입니다. 싱글 톤을 Java 레벨까지 이동할 수 있습니다 (결국은 Android에 있습니다). 잘 알려진 이름을 가진 임시 파일을 가질 수 있습니다. C 레벨 TLS도 도움이 될 수 있습니다.

    안드로이드의 공유 메모리 기능 (ashmem)은 명명 된 블록을 제공하지 않으므로 아무 쓸모가 없습니다.