서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.

안녕하세요.

또 궁금한게 있어서 질문드려요~

많이 찾아보고 공부해봐도 확실한 답을 못 얻었네요;;


책의 예제를 공부하다보니


PDK를 이용해서 안드로이드 프레임워크 라이브러리인 so파일을 참조하는 APK파일을 만들었던데..


Android.mk 내용을 예로 들어보면


동적으로 참조하는 so 파일을 아래와 같이 참조하던데..


LOCAL_SHARED_LIBRARIES := \

libaudioflinger  \

libmediaplayerservice \


LOCAL_C_INCLUDES := \

frameworks/av/services/audioflinger \

frameworks/av/media/libmediaplayerservice \


LOCAL_SHARED_LIBRARIES로 설정한 동적 라이브러리들은

APK에 포함 되진 않는 것 같고

PDK 소스 내부 상대 경로로 참조 하는 것 같던데.. 제가 이해하고 있는게 맞는건진 잘 모르겠네요^^:;


그래서 본 질문은

안드로이드 OS가 올라가잇는 실제 타겟 디바이스(예를 들어 갤럭시s3)에 위의 방식으로 만든 APK를 설치하면


so파일을 타겟 디바이스의 경로에서 참조하게 되는건가요?



두서 없이 막 적은거 같네요.ㅠ


질문을 정리해 보자면


PDK를 이용해서 so파일을 참조하는 APK를 만들고 실제 타겟 디바이스에 설치하면

타겟 디바이스에 있는 so파일 참조하게 되는지 궁금합니다.



전호철

2013.03.07 11:09:40
*.86.236.164

생각하신게 맞습니다. LD_LIBRARY_PATH 걸려있는데서 찾도록 되어 있습니다.

공통적으로 있는것을 사용할때는 큰문제는 없을거예요. (제조사가 마구 바꾸지 않은 이상)

고도리

2013.03.07 12:57:32
*.111.12.170

so 파일은 컴파일시 참조만 하면 됩니다.

대신 run time 시에는 로딩이 되므로 반드시 시스템 경로상에 있어야 합니다.


김바람

2013.03.07 14:36:01
*.118.69.52

두분 모두 답변 감사드립니다^^ 오늘도 하나를 배웠네요 ㅋ


다른 궁금한점이 있습니다.^^:;


미디어 프레임워크 공부를 하면서 동영상 플레이어를 한번 만들어보려고 합니다.


제가 만든 앱에서 디코딩 된 프레임 데이터를 가져와서 여러가지 처리를 해보려고 합니다...


FFmpeg 라이브러리가 아닌 밴더의 하드웨어 디코딩으로 추출된 프레임 데이터를 원해서(속도때문에)...


네이티브 단에서 mediaplayer를 통해 stagefrightplayer엔진에서 제공해주는 기능만 사용할 수 있던데..


stagefrightplayer엔진에 기능을 추가하거나 디코딩 된 프레임 데이터를 가져오려면


타겟 디바이스의 프레임워크를 수정하지 않는 한 힘들까요?...


DicePlayer앱의 경우는 밴더의 하드웨어 디코딩으로 배속기능도 구현이 되어 있는걸 보니 불가능하진 않는 것 같은데 거기다 팝업플레이 기능까지 되는걸 보니..


아직 공부가 미흡해서 방법론이 잘 떠오르지 않네요..ㅠㅠ 혹은 제가 너무 엉뚱하게 생각한걸지도...


조언 부탁드리겠습니다~!!

전호철

2013.03.07 21:23:12
*.162.60.10

저도 새로 추가된 기능은 대충봐서 잘 모르지만


NDK 에 새로 추가된 MediaCodec 같은거를 쓸수 있더라구요

한번 살펴보세요.

보니까 MediaExtractor 도 상속해서 기능추가하여 만들수 있겠더라구요.

김바람

2013.03.08 08:48:52
*.118.69.52

정보 감사합니다^^ㅎ

저도 MediaCodec API로 자바단에서 동영상 플레이를 구현해보았는데.. 자바단으로 올라와 있는 버퍼에는 접근이 안되더군요 ㅠㅠ...

네이티브를 통해서 한 번 접근해봐야겠네요~



당근구름

2013.03.08 23:38:10
*.42.208.176

예전에 Nexus S에서 2.3대로 작업을 했었는데,

하드웨어 코덱을 사용하면 영상 버퍼에 접근이 불가능 했습니다.


media framework 단에서는 제어만 하고,

영상 데이타는 하드웨어 오버레이에 바로 뿌리는 걸로 보였습니다.


android source에 있는 주석에도,

하드웨어 디코더 사용하면 영상 버퍼에 접근할 수 없다고 되어 있었습니다.

고도리

2013.03.10 03:29:16
*.200.239.210

ACodec을 이용하면 hw codec에 접근할 수 있을겁니다.


다만, 영상의 출력 format을 알아야 하는 단점이 있습니다.

예를 들어 삼성의 경우는 NV12Tiled라는 자사 포맷을 사용하고, Qualcomm등은 또 다른 포맷을 사용합니다.


이 부분을 추적하는게 좀 힘들겁니다.


즉, 데이터는 가져오려면 각 회사의 format을 어느정도 아셔야 합니다.

다만 framework단을 손댄다는 가정하에서는 그냥 surface만 제대로 설정하시면 그냥 hw codec을 다 사용하실 수 있을겁니다.


dice player는 아주 예전에 symbol만 훑어본적이 있는데, 예전이랑 요즘은 많이 틀려졌을 거라고 생각합니다.

대충 동작되는 것을 보면 큰 문제없이 파악하실 수 있을겁니다.


여하튼 ACodec같은 것을 이용하면 사용하실 수 있습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

PDK를 이용하여 안드로이드 프레임워크 so파일 참조에 관해서 질문있... [7]

예제를 따라하던 중 Android.mk 파일로 APK파일 생성 후 설치시 ... [6]

ndk 38페이지 질문_repo file [1]

안드로이드의 모든것 분석과 포팅 교재 관련 [2]

  • nexus26
  • 2011-07-05
  • 조회 수 10562

[Linux와 Android] 001 - 임베디드 시스템에 대하여 file

다시 질문 드립니다.ㅜㅜ apk 설치문제입니다. [3]

책 관련해서 질문이 있습니다. [1]

  • winpih
  • 2011-07-13
  • 조회 수 9030

안드로이드 init의 특징에 대해 질문있습니다. [2]

117쪽 ueventd 실행 부분.. [1]

475페이지 그림 외 건의 사항.. [2]

[Linux와 Android] 002 - UNIX/Linux system 개요 file

[Linux와 Android] 002 - UNIX/Linux system 개요(Continue......

p186. Gingerbread 센서 구조의 간략한 설명 요청드립니다. [3]

  • forone
  • 2011-08-25
  • 조회 수 8429

NDK를 이용한 camera 제어 예제에 대해 문의 드립니다. [7]

  • 죽유
  • 2013-01-11
  • 조회 수 8047

chapter7 안드로이드 오디오 서브시스템 에서 궁금한게 있습니다 [1]

개발환경 설정 중 문의사항입니다. file [1]

아래 [SDL 예제관련 에러 질문입니다.] 이어서... [3]

  • 민민
  • 2012-12-26
  • 조회 수 7753

책이 나온내용이지만 좀 다른예기일수도 잇네요 [1]

RGB 부분에 대해서 질문이 있습니다. [1]

  • ys2cdh
  • 2012-01-05
  • 조회 수 7380

JNI로 휴대폰 디바이스 번호를 구하려고 합니다 file [3]

  • fox8306
  • 2012-09-19
  • 조회 수 6878

사용자 로그인