1.编写AndroidAne.jar:

a.编写SkyContext.java:

import java.util.HashMap;
import java.util.Map;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;

public class SkyContext extends FREContext{

@Override
    public void dispose() {}
    @Override
    public Map<String, FREFunction> getFunctions() {
        HashMap<String, FREFunction> map = new HashMap<String, FREFunction>();
        map.put("testFunction", new TestToastFunction());
        //可继续put其他function
        return map;
    }

}

b.编写SkyExtension.java:

import com.adobe.fre.FREExtension;
import com.adobe.fre.FREContext;

public class SkyExtension implements FREExtension{
    @Override
    public FREContext createContext(String pType) {
        return new SkyContext();
    }
    @Override
    public void dispose() {}
    @Override
    public void initialize() {}
}

c.编写TestToastFunction.java:

import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;
//import android.widget.Toast;

public class TestToastFunction implements FREFunction{
    @Override
    public FREObject call(FREContext context, FREObject[] params) {
        return null;
    }

}

2.编写AndroidAne.ane:

a.编写extension.xml:

<?xml version="1.0" encoding="UTF-8"?>
<extension xmlns="http://ns.adobe.com/air/extension/3.7">
    <id>extTest</id>
    <versionNumber>1</versionNumber>
    <platforms>
        <platform name="Android-ARM">
            <applicationDeployment>
                <!--即为Android本地导出的jar包名-->
                <nativeLibrary>AndroidAne.jar</nativeLibrary>
                <!--即为Android本地FREExtension全路径-->
                <initializer>SkyExtension</initializer>
                <finalizer>SkyExtension</finalizer>
            </applicationDeployment>
         </platform>
    </platforms>
</extension>

b.编写HelloWorldExtension.as:

package
{
    import flash.external.ExtensionContext;
    public class HelloWorldExtension
    {
        public static const KEY:String = "testFunction";
        public static const EXTENSION_ID:String = "extTest";
        private var extContext:ExtensionContext;
        public function HelloWorldExtension()
        {
            extContext = ExtensionContext.createExtensionContext(EXTENSION_ID,"");
        }
        public function hello(name:String):String{
            if(extContext){
                return extContext.call(KEY,name) as String;
            }
            return "mlgb";
        }
    }
}

c.生成swc:

acompc -compiler.debug=false -external-library-path+=D:/FlexSDK/frameworks/libs/framework.swc  -swf-version=20 -compiler.source-path ./src \
    -include-sources ./src -output AndroidAne.swc

从AndroidAne.swc解压出library.swf

d.生成ANE:

adt -package -target ane AndroidAne.ane extension.xml  -swc AndroidAne.swc -platform Android-ARM library.swf AndroidAne.jar

3.在工程中引用AndroidAne.ane即可

var tt : HelloWorldExtension = new HelloWorldExtension;

trace(tt.hello("why"));

最新文章

  1. html5 meta(移动端)介绍及使用
  2. Chrome firefox ie等浏览器空格&amp;nbsp;宽度不一样怎么办
  3. Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  4. Dreamweaver代码提示快捷键冲突
  5. iOS 定位系统 知识
  6. HDU 5776 sum (思维题)
  7. 局域网里连接mysql服务器,其他人连接自己的mysql服务器
  8. C#对文件操作(基本的读写以及压缩和解压)
  9. python特征提取——pyAudioAnalysis工具包
  10. Go 错误处理
  11. SQL注入绕WAF总结
  12. linux 使用技巧 screen 管理你的远程桌面的会话创建和使用
  13. JS快排
  14. (5)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 熔断降级(Polly)
  15. Javaweb学习笔记——(十)——————response对象,response字符流缓冲器,响应头,状态码,重定向,requset对象,路径和乱码
  16. shell脚本----周期压缩备份日志文件
  17. C语言编程比赛WBS
  18. SpringBoot 异常处理
  19. javadoc中{@link}与@see的简单使用以及区别
  20. django额外参数的传递和url命名

热门文章

  1. Java反射与动态代理
  2. $.each()
  3. delphi的webBrowser操作HTML研究
  4. 关于Navigation的BarButtonItem的
  5. HTML5 UI框架Kendo UI Web中如何实现Grid网格控件本地化
  6. maven、strutst版本号
  7. (转)将cocos2dx项目从VS移植到Eclipse
  8. redis安装与基本配置
  9. gdb进行多线程调试
  10. win7 用户目录