[AIR for Android]AIRSDK3.5打包运行时纹理丢失BUG

AIRSDK版本:3.5

项目使用的引擎:Starling

纹理使用流程:加载ATF – 解压 -上传到GPU – 渲染

打包:加入运行时 RunTime.apk 打入APK

BUG重现:

在一部分机器上 纹理会完全丢失。例如HTC的部分机型。

解决方式:

A.换AIR3.7以上的版本打包

B.不加入运行时 (这样玩家会在打开项目的时候自行下载 )

C.把AIR3.7 或者3.8的 RunTime.apk 替换AIR3.5的RunTime.APK(这种方法和换SDK没差别好像)

[AIR接入Android 平台]第三步 打包处理多个JAR变成一个JAR提供给第五步

一点声明:我的水平有限 这里仅仅只能写出我认为可行的方案 和 代码

接入android 运营平台 一般平台方都会提供一个或者更多的jar包。但是我们的ane只能打包一个jar包。这就需要我们把这些jar全部集合到一个去。

我的方法是基于一个兄台的教程的改进:传送门

拿我接过的最繁琐的一个SDK来说,它要求我必须连入6个jar。如图

需要把 其余的jar 都合并到 flane.jar中。
继续阅读“[AIR接入Android 平台]第三步 打包处理多个JAR变成一个JAR提供给第五步”

[AIR接入Android 平台]第二步 编写 JAVA端接口 与 AS端接口项目

这和编写其他所有ANE类似。网上可以找到一堆的教程。但是我觉得都不够清晰。如果你已经对编写ANE有足够的把握 那这篇文章完全可以不看。

一点声明:我的水平有限 这里仅仅只能写出我认为可行的方案 和 代码

而且针对接入平台运营商的情况。这种ANE基本都具有四个功能:

初始化SDK  -> 登录 -> 付费 -> 退出

所以我决定针对接入android平台而写一个基本的ANE教程。我接入的所有平台的ANE 都是基于教程中给出的源码而做的改进。

ANE作为AIR调用本地代码的机制 他的组成分为两部分:

在开始之前 先限定一些共同的ID:

接口 ID:com.rect.ane

初始化SDK标识:rect_function_init

登录标识:rect_function_login

付费标识:rect_function_pay

退出SDK标识:rect_function_exit
继续阅读“[AIR接入Android 平台]第二步 编写 JAVA端接口 与 AS端接口项目”

[AIR接入Android 平台]打造登录付费ANE全教程

目前为止我为项目共接入了大概8家或大或小的平台。深知AIR移动项目接入运营平台在打造ANE过程中会有各种各样的问题。在这里我打算把我遇到的问题 和解决方式记录下来,也许你用得着 也许你已经遇到过 也许你已经解决掉。接下来我会从我的air项目和各种android应用运营平台方的SDK接入过程 中 遇到的问题进行探讨。其中有些问题已经解决 有些问题解决得很差强人意,有些问题尚未解决。也请已经解决了这些问题的朋友  能和我交流。当然我对原生android开发刚刚入门 有一些看法或多或少存在错误。也请看到的朋友能Email我指出。(rectvv[at]gmail[dot]com)

首先关于最近大家都在群里讨论 AIR是生是死的问题,ASER是否转行的问题,我觉得应该把当下的事情做好,作为一个程序员不应该被一种语言 或者被一个公司束缚住,就像CODE COMPLETE里面说的一样。程序员应该是超越语言的。当然我目前还没到这水平。接下来进入正题。

在这之前 我之前写了一些关于ANE更早的一些文章:传送门

————————————————–

我的项目信息

使用的跨平台技术:Adobe Air

使用的GPU加速框架(引擎?):Starling

使用的AIR SDK版本:3.5

(AIR3.5打包STARLING项目出来的的APK对于HTC的机器会有一个BUG,更新到AIR3.7之后 HTC的BUG解决了 但是对三星的一款机器又出一个新BUG 目前我还在寻找完美的解决方式  当前我的解决方式并不完美 详细的BUG描述会在后面统计的时候给出)
继续阅读“[AIR接入Android 平台]打造登录付费ANE全教程”

[Air For Android]Direct渲染模式与调用第三方插件BUG(已解决)

BUG重现环境:

1.应用开启GPU渲染模式 既是在XML中加入参数:<renderMode>direct</renderMode>

一般starling或者其他stage3D环境都必须开启此渲染模式;

2.应用调用第三方插件 例如支付宝插件 银联插件(我使用的是ANE调用)

描述:

在运行应用的时候 调用ANE 调用支付宝或者银联插件付费。付费完成或者付费取消 返回AIR环境的时候 引发;

现象:

手机黑屏  在退出到桌面再进去AIR应用的时候 恢复正常。

图片解释过程:

A。这里调用第三方插件 银联


继续阅读“[Air For Android]Direct渲染模式与调用第三方插件BUG(已解决)”

[Air For Android Of ANE]运营商登录付费接入ANE打包心得

前缀:

关于什么是ANE,如果您都能搜索到这篇文章的话  相信已经不用我过多介绍了。但是还是会发一篇基础教程:点我传送

项目进行到了接入运营商的阶段。而国内除了91等几家声名显赫的运营商会提供已经做好的ANE给ADOBE 的移动开发者之外。其他的运营商一般只会提供IOS封装库 或者是Android 的JAR 封装库。这对于Air For Android 开发的移动应用来说。接入这些运营商就需要应用开发者自己实现ANE。

这几天一直在做android运营商的接入。这里就先把这几天的心得先发上来。大概下一次就会把Air For IOS Of ANE 的心得一并发在这里。

针对Android的ANE打包:

配置JAVA android开发环境 配置各自系统变量等略过。

首先说说我这次拿到运营商提供的JAR库的结构。(如果你拿到的SDK组成和我这次的大同小异,那你可以看完省很多弯路  如果你拿到的SDK比我拿到的复杂 那你仅仅可以参考其中的一些资源打包等方法。很多情况还是有不同的)

我这次运营商提供的有 :

A.JAR库文件一个;

B.还有布局文件库(res文件夹下的一堆UI布局文件);

C.原生android写的DEMO一个;

D.开发文档若干;
继续阅读“[Air For Android Of ANE]运营商登录付费接入ANE打包心得”

[Air For Android]Air安卓下渐变图片显示变色解决方式

疑似BUG:

在原生的FLASH下(非Starling 非Stage3D ),在原生CPU渲染下,AIR3.5以下(更高的没有试),加载显示具有渐变或者半透明的 矢量图的时候,特别是在位图贴在位图上的情况下,容易发现变色。具体显示错乱的图片看下图。

解决方式:更改渲染模式。

默认的显然模式是:

this.blendMode = BlendMode.NORMAL;

只要把重叠模式改为叠加,就可以解决:

this.blendMode = BlendMode.ADD;

AIR ANE打包之时间戳错误:could not generate timestamp handshake alert

AIR  ANE,既是AIR为移动开发所支持的本地拓展。

比较经典的HELLOWORLD教程在:这里

小博安装教程一步一步走下去,到了打包ANE的时候出现时间戳的错误。

could not generate timestamp handshake alert

继续阅读“AIR ANE打包之时间戳错误:could not generate timestamp handshake alert”

AIR移植ANDROID之STARLING开源项目:Whack

Starling简介以及中文站:http://www.starlinglib.com

在ADOBE AIR出到3.0之后,AIR跨平台的优势被越来越多的人发掘。

特别是拥有完美封装STAGE3D API的开源框架STARLING的出现。

让更多的人使用AIR进行跨平台开发特别是游戏开发成为可能。

这在三年前可是想都不敢想的事情。

试想一下  未来 使用AIR开发的游戏肯定鲜花洒满地。
继续阅读“AIR移植ANDROID之STARLING开源项目:Whack”

使用Starling 对AIR 快速移植到ANDROID

最近在学习Starling与Air For Android开发。发现其实ADOBE的AIR为我们做了大部分的工作。包括一堆参数的设定等等。

接下来我们尝试对一个AS3写的PC端俄罗斯方块进行移植。

考虑到Starling的优势,我们先选择在纯FLASH 天然的情况下加入GPU渲染。

当中出现的问题的是:

1>尽量避免使用原生FLASH连接库

2>Texture纹理上传资源的限制,所以针对Texture.fromBitmap或者fromBitmapData的使用次数和上传的纹理大小要特别注意。

3>资源回收,这是个大问题,在单帧时间过长内存消耗过大的情况下,基本上是卡着不动的,GPU会耗死,总结了几点:
继续阅读“使用Starling 对AIR 快速移植到ANDROID”