这几天用air做android项目,发现个功能air实现不了。得用android原生技术,但小弟菜蔬学浅,android原生是搞不懂了,还是AS用着顺手。于是跟度娘求助,然后就发现了ANE这东东,但发现关于ane的中文资料灰常少,度娘上的资料基本都是官方性质的,用词都很官方(神马是上下文环境啊,完全不懂 - -#),后来还是谷哥靠谱,资料稍多点,但都是E文的呃,但这小小的困难怎么能难倒哥呢,要知道,哥电脑上可是装了有道词典的! 于是在走了N多弯路后终于把这玩意弄懂了(不容易啊 - -#)。本着造福后人的思想,小生就把这个东西的玩法用天朝文写下来啦。
OK,先简单说说ANE是啥吧(不想看废话的请跳过这段)。 ANE(AIR Native Extension),就是本机扩展,顾名思 就是对air运行的本机的扩展(还是没听懂?)。好吧,我的理解就是air不能实现的功能,就用ane来实现。比如我要用air来控制电脑的鼠标移动,这个功能貌似air做不到吧,如果能做到,那air就可以用来做病毒了 - -! 显然,adobe不会让你这么做的。 但C语言能完成这功能,于是乎,ANE的作用就出来了——把C和as打包起来,AS调用C来完成AS不能完成的任务。好吧,至于ANE还能干嘛,你们自己慢慢YY,下来我就开始写教程了。
以下教程是用在android手机上的: 首先,在这个教程里要准备的工具: 1、flash cs6
2、flash builder 4.6 (低版本的没用过,不是很清楚); 3、adt打包工具(回复本帖就能下载哟,亲);
4、数字证书(就是用来签证的玩意,可以向adobe申请,也可以自己用flash cs6创建);
OK,东西准备好了吧? let's go!
一、创建jar文件
.jar就是个java文件,android系统原生就是java来写的,所以我们想扩展android 上的air,就得有个jar文件来实现你要的功能。
1、先打开FB(就是flash builder,以后都叫它FB了)。建一个java项目。(文件-新建-其它-java项目| file-new -other-java-java project)。然后,随便给它起个名字,完成。
然后,看看项目目录,应该就是这个:
然后,对着项目点右键(就是对着myExtensonJava点右键),点击属性,再选java构建路径,然后选库路径、再选添加外部jar,再找到flash cs6目录下AIR3.2\\lib\\android\\ 的FlashRuntimeExtensions.jar文件(properties—java built path—library—Add External JARs ——XXX目录下的FlashRuntimeExtensions.jar—打开—OK) 如图:
然后,在项目的src文件下建一个包,包名自定,我这用的是com.three,接着再在这个包
下建3个java类。先看看项目结构各JAVA代码如下:
1、Extension的代码
? ? ? ? ? ? ? ? ?
package com.three; import com.adobe.fre.*;
//Extension这个类是AS与JAVA交互的最基础的入口,其实很简单,也就这么点东西 public class Extension implements FREExtension {
@Override
public FREContext createContext(String arg0) {
?? // new一个新的threeExtensionContext出来; ?? return new threeExtensionContext(); ?? } ??
?? @Override
?? public void dispose() {
?? // 这个销毁资源的方法,暂时没有什么用,空着 ?? ?? } ??
?? @Override
?? public void initialize() {
?? // 初始化方法,暂时用不着,空着先