Android源代码模块引用三方so方法

编写Android.mk / Android.bp 引用三方 jar 包,aar包,so 库 在Android10之后,所有项目工程中,官方推荐使用Android.bp去编译构建,以前使用Android.mk构建的项目随着版本迭代升级,慢慢需要变更为Android.bp, 两者的语法都需要去了解并熟练使用。笔者之前写过Android.mk的语句介绍,里面有介绍每句代码的含义编写Android.mk把Android studio项目编译到AOSP源码中后来也总结过 Android.bp基本用法:Android.bp 语法和使用比较基础,也是在项目中运用到了就记录下来。 阅读详情

这里以google的tensorflow库为例,在系统设置模块mk文件中引入,具体方式为:

1、声明编译so库

include $(CLEAR_VARS)
LOCAL_MODULE := libtensorflowlite_jni
LOCAL_SRC_FILES := libs/libtensorflowlite_jni.so
include $(PREBUILT_SHARED_LIBRARY)

2、修改public.libraries.txt

adb pull /system/etc/public.libraries.txt

将libtensorflowlite_jni.so追加到txt末尾

adb push public.libraries.txt /system/etc/

3、重启设备

adb shell reboot

说明:
public.libraries.txt文件在源代码(7.1)中的路径为:

./vendor/qcom/proprietary/common/config/public.libraries.txt

在源代码中通过make systemimage就可以编译出system.img,将system.img刷入设备就可以实现设备上/system/etc/public.libraries.txt文件的更新。

关于mk文件中指定某类文件不被aapt压缩的指令:

LOCAL_AAPT_FLAGS := -0 "tflite"  (aapt 帮助文档中有说明)
Android 简单使用第三方提供的.so和.h 前言: 刚来公司,接了一个项目(具体项目不便透露),其中涉及到一个socket数据传输的问题,这里当然就不可避免的用到了.so动态库进行实现。接触过jni的应该都知道,Android调用.so库其实很简单,不就是直接static { System.loadLibrary(“aaron”); }吗?其实我救算这么想的,但是直到我拿到.so和.h文件之后才发现我错了。好了,废话不说了,进入正题: 实现... 阅读详情

相关推荐

Android studio封装调用多个第三方so动态库

在Android studio中通过CMake方式封装调用第三方.so或.a库。

bluefire1126的博客 2739

Android Framework 常见解决方案(29)添加应用开发的共享库

通过设置配置文件public.libraries.txt以及在system分区下添加so动态库的方式,让系统扩展动态库。关于动态库的拷贝较为简单,直接配置即可,这里主要解读下配置文件public.libraries.txt。

wangdsh的博客 3783

android CMake制作.so文件与跨平台引用

上一篇博客博客地址关于so文件的制作的是用ndkbuild命令执行,配置略显繁琐,且如果项目build升级到3.0,google便不在推荐使用此方式进行编译,而是使用最新的CMake工具进行编译,CMake对于上一种方式虽说简单了一些,但要熟练掌握还是有不小的难度的 1 NDK 简介 在介绍 NDK 之前还是首推 Android 官方 NDK 文档。官方地址 官方文档分别从以下几个方面介绍了...

刘国栋的博客 2999

Android 7.0系统源码下添加共享库

     今天的任务从早上搞到现在,才算完成,本来以为比较简单,就是出一个Demo,将实际业务的逻辑封装成so库,放在系统层,对上层不暴露任何东西,中间就一层JNI调用,原本以为很简单,但是由于自己的一个坏习惯,折腾了一天。将处理过程详细记录下来,同时吸取教训,也希望能给大家带来帮助。      JNI的封装很简单,代码就不上了,在Android7.0源码目录下添加共享库的过程,也有其他网友提到...

红旺永福 5000

Android so库开发——Android Studio调用so库(二)

在中已经创建了自己的so库,这是一个JNI规范的so库,可以直接将so库放到libs中,并按照上面文章中MainActivity中的调用方法使用。1、build.gradle(app)配置2、加载so库中方法在Sudio中方法名虽然显示红色,但不影响使用。3、Activity中调用方法。

小旭的专栏 8030

安卓opencv没有stitching.so文件怎么办?想用opencv的图片拼接,但是从官网下的包里面没有那个模块,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 4355

android 加载三方so的方法_Android引入动态库so的方法

Android引入动态库so的方法标签(空格分隔): Android so 第三方库为了执行效率,会将一些CPU密集性任务如音视频解码、图像处理等放入到so中,还有也会将程序关键核心部分放入到so中,这样增加了逆向的难度。下面将so引入分成本地和第三方两种类型。本地是指包含有源码的。这是不讲如何编译和Android.mk的编写,主要讲在Android项目中如何引入so。本地so引入本地的so分成三...

weixin_39630771的博客 1363

Unity与 SO 交互 ☀️| 详细讲解 Unity端使用C# 调用so文件的具体方法

Unity调用so文件中的方法,配合一个简单的实例,简单的介绍了Unity端是如何调用so文件的。该文是系列文章,前面两篇对so基本概述和如何在Android Studio中生成so文件做了一个介绍,想了解的可以去参考下!

努力前行,总会成为自己心中的那道光 5万+

Android studio引用第三方so

Android studio 引用第三方so

696

PublicLibrary自己写的一个类库

PublicLibrary自己写的一个JQuery的类库,主要是在项目开发中搜集,整理的一些感觉好的方法,常用的方法,提供出来,借大家交流使用。

Android.mk引入第三方jar包和so库文件的方法

主要介绍了Android.mk引入第三方jar包和so库文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Android引入动态库so的方法

Android引入动态库so的方法标签(空格分隔): Android so 第三方库

liwugang43210的专栏 1万+

单细胞分析(五)——使用Harmony进行数据整合和去批次

为了保证单细胞RNA测序数据的准确性和可靠性,需要对数据进行样本去批次处理。去批次的方法包括Harmony,SeuratV3等,这些方法可以有效地消除批次效应和技术噪声,并提高单细胞RNA测序数据的质量,为后续的数据分析提供更加可靠的基础。

阅读文献,记录学习笔记 3万+

android .so 动态库,Android引入动态库so的方法

Android引入动态库so的方法标签(空格分隔): Android so 第三方库为了执行效率,会将一些CPU密集性任务如音视频解码、图像处理等放入到so中,还有也会将程序关键核心部分放入到so中,这样增加了逆向的难度。下面将so引入分成本地和第三方两种类型。本地是指包含有源码的。这是不讲如何编译和Android.mk的编写,主要讲在Android项目中如何引入so。本地so引入本地的so分成三...

weixin_29534399的博客 888

UVM和System verilog笔记总结(四)

virtual sequence 即虚seq,用于管理多个实sequence的执行顺序。 下面有三个sequence,此时需要virtual sequence去管理这三个的顺序。 virtual sequence和virtual sequencer需要成对写,使用例化实的sequence和sequencer控制: 此时在virtual sequence里面启动,而不是之前在test.sv里面用default或start函数启动。具体方法如下:先例化 再启动,用 `uvm_do_on 实sequence

weixin_42655118的博客 642

DMA 定制固件教程:小白跟做即得单人固件,超详细纯喂饭教程,100% 成功秘籍!FPGA仿真1:1、中断逻辑和TLP核心都在。

DMA 定制固件教程 小白跟着操作做可以做出的单人固件。DMA仿真技术io、中断逻辑,从零仿真。图文链接教程:https://docs.qq.com/doc/DQ01lVGtHelROVHNv

qq_15741349的博客 3万+

【亲测免费】 libyuv 安卓 Android 编译好的 SO 库文件及源代码

本仓库提供最新版 libyuv 的编译好的 SO 库文件及源代码,适用于安卓平台。具体包括以下内容: - **arm64-v8a** 平台的动态库文件 - **armeabi-v7a** 平台的动态库文件 - **x86** 平台的动态库文件 - **x86_64** 平台的动态库文件 这些库文件可以直接在安卓项目中使用,无需额外编译。libyuv 是一个高效的 YUV 转 RGB 库,其转换

gitblog_09750的博客 1092

揭秘Outlook/QQ邮箱伪造:如何利用Unicode编码绕过SPF检测

本文深入剖析了利用Unicode编码进行邮件显示名伪造的攻击手法,揭示了攻击者如何通过插入零宽字符等特殊编码绕过SPF检测,使邮件在Outlook、QQ邮箱等客户端中看似来自可信发件人。文章通过Python代码示例演示了伪造过程,并提供了从用户自查到管理员部署DMARC策略的多层次防御建议。

weixin_29063035的博客 332

Android 系统源码项目加载预编好的so库

Android 系统开发中会源代码有加载so库的情况,本文进行简单介绍。Android Studio 项目加载so库,已经有介绍过:Android Studio加载so和使用so还是比较方便的,环境OK的情况,几分钟就可以完成验证测试了。但是如果要在系统源代码Java里面加载和使用so就比较麻烦了,主要通过Android.mk或者Android.bp编译加载so,反正网上的代码写的mk/bp基本都是不行的。本来以为只是介绍一下编译使用的Android.mk或者Android.bp就可以了,

wenzhi的博客 2631

腾讯会议视频过期了怎么办?亲测可用:用这个免费插件抢救你的会议录制与回放

本文提供了三种亲测有效的腾讯会议视频过期恢复方案,包括浏览器缓存提取、专业工具组合及预防性措施。特别推荐使用免费插件抢救过期会议录制与回放,帮助职场人解决重要视频资料丢失的难题。

weixin_33686714的博客 264

路径规划 | 图解粒子群(PSO)算法(附ROS C++仿真)

粒子群算法(PSO)的基本思想是模拟鸟群觅食机制,将鸟类的觅食方向分为自我认知部分和社会部分,个体自主探索群体周围空间的同时,也随着群体的主流方向前进,不断逼近最优目标。本文详解PSO算法基本概念,并给出ROS C++实现加深理解

FRIGIDWINTER的博客 2614

在android的JNI中调用第三方 so文件的android.mk配置

包含预构建库的 Android.mk。# 链接到 cryptoauth 库。# 定义 cryptoauth。# 定义 bdCtrl。

it_rober的博客 512

Pytest教程:Pytest插件原理

Pytest的插件系统是其强大功能的核心,它允许用户和开发者扩展和定制测试框架的行为。要深入理解Pytest插件的原理,我们需要从Pytest的架构和设计模式开始,然后深入到底层源码。

旦莫的博客 636

Android mk 引用 jar 包、so 库、aar 包,系统签名

Android mk 简介 什么是 mk 文件 Android.mk 文件用来告知 NDK Build 系统关于 Source 的信息。 它是GNU Makefile的一部分,且将被 Build System 解析一次或多次。 简单示例 首先我们先来看一下最简单的例子,编译一个普通的 apk。 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) ...

android 系统定制开发那些事 1607

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android Studio 中引入.so文件和引用.so文件

1 Android Studio引入.so文件Android Studio中引入.so文件和eclipse方式有区别,google为了使开发者很好的过度到as开发中来也采用了俩种方式,一种是:沿袭了eclipse的习惯,另一种是as自身的引用方式: 一、libs文件夹下,导入.so文件,build.gradle文件中指明jni路径 二、src/main下,新建jniLibs目录,导入.so文件,as

翻滚吧!程序猿! 5531

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: Android编译mk文件引入三方jar、aar、so
下一篇: Android系统启动过程脑图
杨鑫校
博客等级 码龄11年 24粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值