前言

拔开云雾见到明月之后才发现柳暗花明又一村.

    这篇文章是解密ADT系列中解密air for android的最终篇(希望是最终,本来上一篇想做最终篇的 但是发现越写越多越乱,于是就把它拆开了),在前四篇文章中说的东西可能没什么实际用途,那么这一篇 我就说说之前那么多分析 对于我们的项目究竟有什么用?下面我就列举几个ANE巨坑(所谓的坑,即使归根到底是由于自己当初的无知),这篇文章即将要针对这几个问题给出完美解决方式的,当然这些问题我在之前的ANE教程中已经有当时认为是完美的解决方式.
 
 

修改的内容


1.自定义AIR主activity的launchMode,解决平台支付过程中activity堆栈被切掉的问题.

说明:改为默认的launchMode:android:launchMode="standard"

2.去除包名前缀"air.",虽然这无伤大雅 但是前缀带air总有一种不太好的感觉.

说明:默认为设置环境变量“AIR_NOANDROIDFLAIR=true”可去掉,

3.去除android资源国际化限制.

说明:修改aapt编译参数。

4.彻底解决android资源ID找不到的问题.

说明:增加资源库复制,输入自定路径可生成相应的路径ID文件。

具体做法为在Android-ARM下建RDT/RDT.xml。然后配置<resourceid>属性

详细的请看demo。

5.解决ANE中引用so库调试版发行版不一致的问题.

说明:统一改为armeabi-v7a下。

6.ANE中加入多jar库引用,去除ANE中合并jar的步骤.

说明:把SDK的所有jar库放到Android-ARM/RDT/下

7.ANE中彻底解决资源ID错乱问题.(不是找不到ID,是ID数值偏差,在ANE中偶有发生).

8.可打包任意文件进APK根目录,以应对类似移动MM 联想支付等问题.

说明:把需要打包进APK根目录的文件放到Android-ARM/ROOT下

9.更改程序风格,实现默认全部activity全屏(适用于游戏项目)

说明:修改程序<application>默认风格。

10.修改默认raw下的文件,用以解决部分ANE需要在raw文件夹下操作音频文件的内存冲突

11.尽最大限度让AIR for android项目在打包上无限接近原生android项目.


已实现:1,2,3,4,5,6,7,9

我把个人定制的ADT命名为RDT(Rect`s ADT)

RDT v1.0版:https://github.com/recter/Anti-ADT/tree/master/RDT

配置说明:

把Anti-ADT/RDT/RDT.bat 放到 Adobe Flash Builder 4.6\sdks\AIR3.5\bin 下

把Anti-ADT/RDT/RDT.jar 放到 Adobe Flash Builder 4.6\sdks\AIR3.5\lib 下

ANE文件配置案例:

查看:传送门

调用说明:

查看 传送门