Android - 利用 jitpack 免费发布闭源 aar

一、简述

目前(Android/java) library 的主要发布仓库有 MavenCentraljitpack,我之前也对这两种仓库的发布流程做了详细介绍:

  • 发布至 MavenCentral: https://juejin.cn/post/6953598441817636900
  • 发布至 jitpack: https://juejin.cn/post/7040733114506674183#heading-8

但是,以上两种仓库,一般是用来免费发布开源 library 的,在提交库信息时,就会要求填写开源仓库的 url,如果我们不想开源源代码,仅仅只是希望把混淆后的 aar/jar 发布出去,那么上述两篇文章的流程就行不通了。

一般来说,这些平台也会提供付费服务,支持发布闭源的 library,就比如 jitpack 付费之后,才可以导入私有的 GitHub 仓库(即 private repo),从而构建并发布闭源的 library,可这笔费用不低的,具体费用见官网说明:

  • jitpack 官网:https://jitpack.io/
  • jitpack 付费价格:https://jitpack.io/private#subscribe

那有没有办法做到,既能免费又能闭源地发布 library 呢?Yes,这就是本篇要讲述的主要内容,灰常实用。

二、创建 library

温馨提示:这里只是举个简单的例子,熟悉 Android library 的朋友可以直接跳到下一节。

不管是 jar 还是 aar,对于 Android 开发者来说,都是 library,只是它们的 module 类型不同而已,简单来说,aar 是可以包含资源文件的 jar,功能更加强大,这里以 aar 为例,创建一个 android library module:

为了新手容易理解,这里有几点简单说明一下:

  1. com.android.library:是 android library module 使用的 Gradle 插件,android {} 是该插件的配置项,最终产出的库文件是 *.aar
  2. minifyEnabled:是否开启混淆,默认为 false。
  3. proguard-rules.pro:当前 library 编译时的混淆规则(minifyEnabledtrue 时生效),对生成最终的 aar 文件有影响。
  4. consumer-rules.pro:携带在 aar 文件中的混淆规则,对 别人工程 编译时的混淆规则有影响。

注:java library module 使用的 Gradle 插件是 java-libraryapply plugin: 'java-library'),没有 android{} 配置项,如需混淆,则需要依赖其他 Gradle 插件,有需要的可以看我之前写的另一篇文章。
Android - 混淆 java-library 工程:https://juejin.cn/post/7174443107298050061

// build.gradle
apply plugin: 'com.android.library'android {...defaultConfig {...versionCode 1versionName "1.0"consumerProguardFiles "consumer-rules.pro"}buildTypes {release {minifyEnabled true // 开启混淆proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'com.google.android.material:material:1.1.0'implementation 'com.luffykou:android-common-utils:1.1.3'
}

这里我创建的 library 功能非常简单,可以将一个图片 Bitmap 转成 Base64 字符串:

/*** GitLqr 工具类** @author LQR* @since 2024/6/22*/
public class GitLqrUtil {/*** bitmap 转 base64*/public static String bitmapToBase64(Bitmap bitmap) {return Base64<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图灵虚拟机配置

导入虚拟机 点击新建&#xff0c;选择虚拟硬盘文件 环境机器.vmdk 配置网络

浅谈区块链

区块链是一种分布式数据库技术&#xff0c;也被称为分布式账本技术。它的本质是一个去中心化的数据库&#xff0c;使用密码学相关联产生的数据块串连而成&#xff0c;用于验证其信息的有效性&#xff08;防伪&#xff09;和生成下一个区块。区块链具有“不可伪造”“全程留痕”…

【后端面试题】【中间件】【NoSQL】ElasticSearch索引机制和高性能的面试思路

Elasticsearch的索引机制 Elasticsearch使用的是倒排索引&#xff0c;所谓的倒排索引是相对于正排索引而言的。 在一般的文件系统中&#xff0c;索引是文档映射到关键字&#xff0c;而倒排索引则相反&#xff0c;是从关键字映射到文档。 如果没有倒排索引的话&#xff0c;想找…

001:开源交易系统开发实战开篇

本专栏采用融入【主力思维】的方法学&#xff0c;包含数据抓取、特征模型开发、历史验证回归测试、每日动态风险评估管理等技术&#xff0c;较大的增强股票投资胜率&#xff0c;让IT开发者拥有一套实用的属于自己思路的专用交易软件。 先简要介绍下系统运行的成果和项目架构&a…

不可编辑的加密word文件破解

文章目录 1 将word文件另存为xml格式2 使用记事本打开xml格式的word文件3 ctrlF查找w:enforcement4 将w:enforcement"1"改成w:enforcement"0"并保存5 用word打开xml格式的文件并另存为docx格式6 成功可以编辑 1 将word文件另存为xml格式 2 使用记事本打开x…

双指针-旋转链表

目录 一、问题描述 二、解题思路 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 1.先确定链表长度为len 2.注意当K>len时&#xff0c;如果每个节点都往右移动len个位置&#xff0c;等价于不移动&#xff0c;所以需要求KK%len。 3.所有元素右移K个位置&#xf…

uniapp运行到小程序Vue.use注册全局组件不起作用

真想吐槽一下小程序&#xff0c;uniapp运行到小程序使用Vue.use注册全局组件根本不起作用&#xff0c;也不报错&#xff0c;这只是其中一个问题&#xff0c;其他还有很多问题&#xff0c;比如vue中正常使用的没问题的语法&#xff0c;运行到小程序就不行&#xff0c;又是包太大…

【Python机器学习】自动化特征选择——单变量统计

添加更多特征会使所有的模型变得更加复杂&#xff0c;从而增大过拟合的可能性。 在添加新特征或处理一般的高位数据集时&#xff0c;最好将特征的数量减少到只包含最有用的那些特征&#xff0c;并删除其余特征&#xff0c;这样会得到泛化能力更好、更简单的模型。 对于如何判…

生成式人工智能和机器人技术是否即将取得最后的突破?

了解生成式人工智能与机器人技术的融合如何彻底改变从医疗保健到娱乐等行业 想象一下这样一个世界&#xff0c;机器人可以谱写交响乐、画出杰作、写出小说。这种创造力与自动化的迷人融合&#xff0c;由 生成式人工智能&#xff0c;不再是梦想&#xff1b;它正在以重大方式重塑…

1Panel开源面板项目GitHub Star数量突破20,000!

截至2024年6月25日9:00&#xff0c;FIT2CLOUD飞致云旗下开源项目——1Panel开源Linux服务器运维管理面板GitHub Star数超过20,000个&#xff01; 继Halo和JumpServer之后&#xff0c;1Panel成为飞致云旗下第三个GitHub Star数量超过20,000个的开源项目&#xff0c;也是飞致云旗…

Python 类

文章目录 定义类与对象成员方法构造方法魔术方法私有成员继承复写父类成员调用父类成员 多态 定义 class 类名:成员变量成员方法变量类名()# 创建对象 变量.成员变量# 使用成员变量 变量.成员方法类与对象 类相当于设计图纸&#xff0c;规定了各种属性与行为。 对象也就是按照…

(单机架设教程)3D剑踪

前言 今天给大家带来一款单机游戏的架设&#xff1a;3D剑踪 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; 3D剑踪 搭建教程 此游戏架设不需要虚拟机&#xff0c; 我们先解压 “3D剑踪.zip” &…

因果解耦表征 | (香港理工ICLR24)联合学习个性化因果不变表示以应对异构联邦客户端

原文&#xff1a;Learning Personalized Causally Invariant Representations for Heterogeneous Federated Clients 地址&#xff1a;https://openreview.net/forum?id8FHWkY0SwF 代码&#xff1a;未知 出版&#xff1a;ICLR 2024 机构: 香港理工大学、香港科技大学 解读&…

JAVA期末速成库(12)第十三章

一、习题介绍 第十三章 Check Point&#xff1a;P501 13.3&#xff0c;13.17&#xff0c;13.28&#xff0c;13.29 Programming Exercise&#xff1a;13.1&#xff0c;13.6&#xff0c;13.11 二、习题及答案 Check Point&#xff1a; 13.3 True or false? a. An abst…

Nature Climate Change | 中国科学院地理资源所吴朝阳课题组发表生物多样性调控植被物候的研究成果!

本文首发于“生态学者”微信公众号&#xff01; 植被春季物候对气候变化的响应通常是通过测量其温度敏感性&#xff08;ST&#xff0c;温度每升高1度&#xff0c;植被提前展叶的天数&#xff09;来量化。ST是植被在当地历史气候环境的选择压力下演化形成的最优策略&#xff0c;…

如何在Ubuntu20上离线安装joern(包括sbt和scala)

在Ubuntu 20上离线安装Joern&#xff0c;由于Joern通常需要通过互联网从其官方源或GitHub等地方下载&#xff0c;但在离线环境中&#xff0c;我们需要通过一些额外的步骤来准备和安装。&#xff08;本人水平有限&#xff0c;希望得到大家的指正&#xff09; 我们首先要做的就是…

在QGIS中调用天地图

2019年 1月 1日起&#xff0c;天地图 API及服务接口调用需要获得开发授权&#xff0c;之前使用 QGIS等 GIS软件无法继续调用天地图&#xff0c;这就需要申请一个许可。 一、注册并申请 Key 具体申请可以登录如下地址&#xff1a;https://www.tianditu.gov.cn打开上述网址后点…

工厂方法模式:概念与应用

目录 工厂方法模式工厂方法模式结构工厂方法适合的应用场景工厂方法模式的优缺点练手题目题目描述输入描述输出描述**提示信息**解题&#xff1a; 工厂方法模式 工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例…

SQLite3的使用

14_SQLite3 SQLite3是一个嵌入式数据库系统&#xff0c;它的数据库就是一个文件。SQLite3不需要一个单独的服务器进程或操作系统&#xff0c;不需要配置&#xff0c;这意味着不需要安装或管理&#xff0c;所有的维护都来自于SQLite3软件本身。 安装步骤 在Linux上安装SQLite…

《概率论与数理统计》期末复习笔记_下

目录 第4章 随机变量的数字特征 4.1 数学期望 4.2 方差 4.3 常见分布的期望与方差 4.4 协方差与相关系教 第5章 大数定律和中心极限定理 5.1 大数定律 5.2 中心极限定理 第6章 样本与抽样分布 6.1 数理统汁的基本概念 6.2 抽样分布 6.2.1 卡方分布 6.2.2 t分布 6.…