Android中的SDK以及利用Android Studio生成aar

news/2025/3/15 4:37:18/

1、什么是SDK(Software Development Kit)

广义上的SDK:

  • 指的是为特定的软件包、软件框架、硬件平台、操作系统等建立应用程序时所使用的开发工具的集合。
  • 比如你在编辑器里敲代码的时候它会自动补全代码,自动错误检查,你点一下Run,它会调用编译器来自动编译,编译完它会调用iPhone的模拟器来运行,这就是SDK,提供整套的开发工具供开发者使用。

第三方SDK

  • 主要有三种风形式:.jar、.so、.aar
  1. jar文件:Java 提供的SDK 文件类型,里面包含的是纯Java编译过后的代码
  2. so文件:一般是 C和 C++打包的成库的文件。
  3. aar文件:aar 名字来源于 Android Archive,见名知义,是一个 Android 库项目的二进制归档文件。aar 库文件里面,包含了 jar 和 so,还有资源res等文件,结构等同一个app。

补充:什么是API(Application Programming Interface)

  • 翻译成中文就是"应用程式介面",其实这样翻译不好,应该说是"程式沟通介面"。
  • 翻译为介面,顾名思义就要沟通两个不同的东西用的,通常由一组函式库所组成。
  • 在一个 同一个平台 下的 两个不同东西(程式 or 系统),为了能取用对方的功能等等,所以一个 【程式X】 写了一组函式,让 同一平台的其他程式 取用 【程式X】 的功能,那组函式就可以说是那个 【程式X】 对外开放的 API。

2、利用Android Stuido生成aar

2.1、新建module

在这里插入图片描述

在这里插入图片描述

2.2、创建方法,配置代码混淆

在这里插入图片描述

  • LeonAPI是暴露给外部的API,所以不能混淆,混淆后就找不到了
package com.leon.leonlibimport androidx.annotation.Keep/*** 放置被代码混淆掉 ,在Kotlin中可以使用@Keep注解*/
@Keep
object LeonAPI {fun getCurrentTime(): String {return "系统当前时间:${LeonTime().time()}"}
}
  • LeonTime实现业务功能的核心代码,需要混淆,防止被别人看到
package com.leon.leonlibimport java.text.SimpleDateFormat
import java.util.Calendarclass LeonTime {fun time(): String {val currentDateTime = Calendar.getInstance().timeval formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")return formatter.format(currentDateTime)}
}
  • build.gradle(:leonlib)中配置代码混淆,若不配置,别人就可以看到我们的aar中的源码了。
    在这里插入图片描述

2.3、导出aar

  • 双击assembleRelease
    在这里插入图片描述
  • 等待运行结束,便可以拿到aar
    在这里插入图片描述
  • 混淆后的aar是看不到核心源码的,只能看到我们暴露的API类

在这里插入图片描述

  • 未混淆的aar可以看到核心源码
    在这里插入图片描述

2.4、将aar给其他项目引用

  • 将aar复制到其他module或其他项目的libs目录下

在这里插入图片描述

  • 配置build.gradle(:app)
    在这里插入图片描述
  • 调用aar中的API

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/808146.html

相关文章

i.MX6ul时钟分析

引入 I.MX6U 的系统主频为 528MHz,但是默认情况下内部 bootrom 会将 I.MX6U 的主频设置为 396MHz因此需要时钟配置 截图:时钟管理系统图 这两幅图主要介绍CCM的作用。 CCM:时钟控制模块可以产生7路PLL,其中两路每路还可以产生4路PFD PFD是…

别再说被八股文害惨了!GitHub阿里Java面试题库标星145K不无道理

最近接二连三收到一些朋友的喜讯,求职和跳槽都有很不错的结果。虽然总说今年情况不太好,但还是有一部分成功上岸的,和大家分享一个典型例子:学弟工作一年半,薪资9K出头,最开始目标是跳槽到货拉拉、唯品会这…

金九银十互联网大厂Java面试1000问,覆盖一线大厂各种面试痛点

不知不觉马上要到金九银十的跳槽黄金月,跳槽结果有人欢喜有人愁,找到好的下家固然可喜,跳槽结果不理想的朋友也不必丧气,只要扎实提升自己的技术,弄明白大厂面试官的出题逻辑,进大厂必是水到渠成。 之前有…

IoT开发者为王,涂鸦智能硬核“靠边站”

文 | 智能相对论 作者 | 沈浪 6月底,全球化IoT开发平台服务商涂鸦智能开了个TUYA开发者大会,面向行业传达了两个关键的信息点: 1. 当前IoT领域的行业竞争不再局限于技术、渠道的单一纬度,开始演化为整体的生态之争。 2. 紧随行…

是什么?为什么?怎么做?

作为一个制造行业的质量人,曾经学过的质量工具就有5w2h ( when,why ,who ,what ,which,how ,how much),可用于调查事情的发生的经过及前因后果(也有用此作为开发新项目结构);还有5why ,通过5个为什么,挖掘潜…

[解决Github 克隆错误] unable to access ‘xxx‘: Recv failure: Connect

1.错误描述: 从GitHub上克隆仓库到本地,出现错误: unable to access https://github.com/xxxx: Recv failure: Connection was reset。 克隆失败。 2.第一次解决此问题:从终端输入: git config --global http.sslVer…

【转载】我心目中的android机器档次

发信人: Jdy (king|小金|抬头看天), 信区: Android 标 题: 【转载】我心目中的android机器档次(转载) 发信站: 武汉白云黄鹤站 (2011年04月14日12:36:22 星期四), 站内信件 【 以下文字转载自 MobileDigit 讨论区 】 【 原文由 Jdy 所发表 】 发信人: alexlaugb (我晕), 信区:…

U盘启动

如何设置U盘启动 http://jingyan.baidu.com/article/ab0b5630d340f6c15afa7d32.html http://jingyan.baidu.com/article/72ee561a9d330fe16138dfe3.html U大师U盘启动盘 教你如何修改Windows登录密码 http://jingyan.baidu.com/article/b87fe19ea352c052183568f6.html 启动…