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

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 __cplusplus
extern "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_static
APP_CPPFLAGS := -frtti -fexceptions
APP_CFLAGS += -Wno-error=format-security
APP_ABI := all
APP_PLATFORM := android-24
app\jni\Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := faac
LOCAL_SRC_FILES := E:\AV-study\MakeTest\faac\libs\$(TARGET_ARCH_ABI)\libfaac.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := faad
LOCAL_SRC_FILES := E:\AV-study\MakeTest\faad\libs\$(TARGET_ARCH_ABI)\libfaad.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := com_thinking_faacd
LOCAL_SRC_FILES := test.cpp
LOCAL_C_INCLUDES += E:\AV-study\MakeTest\faac\jni\include \
    E:\AV-study\MakeTest\faad\jni\include
LOCAL_LDLIBS +=  -llog -ldl -lz
LOCAL_SHARED_LIBRARIES := faac faad
include $(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.cpp
In 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.cpp
In 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.cpp
In 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.cpp
In 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.cpp
In 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.cpp
In 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.cpp
In 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 success
10-18 02:49:27.524 10677-10677/? I/yuyong: faad test success


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值