1. 程式人生 > >Android Studio匯出Jar包並混淆

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是module的概念,其實也相當於project。主app module依賴其它子module,在打包時,會將其它module打成aar,賦給主app。所以jar是針對整個module來make的。

如果module內僅僅是java程式碼,生成jar是沒問題的,但如果還有resource檔案,那就得打aar檔案了。

在你要打jar包的module 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了。這個時候還是沒混淆的,因為混淆根本沒寫。

如果module中同時也依賴其它libs,那需要在proguard中宣告那些libs。比如:#-libraryjars libs\gson-2.2.2.jar,大部分都跟apk混淆類似的,只不過是侷限於某個module而已。

附送一個proguard供大家參考,也是網上找的。最後混淆效果並不是很好,只是簡單的將部分變數改成了abcd這樣,不過也夠了。總不能將方法也混淆,這樣外部呼叫就麻煩了。

相關推薦

Android Studio匯出Jar混淆

在Android Studio中,自帶反編譯檢視class檔案,如果沒有混淆的話,class檔案跟java檔案基本沒有區別了,為了保護,還是混淆的好。 網上看了不少資料,都是直接下載proguard額外jar,直接生成,覺得不方便,既然apk都能混淆,為什麼不直接通過Android Studio來混淆jar

Android Studio使用gradle匯出jar混淆程式碼程式碼記錄一

建立一個Android module 和一個AndroidLibrary module 在jardemo下的gradle檔案中編寫對應的導Jar包Task和混淆Task 1.導Jar包Task task makeJar(type: Jar, depen

AndroidAndroid Studio使用gradle匯出jar混淆程式碼

整理下最近工作中混淆程式碼時遇到的問題,gradle混淆指令碼Android Studio 使用 Gradle 打包 Jar感謝這位博主。 打jar包 task makeJar(dependsOn: ['compileReleaseJavaWithJavac

android studio開發 匯出Jar在unity3d中使用

【匯出JAR包】 首先模組專案只能是library,而不能是application。如果除了打包程式碼還有資源的話,需要打包成aar包。 1、在app目錄下的 build.gradle檔案中 添下程式碼: apply plugin: 'com.android.lib

Android studio和Eclipse分別生成jar混淆jar

       開發者有時在開發專案需要提供SDK給別人呼叫,這就需要開發者把自己程式碼做個jar或者lib或者aar形式提供給出去,在eclipse中往往需要把程式碼生成jar編譯混淆下後和資原始檔一併提供,還有一種是做成library形式提供出去,而在stud

android studio生成aar在其他工程引用aar

file jar 源碼 tool details bsp pbo key com 1.aar包是android studio下打包android工程中src、res、lib後生成的aar文件,aar包導入其他android studio 工程後,其他工程可以方便引用源碼和資

大資料基礎之如何匯出jar放在hdfs上執行

我口才不好,文字描述也不行,但是基本邏輯是通的。 匯出jar包1.首先完成mapper和reducer還有main方法的編碼2。右鍵點選peopleinfo的包,選擇export-》Java-》JAR file,點選NEXT3.輸入jar包名稱以及匯出地址,點選next->next4.點選Browse

Android studio 生成jar成功卻找不到檔案——解決。

Andriod studio 版本3.1.2, 3.1.2 classes.jar的路徑 from('build/intermediates/packaged-classes/release/') 複製classes.jar的路徑,在老版本中路徑結構('build/intermediates

利用Android StudioJar

在Android Studio專案中建立一個Model,把需要打成Jar包的Java程式碼放到Model 中 在Model的build.gradle檔案中新增如下程式碼 android{ lint

android studiojar

都知道androidStudio對於library型別的Moudle打出的包都是arr 那如何打jar的包呢? 可以這樣實現: 通過Moudle中的build.gradle注入Task來實現. task makeJar(type: Copy) { //刪除存在的

Android Studio 引入JarJar衝突問題總結

在整合環信聊天SDK的時候,真是遇到了好多坑啊,真是白了少年頭,而Jar包衝突相信很多人都遇到過吧, 首先你必須熟悉幾個Android Studio導包的方式和特點: 方式1:直接引用下載網路jar包 compile ‘com.Android.supp

android studio 生成Jar的方式

想要將一個專案匯出為jar包,供其它專案使用,在eclipse中可以直接匯出該專案為jar包,而 在AS中可以通過修改gradle才處理。接下來就介紹下具體的步驟:1、新建一個專案,專案名隨意,test,在專案中新建一個module型別為android-library ,命名

Android studio生成jar

1.將app依賴一個moudle。 2.執行app。這是在build/intermediates/bundles/debug or release/目錄下回看到一個classer.jar (這個就是生成的jar) 3.在moudle 的build.gradle中新增如下程

Android Studio 匯出aar供Unity呼叫

前言   專案之前使用Eclipse匯出的jar檔案來做與Android互動,最近因為工作需要需使用Android Studio的aar檔案,網上參考了部分文章,也結合自己的理解重新整理一下具體的方法,通過寫一個測試Demo來表述Android Studio建立aar的

Android專案:第三方Jarproguard混淆之常見開源專案混淆配置

9、pinyin4j -dontwarn net.soureceforge.pinyin4j.** -dontwarn demo.** -libraryjars libs/pinyin4j-2.5.0.jar -keep class net.sourceforge.piny

Android studio關於Jar 與aar的匯入與使用

1.匯入aar 包  匯入aar包需要在build.gradle中新增引數 dependencies { compile(name:'myaartest',ext:'aar') } repositories{ flatDir{ dirs '

Android Studio 重複jar衝突問題

匯入一個新專案,同時用到了v4,v7都是22.1.1包, compile ('com.android.support:support-v4:22.1.0') compile('com.android.support:appcompat-v7:22.1.0')

Android studio生成jar,及上傳Jcenter

Android studio生成jar Android studio在gradlew build 的時候會生成build資料夾. 然後可以找到build/intermediates/bundles/release/classes.jar檔案 這

使用 Android Studio 生成jar

對於用慣eclipse的猿猴來說,將程式作為library,工具程式讓第三方使用,那是相當的方便,用eclipse工具使工程生成jar包這裡就不再描述了。可在Android Studio中確實麻煩啊,必須在新建得時候選擇是否是作為library建立工程還是以applicat

Android動態載入Jar實現Native方法

一直以來,在Android專案中引用第三方SDK都是將其複製到lib目錄下,根據開發環境的不同進行配置(在Android studio中需要使用工具進行新增File dependency到gradle中),便可直接呼叫內部方法進行實現。 現因公司的需求所以更改了引用Jar包