3

특정 형식으로 비디오를 재생할 수있는 app 또는 .apk 파일을 만들고 싶습니다. 내가 하나 개의 공유 라이브러리 파일을 생성 한 오브젝트 파일에서 내 소스 파일을 컴파일 한이 들어 .so 파일을 사용하여 내 맞춤 비디오 코덱을위한 android 응용 프로그램의 .apk 파일을 만드는 방법

및 촬영 오브젝트 파일, 은 (.so를) 명령을 사용하여

gcc -c -fPIC hello.c -o hello.o 
gcc hello.o -shared -o libhello.so 

누군가는 단계에 좀 도와 주실 래요 먼저 install NDK 필요

답변

4

위에서 봤던 것으로부터, 나는 android ndk에서 제공하는 툴 체인을 사용하여 사용자 정의 디코더 코드를 컴파일하지 않는다고 가정합니다. 나는 당신이해야 할 것과 같은 일을했습니다.

First of all what you need to do is: 

1)

3) 모든 "C"코드에서 덤프 "JNI"라는 폴더를 만들고, 측면에서 안드로이드 프로젝트의 루트 디렉토리를 안드로이드 프로젝트

2) 만들기 (사용자 정의 디코더 코드)를이 폴더에 저장하십시오.

4) 디코더 코드가있는 /jni 폴더에 동일한 파일을 만들고이 파일의 이름을 Android.mk으로 지정합니다. linux에서 make 파일이라는 개념을 알고 있다면 똑같은 것이 여기에 포함되며 구문 만 변경됩니다 (android ndk에서 제공되는 샘플 예제를 참조 할 수 있습니다).

5) developers website에서 Android-ndk을 다운로드하십시오 (예제 예제를 참조하여 학습하십시오).

6) PATH 변수를 ndk 디렉토리로 구성하십시오.

예 : 수출 NDK_PATH =/가정/MYPC는/안드로이드 NDK-r7b

7) JNI 디렉토리에 CD와 명령 ndk-build을 입력합니다. 모든 것이 잘 진행되면 .so 파일이 생성되어 코드가 안드로이드 플랫폼으로 성공적으로 크로스 컴파일되었음을 의미합니다.

8) 이제/src 폴더에 생성 된 .so 파일을로드해야하는 .java 파일이 생깁니다. 이를 위해 android ndk에서 샘플 예제를 참조 할 수 있습니다.

9) JNI를 사용하여 응용 프로그램과 생성 된 .so 간의 인터페이스.예를 들어 사용자 정의 디코더가 입력 파일 포인터를 사용하여 파일을 디코딩하도록 설계된 경우 이에 따라 JNI 코드를 구현해야합니다.

10) 마지막으로 모두 완료하고 디코더에서 RGB 데이터를 제공하는 경우 OpenGL ES를 사용하여 원시 코드에서만 디코딩 된 그림을 표시 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 위의 단계를 시도했습니다. Visual Studio 2010에서 코드를 실행하려고 할 때 아무런 오류없이 완벽하게 출력됩니다. 위의 단계로 Eclipse에서 동일한 소스 코드를 실행할 때 최대 6 단계까지 아무런 문제도 발견되지 않았습니다. 7 단계에서 나는 많은 수의 오류와 경고를 발견했다. 이클립스에 어떤 설정이 있습니까? – sayedjuned

+0

@sayedjuned : 경로 찾기가 어려울 경우를 대비하여 내보낼 필요가 없습니다. 할 수있는 일은 6 단계를 건너 뛰고 7 단계로 이동하는 것입니다. ndk-build 대신에 ndk-build에 대한 절대 경로를 지정하십시오. – Zax

+0

@sayedjuned : 또한 위의 단계를 수행 할 수있는 ternimal을 통해 이클립스에서이 작업을 수행 할 필요가 없습니다. – Zax

1

... APK 파일을 만드는 동안 자바 파일의 importence 무엇 안드로이드 이클립스 또는 안드로이드 SDK

에서 .so를 파일에서 APK 파일을 만듭니다. 그런 다음 라이브러리에 JNI 랩퍼를 제공해야합니다. 가장 쉬운 방법은 이것을 수행하는 방법을 알아 보려면 hello-jni and two-libs sample apps을 살펴 보는 것입니다. 앱은 ndk_home/samples/에 있습니다.