1、什么是SDK(Software Development Kit)
廣義上的SDK:
- 指的是為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用程序時(shí)所使用的開(kāi)發(fā)工具的集合。
- 比如你在編輯器里敲代碼的時(shí)候它會(huì)自動(dòng)補(bǔ)全代碼,自動(dòng)錯(cuò)誤檢查,你點(diǎn)一下Run,它會(huì)調(diào)用編譯器來(lái)自動(dòng)編譯,編譯完它會(huì)調(diào)用iPhone的模擬器來(lái)運(yùn)行,這就是SDK,提供整套的開(kāi)發(fā)工具供開(kāi)發(fā)者使用。
第三方SDK
- 主要有三種風(fēng)形式:.jar、.so、.aar
- jar文件:Java 提供的SDK 文件類(lèi)型,里面包含的是純Java編譯過(guò)后的代碼
- so文件:一般是 C和 C++打包的成庫(kù)的文件。
- aar文件:aar 名字來(lái)源于 Android Archive,見(jiàn)名知義,是一個(gè) Android 庫(kù)項(xiàng)目的二進(jìn)制歸檔文件。aar 庫(kù)文件里面,包含了 jar 和 so,還有資源res等文件,結(jié)構(gòu)等同一個(gè)app。
補(bǔ)充:什么是API(Application Programming Interface)
- 翻譯成中文就是"應(yīng)用程式介面",其實(shí)這樣翻譯不好,應(yīng)該說(shuō)是"程式溝通介面"。
- 翻譯為介面,顧名思義就要溝通兩個(gè)不同的東西用的,通常由一組函式庫(kù)所組成。
- 在一個(gè) 同一個(gè)平臺(tái) 下的 兩個(gè)不同東西(程式 or 系統(tǒng)),為了能取用對(duì)方的功能等等,所以一個(gè) 【程式X】 寫(xiě)了一組函式,讓 同一平臺(tái)的其他程式 取用 【程式X】 的功能,那組函式就可以說(shuō)是那個(gè) 【程式X】 對(duì)外開(kāi)放的 API。
2、利用Android Stuido生成aar
2.1、新建module
2.2、創(chuàng)建方法,配置代碼混淆
- LeonAPI是暴露給外部的API,所以不能混淆,混淆后就找不到了
package com.leon.leonlib
import androidx.annotation.Keep
/**
* 放置被代碼混淆掉 ,在Kotlin中可以使用@Keep注解
*/
@Keep
object LeonAPI {
fun getCurrentTime(): String {
return "系統(tǒng)當(dāng)前時(shí)間:${LeonTime().time()}"
}
}
- LeonTime實(shí)現(xiàn)業(yè)務(wù)功能的核心代碼,需要混淆,防止被別人看到
package com.leon.leonlib
import java.text.SimpleDateFormat
import java.util.Calendar
class LeonTime {
fun time(): String {
val currentDateTime = Calendar.getInstance().time
val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
return formatter.format(currentDateTime)
}
}
- build.gradle(:leonlib)中配置代碼混淆,若不配置,別人就可以看到我們的aar中的源碼了。
2.3、導(dǎo)出aar
- 雙擊assembleRelease
- 等待運(yùn)行結(jié)束,便可以拿到aar
- 混淆后的aar是看不到核心源碼的,只能看到我們暴露的API類(lèi)
- 未混淆的aar可以看到核心源碼
2.4、將aar給其他項(xiàng)目引用
- 將aar復(fù)制到其他module或其他項(xiàng)目的libs目錄下
- 配置build.gradle(:app)
- 調(diào)用aar中的API
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-528199.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-528199.html
到了這里,關(guān)于Android中的SDK以及利用Android Studio生成aar的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!