Ⅰ 怎么让android studio的编译的aar防止反编译
1、 简述
在比较大的 Android 项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决
通用配置
Gradle 的一些基本依赖配置方式如下:
compile fileTree(dir: 'xxx', include: ['*.jar', "*.xxx"]):将某个目录下所有符合扩展名的文件作为依赖;
compile 'com.xx.xx:ProjectName:Version':配置Maven` 库作为依赖;在 Maven 库中心 可以搜索自己想用的库进行依赖;
compile project(':AnotherMole'):配置另一个 Mole 作为本 Mole 的依赖,被依赖的 Mole 必须被导入到当前工程中;
compile files('xxx.jar'):配置某个 jar 包作为依赖。
看起来不错,基本通用的配置都已经存在了。一般对于中等小型的工程,这种开发方式完全没有问题。但是有时候 A 和 B 两个工程,想同时引用另一个公共的 Mole C,而这个 Mole 可能是一个比较复杂的 Android Mole,可能包含了一些主题、UI 、资源文件等等,这时候,如果用 Mole 依赖的方式来配置,不免有些困难,因为 A 和 B 都要导入 C,而且要随时关注 C 的更改。
好在 Android Studio 提供了 aar 库的打包方式,我们可以把 C 作为 library 进行打包,输出 aar 文件,然后在 A 和 B 中,配置 aar 库依赖,就可以解决。
2、aar 文件简介
要输出 aar 文件,必须将 Mole 配置为 library
输出 aar : apply plugin: 'com.android.library';
输出 apk :apply plugin: 'com.android.application'。
将 Mole 配置为 library 后,构建输出一个 aar 文件,根据渠道和 BuildType 的不同,在相应的目录下可以找到。比如对 BuildType 为 debug 的配置,输出为:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份 aar 文件其实就是一份 zip 包,和 jar 不同的是,它将一些资源文件、第三方库文件、so 文件等等都打包在内,而代码文件编译后压缩在在 classes.jar 中。
3、导入 aar 的方式引用
这种方式比较简单,打开 Project Structure,添加一个新 Mole,然后选择 Import *.JAR or *.AAR Package 的方式导入
导入后,在你的工程下面,会生成一个文件夹,里面是 aar 文件以及 Android Studio 的配置文件。
接着可以在 gradle 中配置依赖了,其他 Mole 可以引用这个 Mole 了,依赖方式使用 compile project 的方式即可。
缺点:被依赖的 aar 无法 F3 跟进去,无法看到资源文件内容以及目录层级等等缺陷。
4、使用配置依赖的方式引用
gradle 其实还有另一种依赖可以引用 aar:
compile(name: 'xxx', ext: 'aar')。
首先需要将 aar 文件放入引用 Mole 的 libs 目录下,和一般的 jar 文件类似。然后在 gradle 配置文件中把 libs 目录加入依赖:
repositories
flatDir {
dirs 'libs'
}
}
接着在 gradle 的依赖配置中加入 compile(name: 'xxx', ext: 'aar') 这一句,依赖即可关联完毕。构建一下工程,在 Mole 的build/intermediates/exploded-aar 目录下,可以看到有一些临时文件生成
被导入 aar 生成的临时文件
Android Studio 安装反编译插件后,可以通过 F3 跟进到 class 文件里面,如果你有被依赖 Mole 的源代码的话,还可以 Attach Source 关联源代码查看。另外,可以很方便的查看 aar 中的资源文件。
另外,这种依赖方式更新 aar 后,生成的临时文件也会随之变动,不用担心改动不同步的问题。
Ⅱ android 怎样将mole打包成aar
1.aar包是Android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件
2.生成aar包步骤:
①.用android studio打开一个工程,然后新建一个Mole,新建Mole时候选择Android Library,后面按新建普通工程操作
②.新建Mole 类型为android Library 后如下图所示
③.在新建的Mole中编写完代码后,接下来编译整个工程后就会自动生成aar包,包的路径在新建的Mole ==》 build ===》outputs ==>aar目录下。 如图
3.其他androidstudio工程引用aar包
①.将aar包复制到lib目录下
②.配置build.gradle文件:
加入
repositories {
flatDir {
dirs 'libs'
}
compile(name:'camerascan-1.0', ext:'aar')
完整的配置文件:
[java] view plain
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.geenk.testcamerascanarr"
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'camerascan-1.0', ext:'aar')
compile 'com.android.support:appcompat-v7:22.2.0'
}
Ⅲ 如何将android studio整个工程编译成aar
要输出aar文件,必须将Mole配置为library,在gradle文件中如下:输出aar:applyplugin:'com.android.library';输出apk:applyplugin:'com.android.application'。将Mole配置为library后,构建输出一个aar文件,根据渠道和BuildType的不同,在相应的目录下可以找到。比如对BuildType为debug的配置,输出为:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份aar文件其实就是一份zip包,和jar不同的是,它将一些资源文件、第三方库文件、so文件等等都打包在内,而代码文件编译后压缩在在classes.jar中。比如:3、导入aar的方式引用这种方式比较简单,打开ProjectStructure,添加一个新Mole,然后选择Import*.JARor*.AARPackage的方式导入:导入后,在你的工程下面,会生成一个文件夹,里面是aar文件以及AndroidStudio的配置文件。接着可以在gradle中配置依赖了,其他Mole可以引用这个Mole了,依赖方式使用compileproject的方式即可。缺点:被依赖的aar无法F3跟进去,无法看到资源文件内容以及目录层级等等缺陷。4、使用配置依赖的方式引用gradle其实还有另一种依赖可以引用aar:compile(name:'xxx',ext:'aar')。首先需要将aar文件放入引用Mole的libs目录下,和一般的jar文件类似。然后在gradle配置文件中把libs目录加入依赖:?12345repositories{flatDir{dirs'libs'}}接着在gradle的依赖配置中加入compile(name:'xxx',ext:'aar')这一句,依赖即可关联完毕。构建一下工程,在Mole的build/intermediates/exploded-aar目录下,可以看到有一些临时文件生成:看起来完全是引用aar的解压版本。AndroidStudio安装反编译插件后,可以通过F3跟进到class文件里面,如果你有被依赖Mole的源代码的话,还可以AttachSource关联源代码查看。另外,可以很方便的查看aar中的资源文件。另外,这种依赖方式更新aar后,生成的临时文件也会随之变动,不用担心改动不同步的问题。
Ⅳ Android导出aar时嵌套引用有关问题怎么解决
新建一个Demo项目 2 新建好的项目结构如下图: 其中app是我们的主要mole, libs下存放外部的library build.gradle是配置App mole的,接下来主要对其操作。 3 复制外部aar包到libs目录下。 4 修改build.gradle 配置文件: 1:添加 repositories flatDir { dirs 'libs' }} 这个是添加一个本地仓库,并把libs目录作为仓库的地址。 5 2:修改dependencies: 添加一行: compile(name:'usericonchooserutil', ext:'aar') 其中name就是libs目录下usericonchooserutil.aar文件名称, ext,就是usericonchooserutil.aar的扩展名 6 重新编译项目: 从工具栏依次选择:"Build"-->"rebuild project" 7 编译完成后,在app/build/intermediates/exploded-aar/ a就可以看见我们引用的aar包内容了,其中jar目录下是jar文件,res下是我们aar包里的资源文件。 8 这个时候我们就可以在项目中使用第三包的类了
Ⅳ android studio 怎么打aar包
1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件
2.生成aar包步骤:
①.用android studio打开一个工程,然后新建一个Mole,新建Mole时候选择Android Library,后面按新建普通工程操作
3.其他androidstudio工程引用aar包
①.将aar包复制到lib目录下
②.配置build.gradle文件:
加入
repositories {
flatDir {
dirs 'libs'
}
compile(name:'camerascan-1.0', ext:'aar')
完整的配置文件:
详细教程详细教程
Ⅵ android studio 引用aar怎么编译不了
1、 简述
在比较大的 Android 项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决,比如:
<img alt="通用配置" src="http://www.2cto.com/uploadfile/Collfiles/20150519/20150519085924119.png" title="" http:="" www.2cto.com="" kf="" ware="" vc="" "="" target="_blank" class="keylink" style="padding: 0px; margin: 0px auto; list-style: none; display: block; width: 630px; height: 198.454680534918px;">++o7q9q8SzuPbEv8K8z8LL+dPQt/u6z8Cp1bnD+7XEzsS8/tf3zqrSwMC1o7sgPGNvZGU+M8L2NvZGU+TWF2ZW5gIL/i1/fOqtLAwLWju9TaIE1hdmVuIL/i1tDQxCC/ydLUy9HL99fUvLrP69PDtcS/4r340NDSwMC1o7sgPGNvZGU++/Nf3zqrSwMC1oaMNCjxwPr+CIMG9uPa5pLPMo6zP682syrHS/+NXiuPYgTW9kdWxlIL//vNKqtbzI6yBDo6y2+++YWFyPC9jb2RlPiC/4rXEtPKw/Le9yr2jrM7Sw8e/++/="2aar-文件简介">2、aar 文件简介
要输出 aar 文件,必须将 Mole 配置为 library,在 gradle 文件中如下:
输出 aar : apply plugin: 'com.android.library'; 输出 apk :apply plugin: 'com.android.application'。
将 Mole 配置为 library 后,构建输出一个 aar 文件,根据渠道和 BuildType 的不同,在相应的目录下可以找到。比如对 BuildType 为 debug 的配置,输出为:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份 aar 文件其实就是一份 zip 包,和 jar 不同的是,它将一些资源文件、第三方库文件、so 文件等等都打包在内,而代码文件编译后压缩在在 classes.jar 中。比如:
3、导入 aar 的方式引用
这种方式比较简单,打开 Project Structure,添加一个新 Mole,然后选择 Import *.JAR or *.AAR Package 的方式导入:
导入后,在你的工程下面,会生成一个文件夹,里面是 aar 文件以及 Android Studio 的配置文件。
接着可以在 gradle 中配置依赖了,其他 Mole 可以引用这个 Mole 了,依赖方式使用compile project 的方式即可。
缺点:被依赖的 aar 无法 F3 跟进去,无法看到资源文件内容以及目录层级等等缺陷。
4、使用配置依赖的方式引用
gradle 其实还有另一种依赖可以引用 aar:
compile(name: 'xxx', ext: 'aar')。
首先需要将 aar 文件放入引用 Mole 的 libs 目录下,和一般的 jar 文件类似。然后在 gradle 配置文件中把 libs 目录加入依赖:
?
1
2
3
4
5
<code class="hljs bash">repositories {
flatDir {
dirs 'libs'
}
}</code>
接着在 gradle 的依赖配置中加入 compile(name: 'xxx', ext: 'aar') 这一句,依赖即可关联完毕。构建一下工程,在 Mole 的 build/intermediates/exploded-aar 目录下,可以看到有一些临时文件生成:
看起来完全是引用 aar 的解压版本。Android Studio 安装反编译插件后,可以通过 F3 跟进到 class 文件里面,如果你有被依赖 Mole 的源代码的话,还可以 Attach Source 关联源代码查看。另外,可以很方便的查看 aar 中的资源文件。
另外,这种依赖方式更新 aar 后,生成的临时文件也会随之变动,不用担心改动不同步的问题。
5、总结
综上,介绍了 aar 文件的生成方式,以及两种 aar 依赖的方式,经过实战检验,第二种通过配置 gradle 依赖的方式简单易用,只需一行代码即可搞定。
Ⅶ 怎么生成aar包
-_-!!! jar吧…… 你用的什么IDE?IDE都可以直接把工程压缩成jar包,如果只用了JDK和记事本 那就在命令行敲jar命令了,和javac一样
·javac – 编译器,将源程序转成字节码
·jar – 打包工具,将相关的类文件打包成一个文件
·javadoc – 文档生成器,从源码注释中提取文档
·jdb – debugger,查错工具
·java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
Ⅷ 请教as导出的aar为什么没包含class文件
新建库,File——New——New Mole——Android Library
编译或生成工程,Build——Make Mole
获取jar包,在build\intermediates\bundles\release目录下的classes.jar
导入
把工程切换到Project视图下,在app目录下创建libs目录
把jar拷贝到libs目录
右键——Add to Library,Create Library默认选app。完成后jar包将变成如下这样
Ⅸ 怎么改变android studio中库的aar文件的输出目录
在android studio中,有两种方式:
一种是jar包,一种是带资源文件的aar包,
jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
aar:包含jar包和资源文件,如图片等所有res中的文件
这里将着重介绍如何使用本地的aar包
新建一个Demo项目
Ⅹ 打包成aar的工程有第三方jar包,生成aar后,里面的jar无法引用,怎么解决
首先说明我使用的android studio
版本是0.4.因为现在android studio的bug还不较多,所以你的版本能不能正常使用我就不敢说了。
如果你只是单纯的想使用actionbarsherlock的话,引用是十分简单的dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
}
不过官方也出了一个兼容包,也非常的不错。so 没必要非得要使用actionbarsherlock。
然后重新编译一下项目就行了。(ps
引用第三方jar包,请看我的第一行注释,你只要新建一个libs的文件夹,然后把想要jar包复制到文件夹下,接着把注释那句复制到build文件中,修改一下(*.aar
-> *.jar)就可以了)。
但是我们要是使用本地的自定义的aar文件,请看我的实现过程,如果你有更好的请转告小弟共同进步
第一步 :生成aar文件
我的方法是通过maven-android-plugin来生成的,如果你使用过actionbarsherlock以前的版本的话,这个工具应该不陌生,如果你连maven
都不知道的话,建议好好学习一下maven,虽然现在gradle很火 ,但是我还是最喜欢maven。
关于具体生成步骤不久不详细说了,文章最后贴出几个网址供大家学习使用,放心我按顺序给你们,只要一步一步的来绝对能成功
1 把你的maven版本提升到3.1.1
2 去github上clone下来
maven-android-sdk-deployer 这个项目
3 通过maven-android-plugin生成一个android项目
mvn archetype:generate \
-DarchetypeArtifactId=android-quickstart \
-DarchetypeGroupId=de.akquinet.android.archetypes \
-DarchetypeVersion=1.0.11 \
-DgroupId=your.company \
-DartifactId=my-android-application