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程序员相关推荐
- 《代码大全》程序员们怎样花费自己的时间
内容来自:<<Code Complete 代码大全>>计算机实用软件技术系列丛书 程序员不仅要花费其时间编程,也要花费时间开会.接受培训.阅读邮寄材料和思考.1964年对贝尔实 ...
- 阿里资深技术工程师: 程序员怎样快速成长?
梦想很美好,现实却很残酷 不管是开发.测试.运维,每个技术人员心里多多少少都有一个成为技术大牛的梦.毕竟"梦想总是要有的,万一实现了呢"? 但很多阿里的新人,工作后就会发现,梦想是 ...
- k8s 偏向运维技术 ,后端程序员为什么要学习k8s?
k8s 偏向运维技术 ,后端程序员为什么要学习k8s?? 1.以前项目开发:开发,运维是密不可分 - 上线 运维,开发密不可分 2.开发&运维 结合更紧密 - DevOps - 流水线 ...
- 十大面试问题解惑,秒杀一切HR、技术面试。程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余。小编收集了10个面试官最爱提的问题
十大面试问题解惑,秒杀一切HR.技术面试.程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余.小编收集了10个面试官最爱提的问题 ...
- 十大面试问题解惑,秒杀一切HR、技术面试。程序员必读!
十大面试问题解惑,秒杀一切HR.技术面试.程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余.小编收集了10个面试官最爱提的问题 ...
- 【程序员装备大全】程序员,就要对自己好一点!
摘要: <极限特工:终极回归>已经上映了,除了主演们的美好肉体以及让人肾上腺激素爆棚的剧情,那些炫酷的装备也是吸引了无数影迷的眼球.试想一下,如果让你拥有这些装备呢?就算成为不了范迪塞尔, ...
- 技术直播:程序员副业的修炼指南!(限免报名)
面试造飞机,上班拧螺丝,每天想辞职,但无奈副业还"大器晚成"的样子!那可能是你还没有选对副业! 滴滴 ~福利卡!!! CSDN学院邀请汤小洋老师开设技术直播课<程序员副业之路 ...
- 技术不错的程序员,为何面试却“屡战屡败”
为何很多有不少编程经验,技术能力不错的程序员,去心仪公司面试时却总是失败?至于失败的原因,可能很多人都没意识到过. 01 想要通关面试,千万别让数据结构拖了后腿 很多公司,比如 BAT.Google. ...
- Linux常用命令大全-toolfk程序员在线工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
最新文章
- mqtt android简书,iOS MQTT协议笔记
- 使用SAE和Gitcafe开发网站应用
- PyTorch 训练可视化教程 visdom
- JavaScript类型总览(图)
- 7-2 批处理作业调度 (10 分)(思路+详解)
- JDK 11:轻松取出单文件Java源代码程序
- 电脑动态壁纸_《Wallpaper Engine》一周电脑动态壁纸精选-第十二期
- c语言中逗号是什么字符,C语言中的逗号操作符
- java入门申请,《java入门如此简单》——基础知识1
- 最大一笔收购,Pokémon Go开发商Niantic收购AR开发平台8th Wall
- php 动态多维数组长度,php – 动态创建多维数组
- kaggle比赛:房价预测(基于MXNet框架)
- 三桥君:如何把SQL Server的数据库导为sql文件
- proc sys文件系统对比
- 网站被劫持的解决方案、网站被劫持怎么办、网站被劫持有什么解决办法
- 软件的生命周期SDLC
- mysql server安装及配置
- 类加载顺序及加载过程详解
- 量化资源--awesome quant中文版发布
- Microsoft SQL Server 图书管理数据库的建立
热门文章
- 深度linux引导安装,全程演示Linux Deepin 12.06安装过程
- 圈钱跑路 ERC20 Token 合约代码分析
- Android Studio安装应用时报错 installation failed with message Failed to finalize session......
- linux 下升级apache,CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache...
- 买卖股票的最佳时机—leetcode121
- 子集—leetcode78
- 开始体验Kali Linux
- C++创建对象的两种方式
- compat mysql51 5.1_MySQL mysql-5.1升级到mysql-5.6
- mysql 的 外连查询