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

안녕하세요.

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

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


책의 예제를 공부하다보니


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
번호 제목 글쓴이 날짜 조회 수
83 ffmpeg HOPLAY [3] 네이쳐 2013-12-01 4792
82 안드로이드의 모든 것NDK (고현철,전호철 지음) 책 실습 중 문제에... [1] 어떤이의꿈 2013-10-02 5398
81 init: sys_prop: unable to stop service ctl [DVBService] ... [2] 제임스59 2013-09-22 5480
80 NDK 책내용중에 3.11 외부 라이브러리 활용하기 에서 질문 드립니... file [5] 엽스 2013-08-30 5590
79 ndk 38페이지 질문_repo file [1] 제임스59 2013-08-28 12060
78 여러 분들이 말씀하신 것처럼 책(NDK)의 예제코드를 올려주실 수 없... [2] 트론 2013-08-24 5255
77 surfaceflinger에서 화면을 dump뜨는 메카니즘에 대해서... 김바람 2013-08-19 5134
76 안드로이드 4.2 프레임버퍼 접근 질문드려요~! [6] 범내 2013-07-30 5947
75 [압축된 07-TestSkia 예제파일 올려주세요] [1] 밥줘잉 2013-05-23 5664
74 MediaServer 에 관련해서 질문드려요 [10] 김바람 2013-03-27 6580
73 3rd party app에서 프레임워크 수정된 걸 적용시키려면 어떻게 해야... [3] 김바람 2013-03-17 4838
72 [예제12.SDL] Android 에서 SDL 사용하는 예제 실행 안됨 문의... [7] 둘리 2013-03-12 5609
» PDK를 이용하여 안드로이드 프레임워크 so파일 참조에 관해서 질문있... [7] 김바람 2013-03-07 26815
70 예제를 따라하던 중 Android.mk 파일로 APK파일 생성 후 설치시 ... [6] 김바람 2013-03-05 12338
69 네이티브 스레드로 자바 콜백 만들기 질문드립니다. [2] 조재영 2013-02-14 5661
68 GPIO 컨트롤 하기 예제 중 insmod에 관하여 문의드립니다. [2] 미누유희 2013-02-13 5126
67 OpenGL 책p168 예제 질문드립니다. Android홀릭 2013-02-06 5413
66 카메라로부터 프래임 데이터 추출하는 예제 입니다. file [1] 죽유 2013-01-24 5383
65 NDK를 이용한 camera 제어 예제에 대해 문의 드립니다. [7] 죽유 2013-01-11 8050
64 NEON관련 좋은 참고 문서가 있을까요? [7] 죽유 2013-01-10 5392

사용자 로그인