哈哈,曾经梦寐以求的ANE终于弄成功了一个。说实话,学java和Android就是为了写ANE!好啦,今天把我体会到的记录一下:

网上其实打包ANE的教程好多,我也找了好多好多。但是好多我自己试了还是没有弄成功,可能是我智商有问题。

我使用的工具:

Eclipse-ADT

flashBuilder

flash cs6

flex中创建项目:

As源码:

package randy.util.log
{
import flash.external.ExtensionContext; public class LogUtil
{
private static var _extensionContext:ExtensionContext=null;
private static const EXTENSION_ID:String="randyUtilLog";
private static const LOG_FUNCTION:String="fn_log"; public static const DEBUG:String="debug";
public static const VERBOSE:String="verbose";
public static const INFO:String="info";
public static const WARN:String="warn";
public static const ERROR:String="error"; public static function log(msg:String,level:String=LogUtil.INFO,tag:String="非若"):void
{
if(!_extensionContext)
{
_extensionContext=ExtensionContext.createExtensionContext(EXTENSION_ID,null);
}
_extensionContext.call(LOG_FUNCTION,msg,level,tag);
}
}
}

拿出我们需要的swc文件ANE_log.swc !

然后在Eclipse-ADT中创建android项目:

然后给项目添加 FlashRuntimeExtensions.jar

Jar文件在flashBuilder安装文件下sdks/4.6.0/lib/android目录下面;我的是D盘,4.6.0版本;

可以直接ctrl+C、ctrl+V到android项目文件里面的lib文件夹路径就OK啦

然后就开始java类编辑:

Java源码:

package randy.util.log;

import java.util.Map;

import java.util.HashMap;

import com.adobe.fre.FREContext;

import com.adobe.fre.FREFunction;

public class LogContext extends FREContext {

    private static Map<String,FREFunction> functions=null;

         @Override

         public void dispose() {

                   // TODO Auto-generated method stub

         }

         @Override

         public Map<String, FREFunction> getFunctions() {

                   if(functions==null){

                            functions=new HashMap<String,FREFunction>();

                            functions.put(LogFunction.FUNCTION_KEY, new LogFunction());

                   }

                   return functions;

         }

}

/*****************************************************************************/

package randy.util.log;

import com.adobe.fre.FREContext;

import com.adobe.fre.FREExtension;

public class LogExtension implements FREExtension {

    private LogContext logExtension=null;

         @Override

         public FREContext createContext(String arg0) {

                   if(logExtension==null){

                            logExtension=new LogContext();

                   }

                   return logExtension;

         }

         @Override

         public void dispose() {

                   // TODO Auto-generated method stub

         }

         @Override

         public void initialize() {

                   // TODO Auto-generated method stub

         }

}

/************************************************************************/

package randy.util.log;

import android.util.Log;

import com.adobe.fre.FREContext;

import com.adobe.fre.FREFunction;

import com.adobe.fre.FREObject;

public class LogFunction implements FREFunction {

    public static final String FUNCTION_KEY="fn_log";

         @Override

         public FREObject call(FREContext arg0, FREObject[] arg1) {

                   try{

                            String msg=arg1[0].getAsString();

                            String level=arg1[1].getAsString();

                            String tag=arg1[2].getAsString();

                            if("debug".equals(level)){

                                     Log.d(tag, msg);

                            }else if("verbose".equals(level)){

                                     Log.v(tag, msg);

                            }else if("info".equals(level)){

                                     Log.i(tag, msg);

                            }else if("warn".equals(level)){

                                     Log.w(tag, msg);

                            }else if("error".equals(level)){

                                     Log.e(tag, msg);}

                            }catch(Exception e){}

                   return null;

         }

}

到此,就OK了第二步!

然后点击java文件包右击到处我们要用到的jar文件:

点击finish完成!

然后让我们来创建数字证书:

打开flashcs6:

创建一个AIR for Android项目

然后点击确定,证书就创建好在桌面了

然后新建一个文件夹在桌面,比如log

Adt.jar在flashbuilder安装目录lib下可以复制粘贴过来

然后复制swc文件,并将扩展名改为zip,双击进去

把里面的文件解压出来

然后就差一个描述文件咯

新建记事本

输入:

<extension xmlns="http://ns.adobe.com/air/extension/3.1">

  <id>randyUtilLog</id>

  <versionNumber>1</versionNumber>

  <platforms>

    <platform name="Android-ARM">

      <applicationDeployment>

        <nativeLibrary>aneLog.jar</nativeLibrary>

        <initializer>randy.util.log.LogExtension</initializer>

        <finalizer>randy.util.log.LogExtension</finalizer>

      </applicationDeployment>

    </platform>

  </platforms>

</extension>

Txt改为xml

就像这样

然后桌面键+R,输入cmd,确定:

进入adt.jar所在文件路径:

Cd  C:\Users\feiruo\Desktop\log

然后输入打包命令行:

java -jar adt.jar -package -tsa none -storetype pkcs12 -keystore feiruo.p12 -storepass 123456 -target ane ExtensionLog.ane extension.xml -swc ANE_log.swc -platform Android-ARM library.swf aneLog.jar

-keystore feiruo.p12:数字证书的名字

-storepass 123456:数字证书密码

-target ane ExtensionLog.ane:要打包ANE的名字

extension.xml:描述文件

-swc ANE_log.swc:swc库文件

然后log文件夹下会生成一个ExtensionLog.ane文件

ANE打包的更多相关文章

  1. ANE打包工具使用视频教程 -- 梦宇技术 @极客学院

    来源:http://xtiqin.blog.163.com/blog/static/17017217920133584934827/ ANE打包工具使用视频教程 2013-04-05 08:49:34 ...

  2. Flash Android ANE打包之基本流程

    搭建环境这里就不详细说明了 一.Android本地库编写 1.从Flash Air SDK中提取需要的jar包 Android下需要的jar包在Flash Air SDK/lib/android目录下 ...

  3. ANE打包心得

    1 ane中的p12证书是fb或者flashide中生成的(例如air工程生成的p12),不是苹果账号的p12 2 打包bat中的 -platform 要和 extension.xml中的platfo ...

  4. Air for ANE:打包注意的地方

    来源:http://blog.csdn.net/hero82748274/article/details/8631982 今天遇到了一个打包ANE 文件的问题,导致花费了几个小时查找,最后师弟的一句话 ...

  5. ANE接入平台心得记录(安卓)

    开发环境:FlashBuilder4.7 AIR13.0 Eclipse 由于我懒得陪安卓的开发环境所以我下载了包含安卓SDK Manager的Eclipse,其实直接用FlashBuilder开发A ...

  6. 开发QQ互联ios版Ane扩张 辛酸史

    来源:http://www.myexception.cn/operating-system/1451490.html 开发QQ互联ios版Ane扩展 辛酸史 开发QQ互联ios版Ane扩展辛酸史: 1 ...

  7. 打包ane之后在FB上生成ipa的阶段错误

    1. 初次打包 碰到这个错误得 就是你mac 上jre版本的问题 此时用 FB 必须是跑在jre1.6版本上的 我得是1.8 上图 版本可以自己查下 已经截图了 而且 你如果想要下载 1.6版本的 就 ...

  8. Flash Air 打包安卓 ane

    工具: 1.flash builder 2.adt打包工具 3.数字证书 一. 创建 jar 文件 1. 打开flash builder, 新建一个java 项目. 2.点击项目属性,选择Java构建 ...

  9. 打包制作 ANE

    一.打包ANE 1.ios 准备文件: anePackager.bat aneswc.swc extension.xml flashAne.ane ioslib.a library.swf platf ...

随机推荐

  1. 多层gmetad配置

    经实验表明: ①多层gmetad与ganglia版本无关,且可以多版本兼容 ②多层gmetad只有最底层gmetad能保存详细指标,非底层gmetad收集到的都只能是summary信息,当然也许我配置 ...

  2. 像 IDE 一样使用 vim

    本文转载自:https://github.com/yangyangwithgnu/use_vim_as_ide ##[目录] 0 vim 必知会........0.1 .vimrc 文件....... ...

  3. 联赛前集训日记Day1

    考试 炸的凄惨 T1 显然要高精搞一下,然而我的$DFS$竟然比我的$O(n^{2})$递推快 T2 欧拉路径的题,很不可做的样子,就没敢费时间打 T3 $DFS$枚举可过,然而我太蠢 GG 刷题 改 ...

  4. java 垃圾收集

    1.为什么使用垃圾收集 a.把用户从释放占用内存的重担中解救出来 b.帮助程序保持完整性 2.垃圾收集算法 检测出垃圾对象,必须回收垃圾对象所使用的堆空间并还给程序 垃圾检测:通过建立一个根对象集合并 ...

  5. 洛谷 P1378 油滴扩展

    P1378 油滴扩展 题目描述 在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界.必须等一个油滴扩展完 ...

  6. oracle latch

    (转载 : http://www.dbtan.com/2010/05/latch-free.html) Latch Free(闩锁释放):Latch Free通常被称为闩锁释放,这个名称常常引起误解, ...

  7. 【LeetCode OJ 232】Implement Queue using Stacks

    题目链接:https://leetcode.com/problems/implement-queue-using-stacks/ 题目:Implement the following operatio ...

  8. ios单元測试之GHUnit

    1.相同创建一个測试的project, 2.通过cocoaPod来下载GHUnit框架,或者到github上下载.由于这个框架是开源的第三方框架. 同一时候加入QuartCore.framework( ...

  9. iOS学习(3)

    4. 这个写法会出什么问题: @property (copy) NSMutableArray *array; 两个问题:1.加入,删除,改动数组内的元素的时候,程序会由于找不到相应的方法而崩溃.由于 ...

  10. SharePoint 2013 改动表单认证登录页面

    前 言 之前的博客我们介绍了怎样为SharePoint配置表单登陆,可是.登陆页面是丑.非常丑.非常丑.特别非常丑! 我们如今就介绍一下怎样定制SharePoint表单登陆页面! SharePoint ...