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來構建項目的,所以目錄結構和叫法也不一樣