Android开发:如何将工程改造成库,并上传到Github作为依赖,提供引用

Android SDK上传到github+maven管理,可以android studio直接maven下载使用 一、将so库和jar文件打包成aar文件形式: 1.在一个空的android工程中,新建一个module,选择Android Library,命名为YoumeTalksdk_Maven ; 2.把要打包的so库和jar文件放到module的libs目录下 3.在新的module的build.gradle中添加sourceSets : android { ... sourceSets { main { jniLibs.srcDirs = ['libs'] } } } 注意:在mod 阅读详情

注:本文适合使用Android Studio的开发者

在Android项目中经常需要依赖使用别人开发的第三方依赖库,使开发更加方便。比如我下面用到的几个依赖库:

那么这些依赖库是怎么制作的呢,在这篇文章中介绍其中一种比较常见的方法,主要分为三个步骤:

  1. 在Android Studio中将普通工程改造成库
  2. 将改造后的库上传到Github
  3. 在jitpack登记(注:在jitpack登记时,一定要登录自己的账号,可以注册,也可以使用GitHub授权登录)
  4. 将库作为依赖被自己的其他项目或别人使用

 

1. 工程中创建Module


  有很多工具类,感觉不错,进行了一定的封装和优化,想留作开发下一个App时用或者给别人用。但是每次复制粘贴代码显得繁琐,还要处理一堆的package name和import错误。于是你想着把它改造成独立的工程,每次整个工程复制进去,设置引用就可以了。这就要使用Android Studio的module了。以前,你的工程只有一个Module,就是(Module: app)。现在你需要新建一个Module,如图所示:

在工程名上右键–>New–>Module, 
   
   
选择Android Library–>Next,   


    

 给库取名,比如xxxLibrary,我这里叫testLibrary。 

 

2. 将核心代码移植到Module


  接下来要做的是,把原先在工程的(Module: app)中的核心代码移到(Module:testlibrary)中。比如:这里将网络请求框架的封装全部移到(Module:testlibrary)中,(Module: app)中只剩下UI相关以及封装后的网络请求框架的使用。移植过程中尤其要注意的一点是,不要把Application移过去。那么之前很多写在Application中的通用方法怎么办?比如在Application中定义了这样一个方法。

public static void runOnUiThreadDelayed(Runnable task, long miliis) {
    mainHandler.postDelayed(task, miliis);
}

  解决办法是,在Module中新增一个静态类,我这里就叫TestLibrary,用于完成Application的职责。TestLibrary静态类中有一个init方法,要求使用这个库的人必须在Application的onCreate方法中调用一次TestLibrary.init(this),把context传进来。

public static void init(Context context) {
    if (null != context) {
        appContext = context;
}

  有没有种似曾相识的感觉?使用百度地图SDK时,要求你在Application的onCreate中调用一次SDKInitializer.initialize(this)。这些都是为了实现类似的功能,那就是传递app context。这样你在库中,没有Application,也可以随意得Toast,随意地getVersionName()。又因为TestLibrary是个静态类,所以在调用TestLibrary.init(this)时就会加载这个类,也就是在Application初始化时,app context就会传进去,TestLibrary类里的静态块会比别的类和方法先执行。这样,TestLibrary之于库(Module:TestLibrary)就非常类似Application之于工程(Module: app)。
 

3. 导入Module


  上述步骤都完成了,并且调试通过后,你可能想在另一个工程中使用它。在工程中导入Module很简单:

   a.  把整个module文件夹复制到工程的根目录
   b.  在工程的settings.gradle中增加对module的引用。 
  由include ‘:app’变成include ‘:app’, ‘:testlibrary’
    c. 在工程的主module (Module: app)中增加对库module的引用 
  compile project(path: ‘:testlibrary’)
  配置好后,gradle synchronize一下就可以使用了。

 

4. 把自己的库上传到Github开源


  这个就和上传普通的代码到Github一摸一样了,在我的例子中,我上传的是包含(Module: app)和(Module:TestLibrary)的整个工程。

a.在github上新建一个repository,然后你会得到一个类似https://github.com/xxxx/xxxx.git这样的URL
b.在Android Studio的命令行中执行git init,或者打开windows的命令行,cd到要上传的工程根目录下,或者在工程根目录右键         Git    Bash here(如果你安装了GitExtension的话)执行相同的命令;
c.执行git remote add origin https://github.com/xxxx/xxxx.git,记得改成你自己的URL
  这样你就把本地工程和Github上的repository关联起来了,就可以愉快地pull和push了。这里省略了很多细节,比如,建议写一个Markdown格式的自述文件README.md;再如,上述第b、c步可以在Android Studio的图形界面完成,这里不再赘述。

 

5. Release Github project

  在4中上传到Github上的项目别人可以看到、下载、仿照、修改、整合到自己项目中,但是依然需要复制粘贴,并不能直接依赖。继续

点击releases 

 

按照右边的英文提示填写版本信息和描述,然后点击Publish Release一键发布。

 

看到下面这样的页面表示发布成功。

 

 6. 添加到JitPack

打开JitPack官网https://jitpack.io/,然后一定要登录自己的账号,可以GitHub授权登录。在输入框中粘贴刚刚在Github上Release的项目的地址。 
  点击Look up然后在弹出的输入框中点击Get it 完成库的生成。我上传的是整个工程,但是这里它可以自动识别出工程中的库module。 

 

 

然后就看到我们熟悉的添加依赖的指导了,把Gradle和Maven的添加依赖的指导复制到Github上库项目的自述文件README.md中,告诉别人怎么用你的库。

 

7. 测试库依赖


  自己新建一个工程,在主module的build.gradle中的dependencies节点中加入依赖

Step 1. Add it in your root build.gradle at the end of repositories:

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Step 2. Add the dependency

	dependencies {
	         implementation 'com.github.XiaoWuLibs:FastSharepreference:v1.0.0'
}
	}

  gradle synchronize一下,在工程中调用库中的任意一个API,如果只提示导包,而不是报错,则表示添加依赖成功。文中示例库源码可在Github上查看,地址:https://github.com/XiaoWuLibs/FastSharepreference

 

 

AndroidStudio 打aar、jar包,并发布到github详细步骤 今天需要远程依赖新增的组件包,正好简单总结一下,希望对有需要的哥们以帮助! 步骤: 1、新建一个目录作为jar或aar包以及发布文件生成输出目录(eg:components_publisher) 2、主工程文件“gradle.properties”中添加“aar.deployPath=$path”属性, $path是步骤1中新建目录的绝对路径 3、组件工程build.gradle中 阅读详情

相关推荐

基于AR和SLAM技术的商场智能导视系统技术原理详解

本文针对智慧商场室内导航需求,提出基于AR和SLAM技术的商场智能导视系统技术方案,实现了沉浸式导览体验并促进消费转化,助力商场运营升级。

维小帮定位导航的博客 1242

【Android Studio】Module上传到Girhub生成开源库引用

生成开源库

每天不是在写bug就是在写bug的路上 878

DC算法竞赛——北京PM2.5浓度回归分析

北京PM2.5浓度回归分析 比赛结果(118/1150) 一. 概述 1、项目来源:https://www.dcjingsai.com/static_page/cmpList.html 2、给定数据字段如下: 3、使用方法:回归算法 4、目的:预测北京pm2.5值,使平均预测误差越小越好。 二、分析过程 setwd("E:/R数据源") #读入数据 data <- read.csv('p...

玻璃球的博客 3474

Android Studio 如何把写好的类封装成jar包 (亲测可用)

Jar包是什么? jar包 (Java ARchive File) 是一种与平台无关的文件格式,可以将多个文件合成一个文件,用户可将多个java applet及其所需组件(.class文件 、图像和声音)绑定到jar包中。 jar包不仅用于压缩和发布,而且还可以用于部署和封装库、组件和插件程序,并且可以被像编译器和JVM这样的工具直接使用。在jar包中包含特殊的文件,如mainfest.mf和部署描述符,用来指示工具如何处理特定的jar包。 jar包的作用: 1.用于发布和使用类库 2.作为应用程序和扩展的

qq_38467095的博客 3567

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

weixin_45390670的博客 1869

AutoCAD 2024 Mac版安装激活教程:从下载到破解一站式解决方案

本文提供AutoCAD 2024 Mac版的详细安装与优化指南,包括系统要求检查、下载安装流程、常见问题解决方案及性能优化设置。特别介绍了如何应用最新补丁和Update保持软件性能,帮助用户顺利完成从安装到破解的全过程。

weixin_29239661的博客 839

Android 上传依赖库给到github提供给他人引用教程(带案例)

文章内容描述 在安卓开发的过程中,我们估计都会无数次的引入别人插件过来使用,最常见的例如okhttp,okgo,glide picasso等。那么这些插件从何而来呢?作为安卓入门小菜,该如何去上传自己的依赖以供他人使用呢? 接下来,请看下面内容,我将会带着大家一步步解决上述问题。 准备阶段 1.github账户 这个不用多赘述了吧,程序员必备 2.git客户端 点此下载git客户端 进行安装 3....

小马哥的博客 1340

Python 爬虫项目:爬取百度贴吧帖子,保存标题与评论内容

在 Python 爬虫技术的学习与实战体系中,贴吧类动态内容爬取是典型的入门进阶案例,百度贴吧作为国内主流的社区论坛平台,其页面结构规范、数据载体清晰,非常适合用于巩固爬虫核心技术栈。本次实战项目基于requests请求库与解析库实现完整的爬取流程,从网页请求、数据解析、内容提取到本地持久化存储全链路落地,既能掌握基础爬虫的核心逻辑,也能理解网页结构化数据解析的通用思路,同时规避爬虫常见的反爬基础策略,具备极高的实战参考价值。本文核心价值。

2503_91057718的博客 2542

Android 如何将自己的工程变成依赖库,打包上传maven库

背景: 在大型项目中,一个项目被划分成很多模块,如何快速的将一些module提供给他人使用,已成为项目中集成必不可少的一部分。常见的就是依赖 在Android中,dependencies{}的模块是管理依赖加载的,常见的有 implementation 'androidx.multidex:multidex:2.0.0' implementation('androidx.appcompat:appcompat:1.0.0') { force = true } implementation('andr

1766

10、进化动力学谱分析中的开放性问题

本文探讨了进化动力学谱分析中的若干开放性问题,重点围绕进化算法的性能与设计理论展开。文章首先介绍了规范模型及其线性动力学特性,随后深入分析了在实际应用中偏离理想情况的两个关键因素:有限种群和双亲重组。在此基础上提出了三个核心开放性问题:寻找最优传输矩阵以实现全局最优解的高效搜索、无限与有限种群模型谱之间的关系、以及卡林定理在多遗传算子下的推广可能性。通过谱条件、快速混合性与首次命中时间的关系分析,文章进一步讨论了全局吸引与快速收敛的理论基础,并提出了未来的研究方向,包括理论深化、实验拓展与跨学科融合,旨在为

cuda7parallel的博客 80

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5553

一个完整的Android项目打包成第三方库

转,原作者博客地址:http://www.jianshu.com/p/71058db2e429 场景:将一个完整的Android项目,包含java代码,以及res资源文件,以及自身所依赖的jar包、jni等打包成一个第三方库供别人使用。 前提需求是:不能作为library的形式;不能让别人看到并修改代码;代码需要混淆。 当我们使用Android Studio开发的时候,这个问题

北极冰神殿的博客 4422

KVM — 与 QEMU 和 Libvirt 的关系

目录目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用前言如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会有所混淆, 傻傻的分不清. 尤其在看虚拟化技术文档时导致理解能力下降, 所以在开始学习虚拟化技术之前对这些概念有一个整体的认识和清晰的理解, 就显得很有必要了.KVMKVM(Kernel-basedVirtu

烟云的计算 5735

转:怎样将自己的工程改造成库,并上传到Github作为依赖

原文地址:https://blog.youkuaiyun.com/hmh0512/article/details/53818058 在Eclipse时代,也许你会在工程中依赖本地的另一个工程,或者把一个工程打成jar包并引入到另一个工程,又或者你公司的后台架构师会把通用的代码(比如bean)打成jar包后放到中央仓库,然后需要使用时配置Maven的pom.xml文件把它拿下来。这一切在Android Stu...

weixin_34185560的博客 281

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

怎样将自己的工程改造成库,并上传到Github作为依赖

点击Github上项目主页的Release一键发布后,打开JitPack官网https://jitpack.io/,在输入框中粘贴刚刚在Github上Release的项目的地址。点击**Look up**然后在弹出的输入框中点击**Get it** 完成库的生成。然后看到我们熟悉的添加依赖的指导。将Gradle和Maven的添加依赖的指导复制到项目的自述文件README.md中指导别人如何使用你的库。

hmh0512的专栏 6628

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android提交库到github并生成依赖提供给其他项目引用

Android提交库到github并生成依赖提供给其他项目引用

尛码渣的专栏 1347

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android 安卓创建自己的依赖库(保姆级教程)

文章目录新建工程,新建Module创建 Android Library输入你要创建module名字在Module中新建测试类上传github命名库上传代码上传演示创建release提交版本将库的地址复制下来进入jitpackGet it生成依赖工程级build.gradle添加项目中添加最终测试查看这个类课后总结 新建工程,新建Module 新建一个工程,之后按下图中的操作方式,创建一个 Module 创建 Android Library 选中 Android Library,之后点击Next!

两行代码 踏踏实实de工作 1万+

把Android Library 上传到github并在工程中引用该远程仓库

文章摘要:本文介绍了如何创建一个Android工具类库AppUtils,包含网络检测、正则校验、字符串处理和脱敏工具等功能。详细说明了模块配置过程,包括AndroidManifest权限添加和Gradle依赖设置。同时演示了如何将项目发布到JitPack平台,包括Git仓库创建、版本标记和远程依赖配置。最后展示了如何在项目中切换本地和远程依赖,验证工具类的使用效果。整个过程涵盖了Android库开发、版本控制和依赖管理的完整流程。

u012116089的博客 468

Android 上传自己的依赖库让别人使用(github)

最近工作中需要开发一个sdk,将自己写的一些工具类暴露给别人用。以前都是打个jar包,后来给别人一个model,再后来给别人一个arr。我是那种比较懒的,很多东西都是不用的时候不习惯整理,用的时候又去网上查找,比较麻烦,今天在这里我整理一下。做个记录,方便自己下次看,也方便有需要的朋友看。 本来给别人一个arr,用的挺好的,可是后来发现arr里面如果添加了第三方依...

流星魂小七的博客 1345

Android制作自己的依赖库让别人引用【转】

什么是依赖库 我们在Android开发过程中不可避免的需要引用别人造的轮子,在Android Studio中往往只需要一行代码就可以引用别人的库文件,如下图: 羡慕吧,那我们怎么将自己的库让别人引用呢?其实有两种方法,大家可以参考Android如何制作自己的依赖库上传至github供别人下载使用 这篇文章,我这里只介绍第一种方法,结合我自己的实践,顺便做个笔记,以后不用每次都去网上找了! 依赖库...

weixin_34416754的博客 195

提交库到github并生成依赖供其他项目引用

    由于新项目的开展,部分基础库的封装显得尤为重要。每次有新的项目就将之前的代码复制一遍,并不利于对基础库的管理。于是希望将基础库作为包,供其他项目直接引用。直接打包aar需要各种拷贝,也是不利于实施操作,于是乎想到将源码打包上传至github,直接依赖引用,于是有了今天这篇文章。    下面以自己项目com.lenx.core.android作为例子讲解。    1.在本地Android S...

YE1208030123的博客 2849

Android studio 导入github工程

目录(?)[+] 从github下载两个开源项目: PagerSlidingTabStrip    |    Android-Universal-Image-Loader-master https://github.com/astuetz/PagerSlidingTabStrip  https://github.com/nostra13/Android-Univ

feixiaku的专栏 5万+
上一篇: Android开发:Android studio 导入另外一个项目作为依赖包的方法
下一篇: Android开发 :屏幕适配
android157
博客等级 码龄9年 193粉丝 95原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值