【Android端】代码打包成jar包/aar形式

Android端代码打包成jar包和aar形式:

首先,jar包的形式和aar形式有什么区别?

1、打包之后生成的文件地址:

*.jar:库/build/intermediates/bundles/debug(release)/classes.jar

*.aar:库/build/outputs/aar/libraryname.aar

区别:jar包只包含了classes文件,不包含资源文件;aar不仅包含了classes文件,还包含资源文件

并且,aar的这个可以发布到maven库,然后使用者直接通过更改版本号就可以获取到最新的aar文件

有一篇文章讲的还不错,但是对于更详细的内容可能有点少,导致踩坑了,具体链接见:http://www.voidcn.com/blog/q610098308/article/p-6059440.html

然后,jar包打包方式及最终打出来之后的具体使用

首先需要进入到的目录是:

然后这里其实就是:首先进入到主目录-build-intermediates-classes-debug目录中,直接调用jar cvf 生成的jar包名称 要添加的.class文件

具体如上面所示:jar cvf classes.jar com/ganji/android/LeakUploadService* com/ganji/android/UploadThread.class,其中classes.jar就代表 要生成的jar包名称;然后后面跟的com/ganji/android/LeakUploadService*代表要添加的class文件(可能存在LeakUploadService.class,如果有内在函数的话,可能还会存在LeakUploadService$1.class这样的形式,可以通过*来作为通配符进行匹配),如果有多个文件可以通过加空格进行多个文件的区分,就类似上面的格式,jar cvf classes.jar A.class B.class C.class

然后之后会在debug这个目录下生成你需要的jar包,如果需要配置版本号的话,后面查询相关资料再做补充

最后,aar包打包方式及最终打出来之后的具体使用:

aar形式的打包,首先在Android工程里面通过File-New-New Module

之后选择:

之后可以把module的这个名字改成自己想要的即可,比如test:

之后你看到的这个android library的这个test的module的结构是这样的:

然后自己的需要,在java-main下面将需要最终构建成aar包的文件放进去之后,然后这里记得,要把AndroidManifest.xml中的文件,将android:label="@string/app_name"这一项内容去掉,否则其他APP在调用这个的时候,就会遇到AndroidManifest.xml的文件会存在冲突(和其他的app自己的AndroidManifest.xml文件);同时如果需要用到

之后build-Rebuild Project,编译整个工程就会自动生成aar包,具体路径就在:新建的Module-build-outputs-aar的这个目录下,如下方的图所示:

——————————————————————————————————————————》》》

aar打包结束之后,就是其他的app使用这个aar文件,首先,将这个aar的文件拷贝到libs目录下,然后在工程主目录的build.gradle里面配置dependencies文件,配置例如:

compile(name:‘test-1.0‘, ext:‘aar‘),这个test-1.0就是导入到libs下面的这个名字,上面生成的aar的名字其实是可以修改的,完整的build.gradle文件如下:

apply plugin: ‘com.android.application‘

repositories {
    flatDir { dirs ‘libs‘} // 引入AAR
}
dependencies {
    compile fileTree(include: ‘*.jar‘, dir: ‘libs‘)
    compile(name:‘leakupload-1.0‘, ext:‘aar‘)
}
android {
    compileSdkVersion ANDROID_BUILD_SDK_VERSION as int
    buildToolsVersion ‘21.1.2‘

    compileOptions {
        encoding "UTF-8"
    }
    defaultConfig {
        // Enabling multidex support.
        applicationId "com.ganji.mytest"
    }

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

    dexOptions {
        jumboMode = true
        javaMaxHeapSize "2g"
        //preDexLibraries = false
    }

    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            signingConfig signingConfigs.release // 签名
            shrinkResources true // 去除未使用资源
            minifyEnabled true // 混淆、去除未使用类
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard.cfg‘
        }
    }
}

然后:会提示sync now,或者直接点击:这个按钮,点击同步之后,就会将这个aar的内容同步出来,在java-main中的代码里有import这个aar的,import正确的话代码的错误提示就会消失,同时在External libraries中也会出现这个aar文件的结构。

出现的aar结构见下方:然后就说明添加成功了,具体调试和使用就是后话了

时间: 2024-11-25 07:43:49

【Android端】代码打包成jar包/aar形式的相关文章

android将项目打包成jar包使用

将Android打包成jar包供人使用,可利用java的反射技术,获取相应的id.方便使用者替换自己所需要的. 1.新建Android项目:ActivityLibrary,这就是需要我们打包成jar包的项目: 2.MResource这个类的作用,就是利用J2SE反射技术获取相应的ID资源.Android SDK也提供了获取Id资源的方法:getResources().getIdentifier("main_activity", "layout", getPackag

maven把项目打包成jar包后找不到velocity模板的bug

使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误, Caused by: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'templates/index.vm' at org.apache.velocity.runtime.resource.ResourceManagerImpl.load

java代码打包成jar以及转换为exe

教你如何把java代码打包成jar文件以及转换为exe可执行文件 1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以及转换为exe可执行文件 2.前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 3.准备: 下载e

[Java] Java 打包成jar包 和 解压jar包

解压jar包 jar xf xxx.jar 打包成jar包 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项包括:     -c  创建新的归档文件     -t  列出归档目录     -x  解压缩已归档的指定(或所有)文件     -u  更新现有的归档文件     -v  在标准输出中生成详细输

【Java】Java程序打包成jar包在Linux上运行

当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在MyEclipse中选中需要打包的项目,点击右键,选择:Export... 如下图所示: (2)然后在弹出的窗口中选择:Java-->Runnable JAR file,然后点击:Next,如下图所示: (3)然后选择需要打包的程序和保存的地方,然后点击:Finish,如下图所示: 这样Java程序

Springboot打包成jar包形式发布

1.修改配置文件pom.xml 添加打包形式设置为jar形式 <packaging>jar</packaging> 2.在build标签内添加内容如下 finalname为打包成jar包的名字 configuration内需要设置主类,即入口类,有时候不配置会报错. <build> <finalName>Demo</finalName> <plugins> <plugin> <groupId>org.sprin

Android 将Activity及其他类打包成jar包供第三方调用

在开发java工程时,一个项目可能分为多个模块,为了实现模块间的解耦和独立,提高模块的复用性,通常将项目按模块分为多个java工程进行开发,最后通过jar包等工程依赖的方式实现系统集成,提高模块的耦合和复用. 现在开发Android项目通过实践和总结,发现这种方式特别有必要,比如开发一个android端的视频播放功能,肯定有播放和下载模块,如果不分开放在一个工程里面不断的添加新的功能,产品的每一个研发都不断的添加修改功能,最后维护越来越难,bug越来越多,并相互推诿,这种方式能避免这种情况,此为

【深入JAVA】程序打包成Jar包运行并读取外部配置文件

在阅读的过程中有任何问题,欢迎一起交流 邮箱:[email protected] QQ:1494713801 一.程序设置 Java的main方法有个初始化入参args,将参数表示为配置文件的路径,代码如下: 1 public static void main(String[] args) { 2 loadConf(args[0]); 3 } 1 public static void loadConf(String path) throws Exception { 2 Properties pr

Android Studio如何打包打jar包

下面介绍的是用批处理打jar包. 首先,复制下面的代码然后在桌面新建一个txt文本,然后改名为.bat后缀的文件,之后编辑它,将代码粘贴上去保存,双击运行该批处理文件. @echo off echo "请输入module路径(在module上右键然后选择copy path即可 获取路径):" set /p ModulePath= echo %ModulePath% set ClassesPath=%ModulePath%\build\intermediates\classes \deb