Ane技术大全 - Devil程序员
來(lái)源:http://www.th7.cn/Program/Android/201405/206863.shtml
一.Ane概況
1.Ane是什么?
Ane是為了解決 as3(flash)與Java代碼通信的問(wèn)題。跟 android與c++之間互通,需要JNI;android與html5之間互通需要javascript等一樣的道理。本質(zhì)是 as3 與java 之間的接口。
目前,用的比較多情景是:flash手機(jī)游戲需要在android平臺(tái)渠道上發(fā)布,需要接很多渠道的SDK,而這些SDK主要是android原生寫(xiě)的。所以,需要開(kāi)發(fā)者自己編寫(xiě)Ane去調(diào)用android代碼。IOS越獄平臺(tái),也是同樣的道理。
2.Ane組成部分
包括2部分:as部分和Java部分。
實(shí)質(zhì)上,就是 as定義好接口,然后Java部分實(shí)現(xiàn)接口的功能。需要說(shuō)明的是:as定義的接口和Java聲明的接口是一一對(duì)應(yīng)的,這樣才能保證as接口能夠調(diào)到Java的代碼。最后,把a(bǔ)s代碼和java代碼用打包工具,打成一個(gè)xx.xx.xx.ane的壓縮包。As工程就可以把.ane 導(dǎo)入,直接調(diào)用as部分已經(jīng)定義好接口。
3.Ane具體打包過(guò)程
可見(jiàn):網(wǎng)絡(luò)資源,網(wǎng)上很多,這里不作描述。
二.疑難問(wèn)題
??????? 這是本文章的重點(diǎn)。下面這些問(wèn)題,都是個(gè)人經(jīng)過(guò)制作國(guó)內(nèi)及國(guó)外幾十家渠道平臺(tái)的SDK Ane總結(jié)出來(lái)的,絕對(duì)真實(shí)可用。
1.????資源打包問(wèn)題
- Res資源,很easy。全都放到 打包工具的 Android-ARM/res中。但需要注意的一點(diǎn)是:圖片是標(biāo)準(zhǔn)的.9.png ,如果不是標(biāo)準(zhǔn)的,會(huì)提示錯(cuò)誤:”No marked region found along edge “;? xx.xml布局文件中不能包含中文,中文都必須放到 string.xml中。
- ·assets資源:應(yīng)該放到As游戲工程的根目錄下,與src目錄同級(jí)。如果assets里面包含 xx.apk ,那么不會(huì)自動(dòng)打進(jìn)去的。等游戲apk出來(lái)之后,必須手動(dòng)解包將xx.apk放進(jìn)去,然后重新打包。
- ·lib資源:主要是libs/armeabi? 里面的xxx.so文件。這些文件,如果是放到 打包工具Android-ARM/libs/armeabi 目錄下,也是打不進(jìn) .ane里面的。 必須放到 打包工具 Android-ARM/libs/armeabi-v7a 該目錄下。
- ·隱藏的資源:這里主要是針對(duì) 國(guó)外的一些渠道SDK jar包里面,會(huì)把資源放進(jìn)去。 比如 xxx.jar 里面包含一個(gè) assets 資源文件夾。那么必須要將 xxx.jar 包里面的 assets文件夾 解壓出來(lái),處理方法 跟 assets資源 一樣。 如果您發(fā)現(xiàn)打出來(lái)的游戲apk包,在登錄或者其他界面 顯示少著一些按鈕,背景之類的,那么就需要考慮 這個(gè)隱藏的資源問(wèn)題。
?2.????apk調(diào)試
有的時(shí)候,必須要反編譯 游戲apk ,修改AndroidManifest.xml 才可以正常運(yùn)行。
- ·apk的包名
? ? ? ? ?默認(rèn)情況下,as打出來(lái)的apk,包名前面都加了一個(gè) air. ?。所以,對(duì)于那些綁定包名的SDK而言,就要修改 package 。比如微信分享、支付,QQ登錄…
- ·程序從后臺(tái)回到前臺(tái),SDK頁(yè)面消失了。
? ? ? ? ? 這時(shí)候,應(yīng)該考慮 配置文件的 android:launchMode="singleTask" 問(wèn)題了。需要修改。把主activity的 android:launchMode="singleTask" 刪掉,其他 ? ? ? ? ? 的 activity 加上該配置。或者 執(zhí)行相反操作。
- ·版本號(hào)的問(wèn)題
? ? ? ? ?如果某些SDK初始化錯(cuò)誤,那么可能SDK里面用到了版本號(hào)的信息。也就是 android:versionCode="0" ? ? ? ? ? ? ?android:versionName="@string/app_version"? 。默認(rèn)打出來(lái)的apk 包,配置文件是上面這樣子的。 那就需要手動(dòng)修改成:android:versionCode="1" ? ?android:versionName="1.0"?? 版本號(hào),游戲可以自己定義。建議,不管是否出錯(cuò),都要修改版本號(hào)配置。
2.????activity生命周期
在android中,有的SDK 設(shè)計(jì)的時(shí)候,需要重寫(xiě)其生命周期的一些方法。比如 onActivityResult()等…解決方案:中間新建一個(gè)空的activity,然后,在空的activity去掉SDK的一些方法,這樣就可以獲取到了回調(diào)。在獲取到回調(diào)信息之后,finish()該空activity。
3.????關(guān)于銀聯(lián)支付的坑…
昨天,剛做了一個(gè)關(guān)于機(jī)鋒SDK的Ane。碰到了一個(gè)大坑。。。調(diào)試了1天。。。
支付的時(shí)候,其余支付方式都正常,但銀聯(lián)支付就是出不來(lái)界面,而且程序崩潰。
最終解決方案:把a(bǔ)ndroid下面生成的demo.apk ,解包 將關(guān)于銀聯(lián)支付的 .smail程序代碼類 都拷貝出來(lái),手動(dòng)替換掉 as游戲工程apk 解包之后的 .smial銀聯(lián)相關(guān)的支付文件,就ok了。。。
暫時(shí),只想到這么多。如果各位大神,也遇到過(guò)坑,請(qǐng)?zhí)u(píng)論。一起發(fā)揚(yáng)此貼。
轉(zhuǎn)載于:https://www.cnblogs.com/sunminmin/p/3831039.html
總結(jié)
以上是生活随笔為你收集整理的Ane技术大全 - Devil程序员的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Jquery 提示插件
- 下一篇: PPT,别让我们走错路