AOSP Android 添加第三方aar库到系统实战

2024-01-05 23:12

本文主要是介绍AOSP Android 添加第三方aar库到系统实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拆aar,并打包jar为dex

~/Android/Sdk/build-tools/30.0.2/dx --dex --output=classes.dex ./*.jar
jar cf iiot.jar classes.dex

把jar 和 So 放到指定目录,并在device.mk中添加对应的配置

project device/xxx/xxx_x/device.mk+PRODUCT_COPY_FILES += $(LOCAL_PATH)/libxxxio_linux.so:system/lib/libxxxio_linux.so
+PRODUCT_COPY_FILES += $(LOCAL_PATH)/com.xxx.iot.jar:system/framework/com.xxx.iot.jar

声明library

project frameworks/base/data/etc/platform.xml<library name="org.apache.http.legacy"file="/system/framework/org.apache.http.legacy.boiot.jar" />
+            
+        <library name="com.xxx.iot"
+        file="/system/framework/com.xxx.iot.jar"/>

声明So

project system/core//roiotdir/etc/public.libraries.android.txtlibc++.solibandroid_runtime.so
+libxxxio_linux.so

应用层使用:

<applicationandroid:name=".xxxx"tools:replace="android:label,android:allowBackup"><uses-library android:name="com.xxx.iot"android:required="true"/>

添加防混淆

-keep class io.netty.** {*;}
-keep class org.slf4j.** {*;}
-keep class com.xxx.bridge.** {*;}
-keep class com.xxx.xxxio.** {*;}
-keep class com.xxx.xxxiot.** {*;}
-keep class com.xxx.tool.** {*;}
-keep class com.ouyang.** {*;}

添加AAR中的清单文件

<serviceandroid:name="com.xxxx"android:enabled="true"android:process=":xxx"android:exported="false" ><intent-filter android:priority="1000" ><action android:name="xxxxx" /></intent-filter>
</service>

这篇关于AOSP Android 添加第三方aar库到系统实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574462

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置