来源: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了。。。

暂时,只想到这么多。如果各位大神,也遇到过坑,请帖评论。一起发扬此贴。

更多相关文章

  1. Drawable资源——Scale Drawable 规模可绘制
  2. Android 通过蓝牙控制小车源代码+视频
  3. Android中的Drawable资源——Transition Drawable
  4. 【eoe资源】如何让Android ListView的平滑滚动
  5. Android接口回调
  6. Android SQLite详解及示例代码
  7. Android中打印代码的调用层次
  8. android apk编译时可以找到的资源,但在运行时却找不到出错Resourc
  9. 【android】在Eclipse在联想引jar包源代码

随机推荐

  1. Android平台上sqllite 简介
  2. 使用android快速开发框架afinal的FinalDb
  3. Android(安卓)属性动画原理与DataBinding
  4. Android(安卓)锁定屏幕 不可解锁
  5. Eclipse中使用Android5.0新特性CardView
  6. Android(安卓)SDK 安装笔记
  7. 关于Android的基础知识介绍
  8. Android高手进阶教程(八)之----Android(
  9. 奇葩问题:ListView中Item与Item中的Button
  10. Android中activity切换动画的两种实现(附