android音频(三)——利用ndk直接编译faac和faad(续2)

来源:互联网 发布:catia软件好学吗 编辑:程序博客网 时间:2024/05/16 09:14

step7 验证

1、在工程的主项目app下,编写java代码


app\src\main\java\com\thinking\maketest\Test.java
package com.thinking.maketest;/** * Created by Yu Yong on 2017/10/18. */public class Test {    static {        System.loadLibrary("com_thinking_faacd");    }    public static native void test();}//javah -d E:\AV-study\MakeTest\app\jni -classpath E:\AV-study\MakeTest\app\build\intermediates\classes\debug com.thinking.maketest.Test
app\src\main\java\com\thinking\maketest\MainActivity.java
package com.thinking.maketest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Test.test();    }}


2、在app项目下新建jni目录,编写C++验证程序

app\jni\com_thinking_maketest_Test.h
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_thinking_maketest_Test */#ifndef _Included_com_thinking_maketest_Test#define _Included_com_thinking_maketest_Test#ifdef __cplusplusextern "C" {#endif/* * Class:     com_thinking_maketest_Test * Method:    test * Signature: ()V */JNIEXPORT void JNICALL Java_com_thinking_maketest_Test_test  (JNIEnv *, jclass);#ifdef __cplusplus}#endif#endif



app\jni\test.cpp

#include "com_thinking_maketest_Test.h"#include <faac.h>#include <faad.h>#include <android\log.h>JNIEXPORT void JNICALL Java_com_thinking_maketest_Test_test  (JNIEnv *, jclass){    faacEncHandle hEncoder;    faacEncConfigurationPtr pConfiguration;    __android_log_print(ANDROID_LOG_INFO, "yuyong", "faac test success");    NeAACDecHandle decoder = NeAACDecOpen();    NeAACDecClose(decoder);    __android_log_print(ANDROID_LOG_INFO, "yuyong", "faad test success");}

3、编写编译脚本

app\jni\Application.mk

APP_STL := gnustl_staticAPP_CPPFLAGS := -frtti -fexceptionsAPP_CFLAGS += -Wno-error=format-securityAPP_ABI := allAPP_PLATFORM := android-24
app\jni\Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := faacLOCAL_SRC_FILES := E:\AV-study\MakeTest\faac\libs\$(TARGET_ARCH_ABI)\libfaac.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := faadLOCAL_SRC_FILES := E:\AV-study\MakeTest\faad\libs\$(TARGET_ARCH_ABI)\libfaad.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE    := com_thinking_faacdLOCAL_SRC_FILES := test.cppLOCAL_C_INCLUDES += E:\AV-study\MakeTest\faac\jni\include \    E:\AV-study\MakeTest\faad\jni\includeLOCAL_LDLIBS +=  -llog -ldl -lzLOCAL_SHARED_LIBRARIES := faac faadinclude $(BUILD_SHARED_LIBRARY)

4、编译C++部分得到

E:\AV-study\MakeTest\app\jni>E:\android-ndk-r14-beta2\ndk-build[arm64-v8a] Compile++      : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!")        ^1 warning generated.[arm64-v8a] Prebuilt       : libfaac.so <= E:\AV-study\MakeTest\faac\libs\arm64-v8a"[arm64-v8a] Prebuilt       : libfaad.so <= E:\AV-study\MakeTest\faad\libs\arm64-v8a"[arm64-v8a] SharedLibrary  : libcom_thinking_faacd.so[arm64-v8a] Install        : libcom_thinking_faacd.so => libs/arm64-v8a/libcom_thinking_faacd.so[arm64-v8a] Install        : libfaac.so => libs/arm64-v8a/libfaac.so[arm64-v8a] Install        : libfaad.so => libs/arm64-v8a/libfaad.so[x86_64] Compile++      : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!")        ^1 warning generated.[x86_64] Prebuilt       : libfaac.so <= E:\AV-study\MakeTest\faac\libs\x86_64"[x86_64] Prebuilt       : libfaad.so <= E:\AV-study\MakeTest\faad\libs\x86_64"[x86_64] SharedLibrary  : libcom_thinking_faacd.so[x86_64] Install        : libcom_thinking_faacd.so => libs/x86_64/libcom_thinking_faacd.so[x86_64] Install        : libfaac.so => libs/x86_64/libfaac.so[x86_64] Install        : libfaad.so => libs/x86_64/libfaad.so[mips64] Compile++      : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!")        ^1 warning generated.[mips64] Prebuilt       : libfaac.so <= E:\AV-study\MakeTest\faac\libs\mips64"[mips64] Prebuilt       : libfaad.so <= E:\AV-study\MakeTest\faad\libs\mips64"[mips64] SharedLibrary  : libcom_thinking_faacd.so[mips64] Install        : libcom_thinking_faacd.so => libs/mips64/libcom_thinking_faacd.so[mips64] Install        : libfaac.so => libs/mips64/libfaac.so[mips64] Install        : libfaad.so => libs/mips64/libfaad.so[armeabi-v7a] Compile++ thumb: com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!")        ^1 warning generated.[armeabi-v7a] Prebuilt       : libfaac.so <= E:\AV-study\MakeTest\faac\libs\armeabi-v7a"[armeabi-v7a] Prebuilt       : libfaad.so <= E:\AV-study\MakeTest\faad\libs\armeabi-v7a"[armeabi-v7a] SharedLibrary  : libcom_thinking_faacd.so[armeabi-v7a] Install        : libcom_thinking_faacd.so => libs/armeabi-v7a/libcom_thinking_faacd.so[armeabi-v7a] Install        : libfaac.so => libs/armeabi-v7a/libfaac.so[armeabi-v7a] Install        : libfaad.so => libs/armeabi-v7a/libfaad.so[armeabi] Compile++ thumb: com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!")        ^1 warning generated.[armeabi] Prebuilt       : libfaac.so <= E:\AV-study\MakeTest\faac\libs\armeabi"[armeabi] Prebuilt       : libfaad.so <= E:\AV-study\MakeTest\faad\libs\armeabi"[armeabi] SharedLibrary  : libcom_thinking_faacd.so[armeabi] Install        : libcom_thinking_faacd.so => libs/armeabi/libcom_thinking_faacd.so[armeabi] Install        : libfaac.so => libs/armeabi/libfaac.so[armeabi] Install        : libfaad.so => libs/armeabi/libfaad.so[x86] Compile++      : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!")        ^1 warning generated.[x86] Prebuilt       : libfaac.so <= E:\AV-study\MakeTest\faac\libs\x86"[x86] Prebuilt       : libfaad.so <= E:\AV-study\MakeTest\faad\libs\x86"[x86] SharedLibrary  : libcom_thinking_faacd.so[x86] Install        : libcom_thinking_faacd.so => libs/x86/libcom_thinking_faacd.so[x86] Install        : libfaac.so => libs/x86/libfaac.so[x86] Install        : libfaad.so => libs/x86/libfaad.so[mips] Compile++      : com_thinking_faacd <= test.cppIn file included from E:/AV-study/MakeTest/app/jni/test.cpp:3:E:\AV-study\MakeTest\faad\jni\include\faad.h:32:9: warning: please update faad2 include filename and function names! [-W#pragma-messages]#pragma message("please update faad2 include filename and function names!")        ^1 warning generated.[mips] Prebuilt       : libfaac.so <= E:\AV-study\MakeTest\faac\libs\mips"[mips] Prebuilt       : libfaad.so <= E:\AV-study\MakeTest\faad\libs\mips"[mips] SharedLibrary  : libcom_thinking_faacd.so[mips] Install        : libcom_thinking_faacd.so => libs/mips/libcom_thinking_faacd.so[mips] Install        : libfaac.so => libs/mips/libfaac.so[mips] Install        : libfaad.so => libs/mips/libfaad.so



5、运行程序


10-18 02:49:27.524 10677-10677/? I/yuyong: faac test success10-18 02:49:27.524 10677-10677/? I/yuyong: faad test success


















阅读全文
0 0
原创粉丝点击