Android打包jar的两种方法

【Android打包jar的两种方法】方法一:使用Android Studio打包
方法二:使用Android Build System打包
一、Android Studio打包
1.新建Android Library,取名为opensdk,编写业务代码,目录结构如下如:
Android打包jar的两种方法
文章图片

2.编写build.gradle文件,红色字体部分为新增代码

apply plugin: 'com.android.library' android { compileSdkVersion 22 buildToolsVersion '27.0.1'defaultConfig { minSdkVersion 21 targetSdkVersion 22 versionCode 3 versionName "1.2.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }/** 打包成jar **/ task makeJar(type: Copy) { //删除存在的 delete 'build/libs/OpenSdk.jar' //设置要拷贝文件的路径;[如果没有bundles文件夹,则将bundles替换成packaged-classes] from('build/intermediates/bundles/debug/') //设置存放jar的文件目录 into('build/libs/') //include ,exclude参数来设置过滤 //将classes.jar放入build/libs/目录下(我们只关心classes.jar这个文件) include('classes.jar') //重命名 rename('classes.jar', 'OpenSdk.jar') } makeJar.dependsOn(build)} dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') }

3.生成OpenSdk.jar
打开Android Studio自带的Terminal,Terminal自动定位到当前项目下,输入并执行gradlew makeJar命令,显示如下图表示编译成功:
Android打包jar的两种方法
文章图片

然后你就会看到生成的OpenSdk.jar包
Android打包jar的两种方法
文章图片

二、Android Build System打包
1.将sdk源码放到Android 源码中,我在把源码放到 /package/app_temp 目录中,sdk源码目录结构如下:
Android打包jar的两种方法
文章图片

2.编写Android.mk文件,内容如下:
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS)$(info build OpenSdk.jar) LOCAL_MODULE := OpenSdk LOCAL_CERTIFICATE := platform LOCAL_PROGUARD_FLAG_FILES := ./proguard-rules.pro LOCAL_MANIFEST_FILE := ./src/main/AndroidManifest.xml LOCAL_SRC_FILES := $(call all-java-files-under,./src/main/java) LOCAL_SRC_FILES += $(call all-Iaidl-files-under, ./src/main/aidl) LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/src/main/aidl LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/src/main/resinclude $(BUILD_STATIC_JAVA_LIBRARY)

3.在Android.mk文件所在的当前目录下执行 mm 命名;
4.编译成功后,你可以在 out\target\common\obj\JAVA_LIBRARIES\OpenSdk_intermediates 路径下找到classes.jar,这个就是我们编译出来的jar包;
Android打包jar的两种方法
文章图片

转载于https://blog.csdn.net/qq_21086749/article/details/90110896

    推荐阅读