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