Android平臺原生配置
app-android 文件夾下存在Android平臺原生配置慕的,包括以下目錄或文件
目錄名/文件名 | 用途 |
---|---|
assets | Android平臺原生assets資源目錄 |
libs | Android平臺原生引用的三方j(luò)ar/aar目錄 |
res | Android平臺原生res資源目錄 |
AndroidManifest.xml | Android平臺原生應(yīng)用清單文件 |
config.json | Android平臺下的配置文件 |
index.uts | 主入口宛渐,interface.uts/index.d.ts聲明的能力在Android平臺下的實現(xiàn) |
assets
Android平臺原生assets資源目錄枫笛,建議只保存UTS插件內(nèi)置的資源文件。
除了插件下有assets目錄携悯,項目下也有嫂伞。注意2者的區(qū)別掖棉。 如果需要插件使用者配置(如三方SDK的授權(quán)文件),則插件作者應(yīng)該在插件文檔中告訴插件使用者,配置到項目的Android原生應(yīng)用資源目錄棠众,而不是配置在插件目錄下。詳見
libs
Android平臺原生三方庫目錄洒琢,支持以下類型文件:
- jar
- aar
- so庫
注意:UTS插件本地調(diào)試不支持直接使用so文件,需要將so文件和調(diào)用代碼封裝為AAR 或者分別集成 so和jar文件
如果封裝三方原生sdk為uni-app插件褐桌,可以將sdk的jar/aar文件放到此目錄衰抑,但因為多個uts插件引用相同三方原生sdk時可能會產(chǎn)生沖突,所以如果sdk支持倉儲荧嵌,建議優(yōu)先使用倉儲配置呛踊,而不是直接把jar等文件放在libs目錄。
倉儲配置參考config.json的dependencies完丽。
關(guān)于libs目錄的使用恋技,可以參考 Hello UTS
res
Android平臺原生res資源目錄拇舀,建議只保存UTS插件內(nèi)置的資源文件逻族。
除了插件下有res目錄,項目下也有骄崩。注意2者的區(qū)別聘鳞。一般使用者的配置不放在插件下,而放在自己的項目下要拂。項目下配置詳見
AndroidManifest.xml
Android原生應(yīng)用清單文件抠璃,建議只保存UTS插件內(nèi)置的清單文件配置。
除了插件下有AndroidManifest.xml脱惰,項目下也有搏嗡。注意2者的區(qū)別。一般使用者的配置不放在插件下拉一,而放在自己的項目下采盒。項目下配置詳見
config.json
uts插件在Android平臺的原生層配置文件,可以在其中配置依賴倉儲等gradle相關(guān)內(nèi)容蔚润。
{
// 使用NDK時支持的CPU類型磅氨,可選(打包時不要復(fù)制注釋)
"abis": [
"使用NDK時支持的cpu類型, 可取值armeabi-v7a|arm64-v8a|x86|x86_64"
],
// 依賴的倉儲配置,可選嫡纠,打包時會合并到原生工程的build.gradle中(打包時不要復(fù)制注釋)
"dependencies": [
"androidx.core:core-ktx:1.6.0",
{
"id": "com.xxx.richtext:richtext",
"source": "implementation 'com.xxx.richtext:richtext:3.0.7'"
}
],
// Android系統(tǒng)版本要求烦租,最低Android 5.0(打包時不要復(fù)制注釋)
"minSdkVersion": 21,
"project": {
"plugins": [
"com.huawei.agconnect"
],
"dependencies": [
"com.huawei.agconnect:agcp:1.6.0.300"
]
}
}
復(fù)制代碼
abis 當插件使用了NDK開發(fā)的so庫時配置延赌,描述插件支持CPU類型。 可取值:armeabi-v7a叉橱、arm64-v8a挫以、x86、x86_64
dependencies 配置插件依賴的倉儲赏迟,云端打包時會合并到Android原生工程的build.gradle的 數(shù)組類型屡贺,數(shù)組中的項可以是字符串類型或JSON對象 對于字符串類型項,將會作為
implementation
方式依賴添加到build.gradle中锌杀,上面示例中"androidx.core:core-ktx:1.6.0"將會添加以下配置
dependencies {
implementation 'androidx.core:core-ktx:1.6.0'
}
復(fù)制代碼
對于JSON類型項甩栈,將會把source字段值作為gradle源碼添加到build.gradle中,上面示例中"id": "com.xxx.richtext:richtext"項將會添加以下配置
dependencies {
implementation 'com.xxx.richtext:richtext:3.0.7'
}
復(fù)制代碼
-
minSdkVersion 插件支持的Android最低版本糕再,整數(shù)類型量没,取值范圍為Android API Level
- uni-app 項目支持最低版本為19,即Android 4.4.2
- uni-app x 項目支持最低版本為21突想,即Android 5.0
-
project 云端打包項目相關(guān)配置殴蹄,當使用的三方SDK需要配置gradle插件時可配置此項:
-
plugins 此配置將會添加到云端打包工程app及build.gradle文件的“plugins”中:
plugins { id 'com.android.application' // 前面config.json示例配置將會添加如下配置 id 'com.huawei.agconnect' }
復(fù)制代碼
-
dependencies
此配置將會添加到云端打包工程項目級build.gradle文件的“buildscript > dependencies”中:
buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.2.0' // 前面config.json示例配置將會添加如下配置 classpath "com.huawei.agconnect:agcp:1.6.0.300" } }
復(fù)制代碼
-
注意:
Android平臺原生配置(包括引入、變更三方sdk)均需提交云端打包才能生效猾担,真機運行時需使用自定義基座
-
HBuilderX 內(nèi)置了android常見的依賴:內(nèi)置依賴清單 袭灯,開發(fā)者需要注意兩點:
1 內(nèi)置清單中涉及的依賴,無需手動添加绑嘹,即可直接使用
2 請勿通過 手動添加jar/aar 等方式引入相同的依賴稽荧,否則會因依賴沖突導(dǎo)致云打包失敗。