Android Libiary打造自己的SDK,并在maven发布
1、需求
简单记录如何打包sdk,并 发布到maven仓库,以及使用!
2、开发环境及工具
· MAC(Windows也无所谓,路径不同而已)
· Android Studio 4.1.1
· JDK 1.8
· Github
· Maven
3、实现步骤
3.1新建工程
新建一个工程zjmlibiary,选择empty activity,让Androidstudio生成一个基础activity,这个基础项目主要用于后续打包sdk,以及运行验证sdk是否正常使用
3.2新建module
第一步:在androidstudio最上面一行配置,选择File-->New-->New Module,如下图所示:
need-to-insert-img
第二步:在弹窗中选择Android Libiary,并命名zjmlibiary;如下图所示:
need-to-insert-img
新建成功后,我们会发现,在项目的左侧工程导航栏里,多出了一个模块工程,工程结构与平时运行的app结构一样,有独立的gradle配置;如下图:
3.3功能类创建
现在,我们的基础工作已经全部完成了,下一步就是把你想要封装到sdk的功能写入到zjmlibiary中了,编写方式和普通app代码一样;好了,下面我们就来实现一个最简单的功能;(本篇文章不在于实现多么复杂的功能,而是描述整个sdk从编写-->打包-->上传maven-->使用maven库中编译的sdk)
1、新建一个activity(随便定义一个)
public class SelectPatientActivity extends AppCompatActivity { private Button bt_patient; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_patient); bt_patient=(Button) findViewById(R.id.bt_patient); bt_patient.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {Toast.makeText(SelectPatientActivity.this,"测试moudle",Toast.LENGTH_SHORT).show(); } }); }}
2、添加布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center" android:background="#30669c"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:textSize="15dp"android:text="测试module" /> </LinearLayout> <Button android:id="@+id/bt_patient" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="200dp"android:text="测试" /></LinearLayout>
3.4功能测试
1、将zjmlibiary module包在主工程app目录下的build.gradle中进行配置
implementation project(':zjmlibiary')
在setting.gradle中进行添加引用
Includle ‘:zjmlibiary’
2、简单的功能已经编写完了,我们先来验证下是否正常使用:
运行app项目,如下图所示
跑起来后,点击跳转按钮,会发现进入了sdk的页面,再点击按钮,会弹出libiary包中的提示。之后你可以根据自己的需求,继续开发不同的功能,并测试。
3.5、打包sdk
基本的流程开发已经完成了,下面我们要进入主题了,如何打包aar文件
3.5.1本地打包
1、配置gradle脚本,编译打包aar文件
在zjmlibiary目录下新建zjmlibiary-release-aar.gradle文件,具体代码如下:
// 1.maven-插件apply plugin: 'maven'// 2.maven-信息ext {// ext is a gradle closure allowing the declaration of global properties PUBLISH_GROUP_ID = 'zjmlibiary' PUBLISH_ARTIFACT_ID = 'zjmsdk' PUBLISH_VERSION = android.defaultConfig.versionName}// 3.maven-输出路径uploadArchives { repositories.mavenDeployer {//这里就是最后输出地址,在自己电脑上新建个文件夹,把文件夹路径粘贴在此//注意”file://“ + 路径,有三个斜杠,别漏了 repository(url: "file:///Users/zhangjianmin/tencentIm") pom.project { groupId project.PUBLISH_GROUP_ID artifactId project.PUBLISH_ARTIFACT_ID version project.PUBLISH_VERSION } }}//以下代码会生成jar包源文件,如果是不开源码,请不要输入这段//aar包内包含注释//task androidSourcesJar(type: Jar) {// classifier = 'sources'// from android.sourceSets.main.java.sourceFiles//}////artifacts {// archives androidSourcesJar//}
2、在zjmlibiary的build.gradle中添加配置:
apply from: 'zjmlibiary-release-aar.gradle'
编译项目,
androidstudio右侧gradle中找到zjmlibiary module,此时,会生成 一个uploadArchives;
点击uploadArchives开始构建,在配置的自定义路径下 会生成aar文件,此时,本地打包aar已经成功;如下图所示
本地生成文件:
3.5.2maven仓库打包
网友评论