將Unity項目改爲aar模塊

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

  1. 使用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爪爪學院查找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章