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

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

Ane技术大全 - Devil程序员的更多相关文章

  1. 【同行说技术】iOS程序员从小白到大神必读资料汇总

    在文章<iOS程序员从小白到大神必读资料汇总(一)>里面介绍了很多iOS入门学习的资料,今天小编就发几篇技术进阶的文章,快来看看吧! 一.iOS后台模式开发指南 这个教程会教你在什么时候怎 ...

  2. 14个Java技术网站,程序员必备!

    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 程序员都是无师自通?这就有点胡 ...

  3. 身边好几个技术一般的程序员都面上了,阿里P7门槛降低?

    经常在网上的论坛里看到讨论程序员的级别,尤其在跳槽类的信息里可以看到对标阿里P7,百度T6,腾讯3.1等字眼,似乎大厂的级别俨然可以成为业内的通用货币,类似于高考分数一样,哪一档就对应着什么样的待遇. ...

  4. 【同行说技术】Python程序员小白变大神必读资料汇总( 三)

    在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...

  5. 从GitHub Jobs! 看技术发展趋势! 程序员进阶必备!

    0. https://jobs.github.com/positions GitHub Jobs: 1. https://jobs.github.com/positions/38bb8dc8-b5b4 ...

  6. 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  7. 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  8. “五年经验”年薪50W分享Java程序员掌握什么技术才不会被淘汰

    在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 . 一些独角兽公司以 ...

  9. 程序员的职业方向: 是-->技术?还是-->管理?

    岁之后还能不能再做程序员....... 绝大多数程序员最终的职业目标可能都是CTO,但能做到CEO的人估计会比较少,也有一少部分人自己去创业去当老板,也有部分人转行了,当老板的人毕竟是少数,转行的人都 ...

随机推荐

  1. 如何打开uboot的函数debug()的开关,输出更多调试信息?

    答: 有两种方法: 一. 方法一 在文件<file>.c的首行加入以下内容: #define DEBUG #undef CONFIG_LOGLEVEL #define CONFIG_LOG ...

  2. Laravel 入门常见问题汇总

    一.安装完成后想打开 Laravel 内置的登录页面,报错 解决方法: Laravel 利用 PHP5.4 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...

  3. vue---数据列表循环

    使用vue进行数据循环是非常常见的操作,下面是用利用forEach和map来进行数据循环: 最常见的 forEach 循环: tbody.forEach((item,key) => { .... ...

  4. Ubuntu安装sysv-rc-conf配置开机启动服务

    ubuntu下chkconfig的替代方案: 第一步:在终端键入sudo apt-get install sysv-rc-conf安装sysv-rc-conf服务. 第二步:检查设置系统开机自启动服务 ...

  5. 【tensorflow基础】Tensorpack-API

    安装 pip install tensorpack 使用 参考 1. Tensorpack: 2. Tensorpack,一个基于TensorFlow的神经网络训练界面,源码包含很多示例: 完

  6. 多线程、线程池、线程创建、Thread

    转载自https://www.cnblogs.com/jmsjh/p/7762034.html 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行 ...

  7. 高级UI-画板Canvas

    Canvas可以用来绘制直线.点.几何图形.曲线.Bitmap.圆弧等等,做出很多很棒的效果,例如QQ的消息气泡就是使用Canvas画的 Canvas中常用的方法 初始化参数 Paint paint ...

  8. 【剑指offer】面试题 23. 链表中环的入口节点

    面试题 23. 链表中环的入口节点

  9. ubuntu18.04LTS服务器用vituralenv安装和配置pytorch和tensorflow

    ============tensorflow================= $ python3 -m venv tf14====输入例子====# $ vim ~/.bashrc #(添加如下行, ...

  10. Apache Kafka + Spark Streaming Integration

    1.目标 为了构建实时应用程序,Apache Kafka  - Spark Streaming Integration是最佳组合.因此,在本文中,我们将详细了解Kafka中Spark Streamin ...