当前位置: 首页 > news >正文

Android framework 中间件开发(二)

        上篇文章中我们讲述了怎么去开发中间件

        Android framework 中间件开发(一)

        这篇我们讲一下怎么打包中间件给外部应用使用

目录

        1.新建项目

        2.编写jar包代码

        3.打包jar包

        4.使用jar包

        我们可以直接将系统编译出来的framework的jar包拿出来直接用,但是为了安全起见,防止用户调用不该用的API,所以我们需要将framework的jar包再打包一层,只暴露需要的函数

        framework的jar包位置:

out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes-header.jar


        1.新建项目

        打开AndroidStudio,随便新建一个空项目,然后点击左上角File->New->New Module

新建一个模块之后,将classes-header.jar复制到module的libs目录下(没有的话新建一个)
目录结构如下:

编辑mudule的build.gradle,添加如下几行:

将jar包添加到项目中:

implementation fileTree(dir: 'libs', include: ['*.jar'])

生成新的jar包,并指定路径和名字:

task makeJar(type: Copy) {delete 'build/libs/darksdk.jar'from('build/intermediates/aar_main_jar/debug/')into('build/libs/')include('classes.jar')rename ('classes.jar', 'darksdk.jar')
}
makeJar.dependsOn(build)

然后点击右上角的Sync Now,

        2.编写jar包代码

        在module中,新建一个类,这个就是外部应用调用的类.

package com.example.darklib;import android.annotation.SuppressLint;
import android.content.Context;import android.darkcontrol.DarkControlManager;public class DarkManager {private Context context;private DarkControlManager darkControlManager;@SuppressLint("WrongConstant")public DarkManager(Context context) {this.context = context;darkControlManager = (DarkControlManager)context.getSystemService("dark_control");}/*** 设置亮度* @param bright 0~1*/public void setBright(float bright) {darkControlManager.setBright(bright);}
}
        3.打包jar包

 编写完成之后点击这边:

等编译完成后:

这便是我们给客户的jar包了  

        4.使用jar包

        和上面的使用步骤一样,将darksdk.lib复制出来,放到项目的libs目录下,并在build.gradle的dependencies节点下添加

implementation fileTree(dir: 'libs', include: ['*.jar'])

然后点击右上角的Sync Now,

        在项目中调用:

至此打包中间件和使用jar包步骤完成 

下一篇我们讲中间件中添加C++代码:

Android framework 中间件开发(三)

http://www.xdnf.cn/news/486019.html

相关文章:

  • 贝叶斯英文单词拼写纠错器(Python)
  • 小型研发团队的项目管理:挑战与高效工具推荐
  • 实时数据流处理的利器:如何利用 Spark Streaming 让数据动起来?
  • Java 流(Stream)API
  • CSS- 3.1 盒子模型-块级元素、行内元素、行内块级元素和display属性
  • MySQL高效开发规范
  • 不清楚的点
  • RNope:结合 RoPE 和 NoPE 的长文本建模架构
  • git相关配置
  • 深入理解 this 指向与作用域解析
  • 使用 gcloud CLI 自动化管理 Google Cloud 虚拟机
  • AGI大模型(19):下载模型到本地之ModelScope(魔搭社区)
  • FreeSWITCH Jitter Buffer 技术解析与应用指南
  • OpenCV边界填充(Border Padding)详解:原理、方法与代码实现
  • TDuckX 2.6 正式发布|API 能力开放,核心表单逻辑重构,多项实用功能上线。
  • 【AI模型部署】
  • [模型部署] 1. 模型导出
  • 使用DDR4控制器实现多通道数据读写(十二)
  • 文章记单词 | 第88篇(六级)
  • ReentrantLock类详解
  • Spark,SparkSQL操作Mysql, 创建数据库和表
  • 【美团】Java后端一面复盘|网络+线程+MySQL+Redis+设计模式+手撕算法
  • Neo4j 图书馆借阅系统知识图谱设计
  • Servlet 深度解析:生命周期、请求响应与状态管理
  • 表的设计、聚合函数
  • Linux信号的保存
  • 深入解析Spring Boot与微服务架构:从入门到实践
  • postgres的docker版本安装
  • 企业内容中台敏捷构建三步法
  • 火语言RPA--EmpireV7下载发布