1.Unity導出gradle項目
由負責Unity開發的同事將Unity項目導出gradle項目。
2.將gradle項目改爲aar模塊
2.1 修改AndroidManifest.xml文件
修改application
將application中的Android:icon刪掉
修改啓動Activity
ä¿®æ¹minSdkVersionåtargetSdkVersion
2.2 修改build.gradle文件
修改apply plugin
apply plugin: 'com.android.library'
刪除applicationId
3.打包aar
執行打包命令,可以利用Android Studio的Gradle
執行打包命令
獲取aar
aar包地址:根目錄buildoutputsaar
- 使用aar
4.1 導入aar
將第3步獲取到的aar放在要應用的項目的
根目錄applibs
修改模塊的build.gradle
修改aar目錄
android {
//...
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
}
添加aar依賴
implementation(name: 'test-release', ext: 'aar')
至此,Unity改爲aar並導入已經完成。
Q&A
Q: unity項目中有視頻,導入aar後,應用不能播放視頻並存在警告
W/Unity: AndroidVideoMedia OpenExtractor: file is compressed, not supported
A: 修改build.gradle文件,添加如下代碼即可
android{
//...
aaptOptions { noCompress '.unity3d', '.ress', '.resource', '.obb' }
}
Q:在我的項目中的Unity aar的Activity使用了攝像頭,其中的sdk存在攝像頭釋放問題,在不斷的調用Unity aar的時候可能會發生項目閃退的問題。
A:在本身的Unity應用並不存在該問題,因爲Unity應用退出會退出進程釋放攝像頭資源,但是在我的項目中,退出Unity Activity不會退出本身進程,導致攝像頭存在釋放資源問題,並且使用的sdk只能在本身包名的進程中使用,新建進程並不能使用。
因此,我的解決辦法是在本身項目中的其他Activity運行在新建的進程,使用aar的時候會使用本身包名進程,在退出unity項目Activity,該進程會退出,以達到釋放攝像頭資源的效果。
android:process=":test"/>
沒進入Unity模塊時的進程狀況
沒進入Unity模塊時的進程狀況
進入Unity模塊時的進程狀況
進入Unity模塊時的進程狀況
Unity模塊的Activity在本包名的進程中運行,退出Unity模塊的Activity時com.unitydemo進程會退出,已達到解決釋放資源的問題。
更多unity2018的功能介紹請到paws3d爪爪學院查找。