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 依赖的方式简单易用,只需一行代码即可搞定。
‘贰’ php代码解码
虽然能解,但解出来的内容不一定会给你。。。因为
上面的那段警告注明:该文件是受版权法保护。不允许反编译或解码此文件。
看起来是某种需要购买的程序。
‘叁’ 怎样使用Android Studio引用本地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 目录加入依赖:
<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 后,生成的临时文件也会随之变动,不用担心改动不同步的问题。望采纳,谢谢。
‘肆’ 如何将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后,生成的临时文件也会随之变动,不用担心改动不同步的问题。
‘伍’ 如何看待国产软件 aardio 官方抨击知乎,疑有"黑幕"的文章
关键结症在于,整天沉浸在小环境里的玻璃心作者,不了解知乎的一贯风格,引发了强烈的被迫害妄想症。
‘陆’ android studio怎么导出jar包
在Android Studio中,自带反编译查看class文件,如果没有混淆的话,class文件跟java文件基本没有区别了,为了保护,还是混淆的好。
网上看了不少资料,都是直接下载proguard额外jar,直接生成,觉得不方便,既然apk都能混淆,为什么不直接通过Android Studio来混淆jar包呢。
做法其实很简单,一个build文件,一个proguard文件就可以了。
首先要明白jar从哪里来,以前在Eclipse中是一个project设置为library,然后另外一个主project依赖它。build一下,在library中就会生成jar文件了。
在Android Studio是mole的概念,其实也相当于project。主app mole依赖其它子mole,在打包时,会将其它mole打成aar,赋给主app。所以jar是针对整个mole来make的。
如果mole内仅仅是java代码,生成jar是没问题的,但如果还有resource文件,那就得打aar文件了。
在你要打jar包的mole build文件中,加上一个生成jar包的task。其实即使不添加,在整个工程build时也会生成jar文件的。在build/intermediates/bundles/release/classes.jar可以找到。只是没混淆罢了。
task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
// 未混淆的jar
injars 'build/intermediates/bundles/release/classes.jar'
// 混淆后的jar路径
outjars 'build/http.jar'
// 具体需要keep住的类
configuration 'proguard-rules.pro'
}
这个时候,在Termial中就输入./gradlew makeJar就能将classes.jar复制倒http.jar了。这个时候还是没混淆的,因为混淆根本没写。
如果mole中同时也依赖其它libs,那需要在proguard中声明那些libs。比如:#-libraryjars libs\gson-2.2.2.jar,大部分都跟apk混淆类似的,只不过是局限于某个mole而已。
附送一个proguard供大家参考,也是网上找的。最后混淆效果并不是很好,只是简单的将部分变量改成了abcd这样,不过也够了。总不能将方法也混淆,这样外部调用就麻烦了。
‘柒’ 怎么让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 后,生成的临时文件也会随之变动,不用担心改动不同步的问题。
‘捌’ aardio 编写的程序可以反编译么
我的外部代码是这么写的:
dmhy = function(htmlCode){
var getUrl = //</topics/view/>[^\>]+<\.html>
var getTr = //<\<tr class=\">[^<]+?<\<td width>.+?<\</tr\>>
var getTitle = //<html\"><[^>]*?>\>(.+?)<\</a\>>
var delSpan = //<\<span class=\"keyword\"\>>|<\</span\>>
var getSize = //<center\"\>>([\d\.]+?\a+?)<\</td\>>
var href,trHtml,title,size,savePath;
for k in ..string.gmatch( htmlCode,getTr) {
if(k==""||k==null){
continue ;
}
k=..string.fromto(k);
href = ..string.match(k,getUrl);
href = "https://share.dmhy.org" ++ href;
title = ..string.match(k,getTitle);
title = ..string.replace(title,delSpan,"");
title = ..string.trim(title);
size = ..string.match(k,getSize);
trHtml = ..string.concat(trHtml,"<tr><td class='name'>",title,"</td><td class='size'>",size,"</td><td class='bt_state'><img class='td-img' thref='",href,"' src='/res/image/download.PNG'></td></tr>");
}
return trHtml;
}
调用时这么写的
var f,err = loadcode("/config/filterHtml.aau");
if(f){
var trHtml =f(htmlCode);
}
没有报任何错误,但 trHtml = null
请问应该怎么做?
‘玖’ 怎样在android studio里打开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 后,生成的临时文件也会随之变动,不用担心改动不同步的问题。
‘拾’ android studio aar能加密吗
在eclipse中一个依赖库就叫一个library 使用android提供的v7包在Android studio中依赖库已经叫Mole了,其实就是一个library由于android studio中是用grable来构建项目的,所以目录结构和叫法也不一样