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 中间件开发(三)

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui