Android如何生成本地或者遠程aar
highlight: a11y-dark
在一些特殊的場合,比如源碼的保密,sdk的提供和使用,都會把一定的功能邏輯抽取成一個aar,提供至需要的人,在Android的開發中,這種方式司空見慣,只聞使用方式,不知內部實現,加深了源碼的保護措施,又使得功能可以正常開發,相對於一些公司有着外包人員的協同開發,一些主要的功能,不想泄露,那麼就可以採取這種方式。
aar的方式,每次更新後,只需要動態的改變版本號,就可以實現新增的功能和邏輯,和主線的功能保持分離而又牽扯聯繫,這種方式的使用,集成簡單,在乎的是結果,而非實現的過程,最重要的是對於源碼的一個保護機制;Android中的aar主要是針對於Android Library而言的,可以簡單的理解為是對Android Library的打包,這個包的格式既為.aar,是一個二進制歸檔文件,包含所有資源,class以及res資源文件。
本地aar生成以及使用
第一步:創建一個Library(因為aar的生成是以Library的形式打包),並創建.gralde文件,存儲路徑自己定義,文件名字也自己定義,如下圖:
第二步,在已創建的.gradle文件裏書寫對應生成aar的代碼,需要注意,每次更新代碼,版本號需要對應的升級,打出aar的路徑也需要自己來定義,這裏我生成到了E盤下:
```gradle apply plugin: 'maven' ext { PUBLISH_GROUP_ID = 'com.abner'//組id PUBLISH_ARTIFACT_ID = 'maven'//具體的項目id PUBLISH_VERSION = '1.0.1'//版本號 } //maven-路徑 uploadArchives { repositories.mavenDeployer { repository(url: "file:///E:\github\mavenaddress") pom.project { groupId project.PUBLISH_GROUP_ID artifactId project.PUBLISH_ARTIFACT_ID version project.PUBLISH_VERSION } } }
//以下代碼會生成 jar 包源文件,如果是不開源碼,請不要輸入這段 //aar包內包含註釋 task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles }
artifacts { archives androidSourcesJar } ```
第三步,在Library裏的build.gradle,進行引入:
以上三步完成之後,點擊Android studio右側的Gradle,找到對應的Library下的Tasks下的upload,雙擊uploadArchives 就會在第二步中自己定義的路徑下打出自己的aar。
生成的aar文件:
複製生成的aar,就可以發送給別人進行依賴使用了,這樣別人就可以調用你Library下所提供的業務邏輯了,具體使用,複製aar到libs下,然後需要使用的module下加上如下圖的引入即可:
以上的本地aar就生成了,需要注意的是,對於Android studio的版本的升級,可能遇到右側的uploadArchives沒有顯示的問題,大家可以按照以下方式,解決一下:
比如我們本地生成了aar,不想每次更改代碼後,就要替換aar,我們就可以採取以下的方式,進行本地引入,以後,只需要改版本號即可:
第一步,在根目錄的build.gradle文件下進行依賴我們本地的路徑,也就是上邊我們生成aar文件的地方。
第二步,在需要的module裏進行引入,這樣以後aar有更改,我們只需更改版本號即可:
遠程aar生成以及使用
以上,我們只能自己本地使用,或者把aar複製給別人使用,一旦更改頻率很高,每次的更換是很麻煩了,能不能讓他人使用的時候,如果更改了,也只需更改版本號就可以了呢,答案必須可以,大家可以選擇任何一個代碼託管平台進行實現,這裏我用gitee也就是碼雲來作為例子演示,説到這裏,為了保證源碼的絕對安全,其實一般在公司都有自己的私服,上傳至私服即可。
通過本地的方式,我們已經在本地生成了對應的aar文件,改為遠程,無非就是把對應的aar文件上傳至對應的倉庫地址即可。
1、無倉庫地址:
需要在giee上創建自己的倉庫,得到倉庫地址:
進入本地的maven目錄也就是aar目錄,依次執行下邊git命令,需要注意,關聯自己的遠程地址:
js
git init
git add .
git commit -m "first commit"
git remote add origin https://gitee.com/AbnerAndroid/android-maven.git
git push -u origin master
相關命令註釋:
```js git init //初始化倉庫
git add . //添加到本地暫存區 或用 git add (文件name)
git commit -m “first commit” //提交到本地倉庫
git remote add origin 遠程倉庫地址 //添加遠程倉庫
git pull origin master //把遠程倉庫master分支拉取到本地倉庫master分支
git push -u origin master //把本地倉庫的master分支推送到遠程倉庫master分支 ```
2、已有倉庫地址,需要注意,關聯自己的遠程地址:
js
git remote add origin https://gitee.com/AbnerAndroid/android-maven.git
git push -u origin master
把本地生成的aar推到遠程之後,如下圖:
點開之後
具體調用就和本地的其他項目調用類似了,如下
第一步,在根目錄的build.gradle文件下進行依賴我們上傳的倉庫路徑,以raw/master結尾:
第二步,在需要的module裏進行引入,這樣以後aar有更改,我們只需更改版本號即可:
以上就是簡單的本地和遠程aar的生成和使用,前邊説過,公司一般內部有自己的私服,正常都是上傳到自己的私服中,當然如果是自己開源,或者公司沒有要求,那麼我們上傳到哪都是可行的。
- Android自動生成代碼,可視化腳手架之基礎信息配置
- 如何搞一個在線的Shape生成
- 簡單封裝一個易拓展的Dialog
- 集成一個以官網(微信,QQ,微博)為標準的登錄分享功能
- Android打造專有Hook第四篇,實戰增量代碼規範檢查
- Android極簡MVVM,從一個基類庫談起
- Android組件化開發,其實就這麼簡單
- Android打造專有hook,讓不規範的代碼扼殺在萌芽之中
- Android包體積過大,真的會影響績效
- Android長按圖標展示快捷方式
- Android自動生成Shape資源文件(下)
- Android自動生成Shape資源文件,邁出可視化腳手架第一步!(上)
- Android自動生成代碼,可視化腳手架,將大大提高開發效率
- Android自動生成代碼,可視化腳手架之環境搭建
- 怎麼去約束代碼的統一性
- 沒有準備充分,先不要着急投簡歷
- Android如何生成本地或者遠程aar