还是那句话,ANE接入不难,但是打包ANE难。这个ANE 也算是自己第一个接入的三方ANE。虽然前面有几篇ANE的文章,但这篇因为时间 迟迟没发,期间遇到的困难 也多不过最后还是通过度娘给解决了。华为Intouch 总共耗时3天。时间挺长 不过后面的ANE 很快 哈哈 开心

关于ANE是干什么用的,相信找到这篇文章的人是知道的。说实在的,在我们接入三方SDK

的ANE时,其实最麻烦,最关键的不是写代码而是打包。代码其实很简单,直接复制三方SDK Demo里面的函数方法 然后稍加整理即可。如果基本的ANE制作不会的参看下面的教程。

闲话少说,进入正题。

制作工具:

Flash Builder4.7

Eclipse ADT

素材:

华为Intouch SDK 一份

 

如上图 拿到这个的时候里面除去一些必要的 非必要的说明文件,指导文件以外发现有两个Android 项目工程。一个是DEMO 里面包含我们要复制的代码,一个是SDK依赖库。库里面有一些Jar文件。了解这些后,将这两个项目导入到eclipse 中去。为了保险起见,首先可以运行一下DEMO,发现没有问题。好了 接下来进入ANE的制作。

 

由于我们的ANE其实也是代码库,所以在这里我们要创建一个库。

啰嗦一下创建过程

File – Android Application Project

h1

按照自己喜好填写,接着next

 

 

h2

 

把上面红框中的两个勾给去掉,因为我们要做的库 有些界面的东西用不着 然后finish

 

完成创建后,右键项目选择properties  点开Android选项卡

h3

 

如图所示,默认状态下是这样的,然后点击右侧的Add按钮 打开依赖库界面  这里最好将依赖包 和自己的ANE项目 放在同一个非汉字路径下面

h4

 

如果之前将SDK项目导入进来了的话 在这里面 就能看到,如果看不到 那再导入。然后选择咱们需要的SDK项目 Ok;

接着勾选上 Is Library 最后的界面如下所示。接着OK

h5

 

然后给SDK项目  我们创建的项目Build一下 那么能看到的列表大概是下面这样,如果bin里面没有jar 那么clear一下也行。

h6

 

上图中 红色框框里面的东西是我们打包所需要的。不能缺 下面进行打包操作

 

首先是文件结构

h8

如图 解释下

Android-ARM 文件夹里面需要包含打包安卓ANE所需的一些材料 涉及的文件有 extension.xml  platform.xml 以及打包命令

adt.jar 打包工具,可以在flash builder安装目录下找到(Adobe Flash Builder 4.7 (64 Bit)\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK\lib)也有直接调用安装目录下的bat文件进行打包。效果一样。

Extension.xml 扩展配置文件。我的是这样的

<?xml version=”1.0″ encoding=”UTF-8″?>

<extension xmlns=”http://ns.adobe.com/air/extension/16.0″>

<id>com.xmooon.aneCode.XMExtension</id>

<versionNumber>1.0.0</versionNumber>

<platforms>

<platform name=”Android-ARM”>

<applicationDeployment>

<nativeLibrary>itouchane.jar</nativeLibrary>

<initializer>com.xmooon.aneCode.XMExtension</initializer>

</applicationDeployment>

</platform>

</platforms>

</extension>

Intouch.swc 这个不多说,自己在fb里面写的AS代码库

Platform.xml 平台配置,对于AIR4.0以后的打包。可以直接通过platform.xml来合并第三方jar。 我的是这样的

 

 

<platform xmlns=”http://ns.adobe.com/air/extension/16.0″>

<description>An optional description.</description>

<copyright>2011 (optional)</copyright>

<packagedDependencies>

<packagedDependency>gamesdk_static_v1.1.jar</packagedDependency>

<packagedDependency>KjavaAbility0419.jar</packagedDependency>

<packagedDependency>libGoogleAnalyticsServices.jar</packagedDependency>

<packagedDependency>tantalumCore0422.jar</packagedDependency>

<packagedDependency>gamesdk_libproject.jar</packagedDependency>

</packagedDependencies>

<packagedResources>

 

<packagedResource>

<packageName>com.nd.commplatform</packageName>

<folderName>intouch-res</folderName>

</packagedResource>

 

</packagedResources>

</platform>

 

packagedDependency  里面是除去我们自己创建的安卓库项目 生成的jar包以外的所有包。

packagedResource  里面包含的是SDK所用到的资源 packageName 可以在gen里面获取到

folderName 就是项目里面的res可以全部复制

 

Android-ARM文件夹的结构如下

 

 

h7

 

红色框里面的是 SDK自身所需要导入的三方jar包,以及so文件。注意上面的libs文件夹。他和项目里面的libs存放东西类似。只是把项目libs里面的所有jar给提到外面来了,而里面的so文件则不动

绿色框里面的是构建SDK项目所生成的jar

蓝色框里面的是我们自己创建的库 生成的jar 直接到bin下面取即可 没有的 就build 或者clear

Swf文件 是解压swc所得到的。

 

打包命令如下

java -jar adt.jar -package -target ane com.xooom.intouch.ane extension.xml -swc Intouch.swc -platform Android-ARM -platformoptions platform.xml -C Android-ARM .

 

最后就是 根据manifest的配置 然后导入ANE测试即可

PS:几乎所有的都会提供DEMO 所以我们只需要 复制DEMO里面的代码 DEMO里面的.xml配置就可以了

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Free Web Hosting