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了。。。
暂时,只想到这么多。如果各位大神,也遇到过坑,请帖评论。一起发扬此贴。
Ane技术大全 - Devil程序员的更多相关文章
- 【同行说技术】iOS程序员从小白到大神必读资料汇总
在文章<iOS程序员从小白到大神必读资料汇总(一)>里面介绍了很多iOS入门学习的资料,今天小编就发几篇技术进阶的文章,快来看看吧! 一.iOS后台模式开发指南 这个教程会教你在什么时候怎 ...
- 14个Java技术网站,程序员必备!
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 程序员都是无师自通?这就有点胡 ...
- 身边好几个技术一般的程序员都面上了,阿里P7门槛降低?
经常在网上的论坛里看到讨论程序员的级别,尤其在跳槽类的信息里可以看到对标阿里P7,百度T6,腾讯3.1等字眼,似乎大厂的级别俨然可以成为业内的通用货币,类似于高考分数一样,哪一档就对应着什么样的待遇. ...
- 【同行说技术】Python程序员小白变大神必读资料汇总( 三)
在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...
- 从GitHub Jobs! 看技术发展趋势! 程序员进阶必备!
0. https://jobs.github.com/positions GitHub Jobs: 1. https://jobs.github.com/positions/38bb8dc8-b5b4 ...
- 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...
- 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...
- “五年经验”年薪50W分享Java程序员掌握什么技术才不会被淘汰
在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 . 一些独角兽公司以 ...
- 程序员的职业方向: 是-->技术?还是-->管理?
岁之后还能不能再做程序员....... 绝大多数程序员最终的职业目标可能都是CTO,但能做到CEO的人估计会比较少,也有一少部分人自己去创业去当老板,也有部分人转行了,当老板的人毕竟是少数,转行的人都 ...
随机推荐
- Join Reorder优化 - 论文摘要
Query Simplification: Graceful Degradation for Join-Order Optimization 这篇的related work可以参考,列的比较全面, Q ...
- C#发起Http请求,调用接口
//方法1. Post 异步请求,普通的异步请求,传输普通的字符串等,对于有html代码的字段值的传输支持不好,如果需要传输html,二进制等数据的传输,请使用下面第二个方法,即使用UploadDat ...
- Android 加密之文件级加密(CE/DE)
https://blog.csdn.net/myfriend0/article/details/77094890/ Android加密之文件级加密
- 关于H5项目开发中TS(或JS)文件按照顺序编译成一个文件的记录
由于js的执行特性,多个js文件合成一个文件或者进行多个js文件加载时,时需要按照指定的顺序进行的,否则会出现报错的情况. 我们看一下目前几个主流H5引擎的做法. 白鹭的做法 当前版本的做法 在tsc ...
- js 模糊搜索
function fuzzysearch (needle, haystack) { var hlen = haystack.length; var nlen = needle.length; if ( ...
- vue强制刷新组件 ----组件重置到初始状态
把一个组件重置到初始状态是一个常见的需求,推荐的做法有两种,一种是父组件重置子组件的 prop,另一种是子组件暴露一个重置的方法供父组件调用.但有些时候,子组件既没有提供重置的方法,也没提供 prop ...
- [LeetCode] 543. Diameter of Binary Tree 二叉树的直径
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a b ...
- [LeetCode] 651. 4 Keys Keyboard 四键的键盘
Imagine you have a special keyboard with the following keys: Key 1: (A): Print one 'A' on screen. Ke ...
- 【VS开发】MFC多显示器适配显示设置
由于工程需要在多个显示器上显示不同类容,故查找了一些资料来满足这个功能.在VC中分为三步来操作:检测显示器个数:读取屏幕分辨率和其他参数:设置程序的显示坐标. 第一步:检测屏幕个数 网上查找到的通用方 ...
- snapde的批量数据运算公式
一.snapde基本介绍 Snapde,一个专门为编辑超大型数据量CSV文件而设计的单机版电子表格软件:它能打开最大3G大小的CSV文件进行编辑:它运行的速度非常快,反应非常灵敏. 二.snapde批 ...