Android打包jar的两种方法
16lz
2021-01-25
方法一:使用Android Studio打包
方法二:使用Android Build System打包
一、Android Studio打包
1.新建Android Library,取名为opensdk,编写业务代码,目录结构如下如:
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命令,显示如下图表示编译成功:
然后你就会看到生成的OpenSdk.jar包
二、Android Build System打包
1.将sdk源码放到Android 源码中,我在把源码放到 /package/app_temp 目录中,sdk源码目录结构如下:
2.编写Android.mk文件,内容如下:
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)$(info build OpenSdk.jar)LOCAL_MODULE := OpenSdkLOCAL_CERTIFICATE := platformLOCAL_PROGUARD_FLAG_FILES := ./proguard-rules.proLOCAL_MANIFEST_FILE := ./src/main/AndroidManifest.xmlLOCAL_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/aidlLOCAL_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包;
转载于https://blog.csdn.net/qq_21086749/article/details/90110896
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- android apk反编译和odex转dex
- Android(安卓)多媒体框架(2)—— android_media_MediaCodec.cpp源
- Android(安卓)源代码目录结构2- build
- Android端获取视频第一帧的方法
- Android与Internet(获取资源,多线程断点下载,get/post发送,发送xml)