一.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了。。。
暂时,只想到这么多。如果各位大神,也遇到过坑,请帖评论。一起发扬此贴。