便捷的將你的項目作爲SDK---用aar代替過時的jar

背景知識
這幾天接了一個需求,要把項目整個打包作爲SDK給別的公司用
首先想到的就是採用jar包的形式把代碼打包,再把資源文件拷進ja包r裏,用反射的方式去獲取資源id
但是由於時間緊迫,要求當天就要有產出,無奈只能先行百度下,看下有沒有什麼便捷的方案,無意當中就看到aar包,經過試驗完美符合預期,所以寫一篇博文用於記錄,便於以後回憶

使用工具
Android Studio

使用說明
首先使用Android Studio建立一個lib項目
這裏寫圖片描述

這裏寫圖片描述

然後把你的項目代碼和資源都移植到lib module裏

然後配置項目屬性,把你的項目裏的簽名(用於第三方分享或者登陸)還有混淆文件配置到lib module中

signingConfigs {
    config1 {
        keyAlias ''
        keyPassword ''
        storeFile file('')
        storePassword ''
    }
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config1
    }
}

然後
這裏寫圖片描述
點擊assembleRelease腳本
你會在module目錄下的build/outputs/aar下面找到一個release.aar
然後你把這個壓縮包解壓,把裏面的classes.jar作爲lib導入到一個項目中(Android Studio自帶反編譯功能)查看下項目代碼是否已經混淆,混淆的程度是否滿足你的預期(辛辛苦苦寫的代碼 隨隨便便給別人拿走可不好),記住你提供的入口API文件千萬不要混淆,不然別人在引用的時候會找不到該類,確認無誤了,可以寫一個小demo,放一個button,點擊事件裏就填上你提供的API,看下是否能正確跳轉或者調用

順便補充一點,如果怕和別的項目在資源ID:比如string,dimen上產生衝突,可以寫一個腳本,在你的資源名稱前加上你公司或者項目特有的前綴

發佈aar
把你要發佈的aar,和該aar說依賴第三方的庫整理好,一起給要新的項目,新的項目如果已經有依賴那些第三方的庫,則無需重新依賴,對於沒有依賴的,就要配置依賴關係,這個就是第一步剝離依賴的好處,避免多餘的依賴,可以把你的jar包放在aar包裏,也沒有問題

在新的項目的application模塊的libs文件夾下面放上該aar文件,同時在該模塊對應的build.gralde中加上下面的配置

dependencies {
      compile(name:'mylibrary-release', ext:'aar')
     }
repositories{
      flatDir{
  dirs 'libs'
      }
    }

好了一個小時不到,你的完整項目已經可以被別的公司快捷使用,代碼也混淆了,保持了應有的私密性

如果你覺得對你有幫助,需要轉載,請註明出處

發佈了37 篇原創文章 · 獲贊 77 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章