3、導(dǎo)出的Android-Studio工程

本文屬于「Unity與iOS誉裆、Android平臺的整合」系列文章之一顿颅,轉(zhuǎn)載請注明出處
Unity默認(rèn)導(dǎo)出的是Android-Eclipse工程足丢,畢竟Eclipse for Android開發(fā)在近一兩年才開始沒落粱腻,用戶量還是非常巨大的。
個人認(rèn)為AndroidStudio非常好用斩跌,能輕易解決很多Eclipse解決不了或者很難解決的問題绍些。
所以我將Unity導(dǎo)出的Andoid工程分為Eclipse和AndroidStudio兩部分。
不過我之后的相關(guān)內(nèi)容都會使用AndroidStudio耀鸦,希望依然使用Eclipse的同學(xué)盡快跟上~

本文主要講解Unity導(dǎo)出的Android-Studio工程的目錄結(jié)構(gòu)柬批。
話先說在前面,這篇文章和1、導(dǎo)出的Xcode工程 非常相似氮帐,我建議手游開發(fā)者將兩篇結(jié)合起來看~
同時锻霎,我建議大家完整閱讀姊妹篇2、導(dǎo)出的Android-Eclipse工程 揪漩,以建立完整的流程認(rèn)知體系。

我所用軟件的版本:
  Unity 5.3.5f1
  AndroidStudio 1.3.1

前導(dǎo)步驟
第一步吏口,創(chuàng)建一個新的工程 Unity_Build_to_Android

第二步奄容,創(chuàng)建以下文件

//為了演示原生Android的jar包
Plugins/Android/libs/Jar.jar

//為了演示原生Android調(diào)用jni所需要的.so文件
Plugins/Android/libs/x86/libnative.so

//為了演示原生Android調(diào)用jni所需要.so文件
Plugins/Android/libs/armeabi-v7a/libnative.so

//為了演示Unity中隨包只讀文件的去向
StreamingAssets/ALL_EmptyTxt.txt

第三步,保存一下場景产徊,如下圖


第四步昂勒,打開PlayerSettings,修改Bundle Identifier(包名)舟铜,Unity里面不修改不讓導(dǎo)出Android的~


第五步戈盈,選擇Android平臺,Export導(dǎo)出Android工程


第六步谆刨,使用AndroidStudio打開該Eclipse工程



選中Unity導(dǎo)出了Eclipse工程塘娶,OK。



存儲到合適的路徑痊夭,Next刁岸。

三個勾都選上,F(xiàn)inish


進(jìn)入正題
0她我、Eclipse -> AndroidStudio
我們先來看看從Eclipse工程到AndroidStudio工程虹曙,在結(jié)構(gòu)上有哪些變化,下圖為AndroidStudio工程自動生成的導(dǎo)入摘要番舆。


通過這個文件我們可以看到酝碳,AndroidStudio其實是建立了一個新的AndroidStudio工程,然后將原Eclipse工程中有用的文件轉(zhuǎn)移到對應(yīng)目錄恨狈。
顯而易見的遷移就不說了疏哗,主要看看libs文件夾中的遷移方向,我們可以看到.jar文件都轉(zhuǎn)移到了app/libs文件夾下拴事、/.so文件都轉(zhuǎn)移到了app/src/main/jniLibs文件夾下/*.so沃斤。

1、程序入口
任何程序都有一個入口刃宵,Unity導(dǎo)出的Android工程中也不例外衡瓶,通過下圖我們可以看到,在AndroidManifest.xml文件中牲证,將UnityPlayerActivity設(shè)置為應(yīng)用的入口哮针。(AndroidManifest.xml是Android的配置文件之一,具體請自行搜索~)


通過下圖我們可以看到,UnityPlayerActivity是繼承了Activity十厢,至于它是什么我就不贅述了等太,大家可以看一下這一篇文章:Activity詳解(生命周期、以各種方式啟動Activity蛮放、狀態(tài)保存缩抡,完全退出等)

下圖為一個Activity的生命周期,我們可以看到系統(tǒng)事件存在著非常有用的監(jiān)聽包颁,在UnityPlayerActivity.java里面我們也可以看到對應(yīng)的函數(shù)瞻想,這意味著在Unity中一樣可以收到這些事件,以后我們將繼承UnityPlayerActivity娩嚼,并重寫這些監(jiān)聽蘑险。


2、C# -> C++
這就是個很尷尬的問題了岳悟,現(xiàn)在5.3.5的版本還不支持在Android平臺下使用IL2CPP的模式佃迄,但是5.4的版本已經(jīng)可以支持了,這一點我打算等5.4的版本出了再補上~


3贵少、資源 StreamingAssets -> app/src/main/assets
Unity導(dǎo)出Android工程后呵俏,原工程中的各種資源都被壓縮、打包春瞬、加密后存放在app/src/main/assets/bin/Data文件夾中柴信,見下圖,這一點和iOS是一致的宽气,網(wǎng)上也有很多資源解密的方法随常,大家有需要可以自行搜索。


我們重點說一下Unity中的StreamingAssets文件夾萄涯,關(guān)于這個文件的作用绪氛,大家可以看一下這篇文章:Unity3D研究院之手游開發(fā)中所有特殊的文件夾
通過下圖我們可以看到,StreamingAssets文件夾中的ALL_EmptyTxt.txt文件被完整地拷貝到assets文件夾中涝影,實際上不光是文件枣察,文件夾也會原封不動地拷入該文件夾。


至于這有什么用燃逻,比如說序目,配置文件放在這里,上手機(jī)調(diào)試的話可以在Android工程中直接修改配置伯襟,而不需要到Unity里重新導(dǎo)出Android工程猿涨。

4、 Plugins/Android/libs -> app/libs 姆怪、app/src/main/jniLibs
Plugins/Android文件夾中通常會放一些.jar叛赚、.so文件澡绩,這些文件是什么、有什么用俺附,大家可以看一下官方的文檔:Building Plugins for Android
在Android-Studio工程中肥卡,.jar文件都轉(zhuǎn)移到了app/libs文件夾下、/.so文件都轉(zhuǎn)移到了app/src/main/jniLibs文件夾下/*.so事镣。
這些文件將拷貝至在的libs文件夾中步鉴,在Android編譯時也將被編譯。

5璃哟、unity-classes.jar唠叛、libmain.so、libmono.so沮稚、libunity.so
unity-classes.jar是unity的封裝好的一些Java類,用于在Android原生環(huán)境下處理相關(guān)業(yè)務(wù)册舞,如果有興趣的同學(xué)可以去反編譯看看蕴掏。



libmain.so、libmono.so调鲸、libunity.so文件是Unity寫的底層CPP盛杰,當(dāng)然其中也包含我們的C#邏輯,由于我們的重點不在這馍乙,就不展開講了茵烈。(這個超綱胚想,我沒研究過~)


6、 Icon
在Unity的Player Settings是中逗嫡,我們可以添加相應(yīng)的Icon



這些Icon圖片將被重新壓縮、命名最后放入下圖中的位置株依。



關(guān)于在哪邊設(shè)置icon的問題驱证,看項目需要吧,如果覺得分辨率不夠可以到導(dǎo)出工程這邊添加修改~
比如:多渠道打包時恋腕,可能要多次替換Icon抹锄,寫腳本在Android工程中自動化替換打包是一種不錯的選擇~

7、閃屏
Unity在Android是可以設(shè)置單圖片閃屏的荠藤,如下圖伙单。


不過Android天生是不帶閃屏這種東西的,所以APP會在第一個Activity中先顯示預(yù)先設(shè)定的圖片哈肖。想深入了解可以看一看這篇文章:Android進(jìn)階篇之引導(dǎo)頁系列之Splash閃屏Logo
Unity的在Android的閃屏實現(xiàn)應(yīng)該也是這樣處理的吻育,注意注意!牡彻!這個思路很重要扫沼,以后我們Unity的閃屏也是這個思路做的出爹。

8、Player Settings -> 設(shè)置



在Unity的Player Settings中存在著大量的配置缎除,這些配置將反應(yīng)到Android工程中严就,在下圖中圈出了部分,這些東西并不復(fù)雜器罐,我也就不贅述了梢为。



9、build.gradle
此處是上篇文章沒有的轰坊,這個文件可以幫助我們又快又好又簡單地接入其他SDK铸董。關(guān)于gradle文件,可以看一下這篇文章:Android Studio系列教程四--Gradle基礎(chǔ)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肴沫,一起剝皮案震驚了整個濱河市粟害,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颤芬,老刑警劉巖悲幅,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異站蝠,居然都是意外死亡汰具,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門菱魔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來留荔,“玉大人,你說我怎么就攤上這事澜倦【鄣” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵藻治,是天一觀的道長既荚。 經(jīng)常有香客問我,道長栋艳,這世上最難降的妖魔是什么恰聘? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮吸占,結(jié)果婚禮上晴叨,老公的妹妹穿的比我還像新娘。我一直安慰自己矾屯,他們只是感情好兼蕊,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著件蚕,像睡著了一般孙技。 火紅的嫁衣襯著肌膚如雪产禾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天牵啦,我揣著相機(jī)與錄音亚情,去河邊找鬼。 笑死哈雏,一個胖子當(dāng)著我的面吹牛楞件,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播裳瘪,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼土浸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了彭羹?” 一聲冷哼從身側(cè)響起黄伊,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎派殷,沒想到半個月后毅舆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡愈腾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岂津。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虱黄。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吮成,靈堂內(nèi)的尸體忽然破棺而出橱乱,到底是詐尸還是另有隱情,我是刑警寧澤粱甫,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布泳叠,位于F島的核電站,受9級特大地震影響茶宵,放射性物質(zhì)發(fā)生泄漏危纫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一乌庶、第九天 我趴在偏房一處隱蔽的房頂上張望种蝶。 院中可真熱鬧,春花似錦瞒大、人聲如沸螃征。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盯滚。三九已至踢械,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間魄藕,已是汗流浹背内列。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留泼疑,地道東北人德绿。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像退渗,于是被迫代替她去往敵國和親移稳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容