Adding prebuilt shared library to Android Build System

NDK提供的共享库(Prebuilt) Android NDK r5 开始支持预编译库(动态库和静态库),即程序能使用库的预编译版本。 该特性可用于以下两方面: 1)向第三方NDK开发人员发布你的共享库而不用提供源码。 2)使用一个提前编译好的库(预编译库)来加速编译过程。 本文说明该特性如何工作。 I. 声明一个预编译库的模块 对于Android编译工具而言,每个预编译库必须声明为一个独立的模块。这里举一个例子,假设 li 阅读详情

Last two days i was unable to do a neat eng build for my galaxy note from cyanogen source. I was running into errors like unable to find libUMP.so and libion.so while building exynos hal specifically libgralloc_ump.
I was applying dirty workaround copy libUMP.so and libion.so to libUMP.so and libion.so and build again.
Another neat way to do is add both lib as prebuilt shared library to build system. For that you need to create projects for each and add it to product package.let me show how to do that for libUMP

  1. create a folder named libUMP in external folder.
  2. copy libUMP.so to the folder
  3. create make file named Android.mk
  4. paste the content to Android.mk
    1
    2
    3
    4
    5
    6
    7
    8
    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE := libUMP
    LOCAL_SRC_FILES := libUMP.so
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    LOCAL_MODULE_SUFFIX := .so
    include $(BUILD_PREBUILT)
  5. now add libUMP( LOCAL_MODULE value in Android.mk) to your product make file. in my case i will add this line to n7000.mk
    1
    2
    PRODUCT_PACKAGES += \
         libUMP \
  6. repeat same for libion dont forget to replace libUMP with libion also dont forget to copy corresponding library file.

Enjoy ROM building

android中编译和使用luajit开发应用,Android 嵌入 LuaJIT 的曲折道路 相关链接:Windows 下编译 LuaJIT懒人与伸手党可以直接看最底部。为什么使用 LuaJITLua 官方版的编译嵌入相对简单,但是为什么要用 LuaJIT 呢?我所了解到的优势有:更高的运行效率。支持运行 Lua 编译后的机器码。虽然 Lua 也支持编译脚本,但是编译出来的机器码文件并不是跨平台的,也就是说在PC 上编译的脚本在 Android 中无法使用。至于如何编译 Android 上... 阅读详情

相关推荐

别再傻傻分不清!用R语言5分钟搞定RR、AR、OR的计算与解读(附代码)

本文通过R语言实战演示,详细讲解了RR(相对风险)、AR(绝对风险)和OR(比值比)的计算方法与科学解读。提供完整的代码示例和可视化技巧,帮助医学研究者快速掌握这些核心流行病学指标的应用与常见陷阱规避。

weixin_42526015的博客 265

Android.mk使用简介(以PREBUILT_SHARED_LIBRARY和BUILD_SHARED_LIBRARY扩展描述)

用来指定一个预先已经编译好的动态库,与BUILD_SAHRED_LIBRARY和BUILD_STATIC_LIBRARY不同,该模块对应的LOCAL_SRC_FILES不能是源文件,而只能是一个已经编译好的的动态库的路径,如foo/libfoo.so。该变量指向一个构建脚本并收集所有通过LOCAL_XXX变量指定的关于当前模块的信息,并根据你所列出的源文件构建一个动态库(.so)使用该变量前,你应该至少定义了LOCAL_MODULE和LOCAL_SRC_FILES。包含了构建该模块的源文件列表。

格物致知的专栏 [音视频编解码 网络协议 计算机视觉 计算机图形学 图像理解 语音识别 机器学习 模拟电路 传感器] 2711

Springboot + vue 实现导出word

Springboot + vue 实现导出word 后端代码 使用word先创建好已知的模板 使用word工具另存为.xml格式的文件 使用freemarker ftl模板 将修改后的xml文件复制到开发工具中,将文件后缀修改为ftl文件,并且将里面的动态值使用${}包裹例如:${zyjn} word工具类 /*** * * Project Name:maventest * <p>生成word工具类<br> * * @ClassName: WordUtil *

qq_45542373的博客 2895

android.mk使用简介(以PREBUILT_SHARED_LIBRARY和BUILD_SHARED_LIBRARY扩展描述)

前言: Android NDK目前支持预编译库,使用一个编译好的库(动态库/静态库)来使编译过程加快,并且开发人员向外不用提供源码,而是以动态库的形式提供。 1. 使用预编译动态库模块 1.1 申明预编译模块 对于Android编译工具而言,每个预编译库必须声明为一个独立的模块。例如:libc.so 文件与 Android.mk 位于同一个目录中,则可以这样定...

yikunbai5708的博客 1万+

TI AWR1642实战指南:CCS调试mmWave Demo Visualizer全流程解析

本文详细解析了TI AWR1642开发板的CCS调试流程,重点介绍了mmWave Demo Visualizer的使用方法。从环境准备、版本确认到bin文件烧录、CCS工程配置,再到调试启动与结果验证,提供了全流程的实战指南,帮助开发者快速掌握AWR1642的调试技巧,避免常见错误。

weixin_30790841的博客 111

OpenClaw 保姆级 window部署

OpenClaw 保姆级 window部署 养龙虾

cs821984831的博客 298

解决Consider adding an error boundary to your tree to customize error handling behavior报错

Consider adding an error boundary to your tree to customize error handling behavior

qq_60976312的博客 5828

Dify 第 2 篇 Dify 插件离线安装

Dify是一个支持插件扩展的AI平台,其插件市场提供5种类型插件(模型、工具、Agent策略、扩展、插件包)。由于默认pip安装速度慢,可通过dify-plugin-repackaging工具将插件转换为离线包(使用阿里云镜像加速)。该工具提供两种方式:1)自备Python环境执行脚本;2)使用Docker环境(推荐)。脚本支持从Dify市场或GitHub下载插件,并重新打包为含依赖的离线包,便于通过"本地插件"方式快速安装。

甘蓝的专栏 1264

2023-12-14 Android.mk 引入外部动态连接so库的方法LOCAL_LDLIBS 和PREBUILT_SHARED_LIBRARY

先定义一个PREBUILT_SHARED_LIBRARY MODULE,然后用LOCAL_SHARED_LIBRARIES 去引用。

海月汐辰 2972

电商行业分析爬虫:抓取行业数据,进行行业分析

电商行业数据分析对于市场研究、竞争分析和商业决策至关重要。通过爬取电商平台的数据,我们可以深入了解市场动态、消费者行为和商品销售情况。本文将介绍如何构建一个电商行业分析爬虫,抓取商品信息、销售数据和用户评价等,并进行数据分析。

u014481728的博客 1628

eDP V1.4协议介绍

eDP的全称是Embedded DisplayPort嵌入式显示端口,主要应用与短距离系统内应用,例如手机、一体式台式机等。eDP V1.4b是基于DP V1.3标准制作完成,但因应用场景的不同,还是有很多区别。电压摆幅不同,eDP相对较低;eDP功耗相对较低;DP有线材和连接器的要求,eDP没有明确要求;AUX通道电路设计不同(相对DP取消了AC耦合电容和100KΩ/1MΩ的上下拉电阻):典型应用场景;

qflook的博客 4303

Android NDK学习笔记(一)

一、构建系统 (一)Android.mk LOCAL_PATH: Android.mk文档必须以LOCAL_PATH变量的定义开头 CLEAR_VARS: 设置为clear-vars.mk片段的位置。包含Makefile片段可以清楚除了LOCAL_PATH以外的LOCAL _< NAME>变量,例如 LOCAL_MODULE与LOCAL_SRC_FILES等; 因为在单次...

Dylan的博客 762

YOLO26改进 - C2PSA | C2PSA融合CPIASA跨范式交互与对齐自注意力机制 : 交互对齐机制,提升小目标与遮挡目标判别力 | ACM MM2025

本文介绍了跨范式表征与对齐Transformer(CPRAformer)及其核心的跨范式交互与对齐自注意力机制(CPIA - SA),并阐述了其在YOLO26中的结合应用。传统图像去雨模型特征提取局限大,CPIA - SA通过协同“空间 - 通道”与“全局 - 局部”范式解决该问题,由SPC - SA、SPR - SA和AAFM子模块构成,经双路提取、动态过滤、空间细化、对齐融合四步工作。我们将相关代码引入指定目录,在`ultralytics/nn/tasks.py`中注册,配置`yolo26 - C2PS

魔改工程师的博客 665

一个简单的预构建库使用

工作中需要编译出一个可执行文件,adb push到板子里面运行。这个可执行文件需要依赖两个共享库:uvc_cam、camnetstream。所谓预编译,我的理解就是不需要提供c和cpp源码,直接提供so库给可执行文件,从而减少编译时间,但是即使这样,我们也要用预构建来声明一个共享库模块。下面分析一下这个Android.mk文件。 LOCAL_PATH:= $(call my-dir) 返回当前Android.mk所在的路径 include $(CLEAR_VARS) LOCAL_MODULE :=

weixin_44551105的博客 432

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

react 报错 Consider adding an error boundary to your tree to customize error handling behavior.

今天写个小例子一直报这个错,我也搞得有些莫名其妙 仔细检查了一些reder方法的返回值少了一对小括号 加上了小括号之后运行正常。 写程序的真的不能麻痹大意啊。

reg183的专栏 9683

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

react 项目开发遇到的问题以及解决办法(一) A component suspended while responding to synchronous input

的时候,在外面套一个react的组件:Suspense。注: 我是配置在main.jsx 里面的代码如下下图。lazy() 如下图。

maoxiaozhu的博客 3014

【翻译】(13)Prebuilts

----------------- 英文文档见android-ndk-r5b的documentation.html 属于Android Native Development Kit (NDK)的一部分 见http://developer.android.com/sdk/ndk/(需要代理) 翻译仅个人见解 ----------------- NDK Prebuilt library s...

weimingtom的待宵草 374

使用预编译库PREBUILT LIBRARY官方说明

使用预编译库 NDK 支持使用预编译库(同时支持静态库和共享库)。此功能有以下两个主要用例: 向第三方 NDK 开发者分发您自己的库(而不分发您的源代码)。 使用您自己的库的预编译版本来提升编译速度。 本页将介绍如何使用预编译库。 声明预编译库 您必须将自己使用的每个预编译库声明为一个独立模块。为此,请执行以下步骤: 为模块提供名称。此名称不需要与预编译库本...

weixin_30622107的博客 1403

Android.mk

https://developer.android.google.cn/ndk/guides/android_mk Android.mk 本页介绍了ndk-build所使用的Android.mk构建文件的语法。 概览 Android.mk文件位于项目jni/目录的子目录中,用于向构建系统描述源文件和共享库。它实际上是构建系统解析一次或多次的微小 GNU makefile 片段。Android.mk文件用于定义Application.mk、构建系统和环境变量所未定义的项目级设置。它...

W_han__的博客 522

Android NDK编译中在libs\armeabi中加入第三方so库文件的方法

Android NDK编译中在libs\armeabi中加入第三方so库文件的方法假设要加入库文件的名字为libffmpeg.so文件1.要在project\jni目录下新建一目录prebuilt,把libffmpeg.so文件copy到project\jni\prebuilt中,并在目录project\jni\prebuilt中添加文件Android.mk,内容如下:LOC...

weixin_34319817的博客 498

Android NDK 使用自己的共享库(Import Module)

NDK r5 开始支持预编译共享库。预编译共享库就是从其他地方获得源码编译出的共享库,而不是Android系统自带的。方法如下: 1、声明共享库模块 把共享库声明为一个独立模块。假如 libfoo.so 与 Android.mk 位于同一目录。则 Android.mk 应该这样写: LOCAL_PATH := $(call my-dir) include $(CLEAR_V

smfwuxiao的专栏 1万+

Android NDK: WARNING: Unsupported source file extensions in

1.如果你用so库当源文件时必须(只能一个)   声明 PREBUILT_SHARED_LIBRARY 即 include $(PREBUILT_SHARED_LIBRARY) 不然

u013571243的专栏 1万+

前端解决 “TypeError: Cannot read properties of undefined (reading ‘xxx‘)的多种情况

例如:TypeError: Cannot read properties of undefined (reading '$el') at eval。

sunwenpinglike的博客 43万+

[react]Uncaught Error: App suspended while rendering, but no fallback UI was specified.

使用i18n-http-backend出现报错如下。和Suspense有关。在init选项中,配置。

qubes的专栏 662

react create-react-app v5 配置路由(报错及注意事项)

react create-react-app 配置路由报错(Uncaught TypeError: Cannot read properties of null (reading 'useRef'))

从事前端,不断积累经验,学习新的技术。头像不是本人是莉莉崽(美貌、可爱集于一身的小姐姐,小仙女),一个宝藏博主,值得喜欢! 2019
上一篇: Android资源overlay机制
下一篇: Linux系统中的信号量(semphore)与互斥体(mutex)
社区艺术家
博客等级 码龄18年 9粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值