[AIR接入Android 平台]Android-Ane 开发入门笔记

Android开发者的Ane

开发流程

项目分成三部分:Android项目,Flex Library库项目和Flex Mobile项目

一.Android Native Lib

1.新建Android**工程,最小SDK>=2.2**

2.去掉下面两项前的勾
001.png

3.build path**中导入FlashRuntimeExtensions.jar
4.实现**

FREExtension (implements):该类负责与AS3 交互,主要修改的地方是createContext方法返回我们自己的Context

![lip_image002.png](http://sven-res.oss-cn-shenzhen.aliyuncs.com//upload/image/20151112/1447305302170075558.png "1447305302170075558.png")

FREContext (extends):目的是返回一个存放本地方法的Map

lip_image003.png

FREFunction(extends): Function的实现

![lip_image004.png](http://sven-res.oss-cn-shenzhen.aliyuncs.com//upload/image/20151112/1447305317949094119.png "1447305317949094119.png")

1)首先创建Function

ip_image006.jpeg

2)实现Context

ip_image008.jpeg

3)实现Extension

lip_image009.png

到这里Android Native Lib就完成了

右键工程,导出(Export),Java下的Jar文件(导出时将不必要的文件去掉)如下图:

lip_image010.png

选择导出目标,即导出的路径

得到Jar包,完成第一步。

二. AS3 Lib

1.文件,新建,Flex库项目

lip_image011.png

2.新建AS类

lip_image012.png

3.实现

1)AneDataEvent.as

主要用来向外部抛出事件时能带有自己的数据

lip_image013.png

2)FunctionExtension.as

a.通过ExtensionContext与Native交互.com.example.functionnative.CallExtension是一会新建extension.xml中要定义的一个ID,代表了android native extension.通过这个id得到extension的Context之后调用call方法调用到Native层的Function,根据function_key找到对应的Function

b.为Context添加事件监听,用来响应Native中的dispatchStatusEventAsync

c.在Context的事件响应中对Native中传过来的事件分类处理,并抛出新的事件

实现如下:

ip_image015.jpeg

ip_image017.jpeg

5.**创建**extension.xml

创建一个文件命名为extension.xml编辑id:com.example.functionnative.CallExtension 和AS类里面使用的id一样(必须一样)。编辑nativeLibrary:最早导出的jar包:nativelib.jar编辑initializer:在Android代码中实现的Extension类的全称:com.example.functionnative.CallExtension,这个名字要与native中的Extension保持一致

ip_image019.jpeg

现在我们得到3个文件:*.jar , TestAne.swc , extension.xml

把TestAne.swc后缀名改为zip并解压得到两个文件,并新建Android-ARM文件夹;

最后目录:

Ane:

lip_image020.png

Android-ARM:

lip_image021.png

6.**打包生成**Ane

ip_image023.jpeg

命令如下(注意后面有一个点):

“C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0\bin\adt” -package -storetype PKCS12 -keystore mycert.p12 -storepass 2010AN12as -target ane AneLib.ane extension.xml -swc *.swc -platform Android-ARM -C Android-ARM .

生成证书命令:

adt -certificate -cn commonName keyType certificateFile password

例如:

adt -certificate -cn cert1 1024-RSA mycert.p12 2010AN12as

到此第二步完,得到*.ane

三**. Ane **使用

1.**新建Flex手机项目**

右键工程,属性–Flex构建路径–本机扩展–添加Ane:出现红叉不要紧

lip_image024.png

在构建打包中选择google Android

lip_image025.png

2.**修改TestUsing.mxml**

ip_image027.jpeg

OK 现在已经完成了所有的编写。

lip_image028.png

点击爬虫调试,箭头导出发行版,运行