Android add prebuilt lib(*.so) to Android.mk

最近移植ffmpeg到android做转码工具,编译出的了libffmpeg.so,调用该库遇到了点小问题,参考下面的文章解决:

***************************

如果你的代码不想随Android开源发布,或者你的代码用到了闭源的第三方库文件,你可以把需要的库动态链接到自己的程序中,修改Android.mk文件,让Android在打包二进制文件时把指定的.so文件放入系统目录下,以供dlopen使用。

下面是一个通用的示例文件,说明了修改Android.mk的方法。增加

MY_LOCAL_PATH := $(LOCAL_PATH)

的原因是

LOCAL_PATH := $(call my-dir)

在一个.mk文件里只能出现一次。

示例文件在编译时,应该把libabc.so放到.mk同一个目录下。

LOCAL_PATH := $(call my-dir)

MY_LOCAL_PATH := $(LOCAL_PATH)

include $(CLEAR_VARS)

LOCAL_PREBUILT_LIBS := libabc.so

include $(BUILD_MULTI_PREBUILT)

LOCAL_PATH := $(MY_LOCAL_PATH)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := main.cpp

LOCAL_MODULE := mytest

LOCAL_SHARED_LIBRARIES := libabc

include $(BUILD_EXECUTABLE)

感谢rktb,参考原文地址 http://www.mail-archive.com/[email protected]/msg00990.html

***************************

Android add prebuilt lib(*.so) to Android.mk,布布扣,bubuko.com

时间: 2024-12-20 01:42:52

Android add prebuilt lib(*.so) to Android.mk的相关文章

Android问题集锦之四十九:Can't add XStream file dependency to Android Studio project

将xstream1.4.8 引入Android Strudio项目中,编译报错如下: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) at

iMX6QD How to Add 24-bit LVDS Support in Android

iMX6QD How to Add 24-bit LVDS Support in Android 版本 4 由 Ying Liu 于 2012-10-14 下午11:52创建,最后由 Jodi Paul 于 2013-5-20 上午8:38修改. Introduction LVDS display panel driving data flow: Display quality: To get the best display quality for 24bit LVDS display pan

arm的编译器里已经有C标准库的lib包了,android为啥还要自己再实现呢

arm的编译器里已经有C标准库的lib包了,android为啥还要自己再实现呢 google自己搞的bionic libc来替代glibc想来是有原因的,本来glibc也是lgpl,应该也没有版权问题,但是系统调用的接口有限,google应该是用自己的bionic libc来暴露出更多的系统调用接口,系统调用不属于GPL,这样才有可能让上层有更大的权限去操作底层驱动,这样硬件厂商就可以将有关商业利益的代码放到HAL层(hardware abstraction layer),底层驱动层只要提供操作

Android NDK and OpenCV Development With Android Studio

Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5.7k 浏览 ---------------- If you do NOT know Chinese, you can just skip this part ---------------- 一直打算将原来的XFace进行改进,最近终于有了些时间可以动手了,改进计划如下:开发上使用Android

[Android] 基于 Linux 命令行构建 Android 应用(七):自动化构建

本章将演示如何基于 Linux 命令行构建 Android 应用,在开始本章之前,希望你已经阅读之前几章内容. 本文环境为 RHEL Sandiego 32-bits,要基于 Linux CLI 构建 Android 应用,先决环境为: 1. JDK[1] 2. Android SDK 3. Apache Ant 安装过程需要使用 sudo 权限. 1. 搭建环境 1.1. 安装 JDK JDK 是构建 Android 应用先决条件之一,由于版权原因,一般安装 Open JDK. RHEL 中使

Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html Android SDK:http://developer.android.com/sdk/index.html ADT:

android快速上手(二)android开发环境搭建及hello world

基本了解了java语法,下一步,我们一起开启hello world的神秘之旅. (一)android开发环境搭建 之前搭建android开发环境是件非常费力的事情,下载Eclipse,安装ADT等,如今android官方给我们提供了全套配置. https://developer.android.com/sdk/index.html 搭建android开发环境之前记得先安装jdk (二)开启Hello World之旅 (1)创建Hello World项目 安装完带ADT的Eclipse,打开Ecl

Android笔记(四十七) Android中的数据存储——XML(三)SAX解析

SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备. SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件.所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口.下面是一些ContentHandler接口常用的方法: startDocument():当遇到文档的开头的时候,调用这

Android笔记(十九) Android中的Fragment

通常我们使用Activity来展示界面,但是在手机上界面可能显示的很好看,但在平板上,因为平板的屏幕非常大,手机的界面放在平板上可能会出现控件被拉长.控件之间间距变大等问题.为了更好的体验效果,在Activity中嵌入“子Activity”,然后每个“子Activity”又可以拥有自己的布局,于是Fragment登场了. 什么是Fragment? Fragment是Activity界面中的一部分或一种行为,你可以把多个Fragment组合到一个Acvitity中来创建一个多面界面,并且你也可以在