守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 1105|回复: 0

[Android] 如何编写android ANE

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51723
    钢镚
    1422

    开源英雄守望者

    发表于 2015-1-19 09:54:19 | 显示全部楼层 |阅读模式
    1.编写AndroidAne.jar:
    a.编写SkyContext.java:
    1. import java.util.HashMap;
    2. import java.util.Map;
    3. import com.adobe.fre.FREContext;
    4. import com.adobe.fre.FREFunction;

    5. public class SkyContext extends FREContext{

    6.     @Override
    7.     public void dispose() {}
    8.     @Override
    9.     public Map<String, FREFunction> getFunctions() {
    10.         HashMap<String, FREFunction> map = new HashMap<String, FREFunction>();
    11.         map.put("testFunction", new TestToastFunction());
    12.         //可继续put其他function
    13.         return map;
    14.     }

    15. }
    复制代码
    b.编写SkyExtension.java:
    1. import com.adobe.fre.FREExtension;
    2. import com.adobe.fre.FREContext;

    3. public class SkyExtension implements FREExtension{
    4.     @Override
    5.     public FREContext createContext(String pType) {
    6.         return new SkyContext();
    7.     }
    8.     @Override
    9.     public void dispose() {}
    10.     @Override
    11.     public void initialize() {}
    12. }
    复制代码
    c.编写TestToastFunction.java:
    1. import com.adobe.fre.FREContext;
    2. import com.adobe.fre.FREFunction;
    3. import com.adobe.fre.FREObject;
    4. //import android.widget.Toast;

    5. public class TestToastFunction implements FREFunction{
    6.     @Override
    7.     public FREObject call(FREContext context, FREObject[] params) {
    8.         return null;
    9.     }

    10. }
    复制代码
    2.编写AndroidAne.ane:
    a.编写extension.xml:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <extension xmlns="http://ns.adobe.com/air/extension/3.7">
    3.     <id>extTest</id>
    4.     <versionNumber>1</versionNumber>
    5.     <platforms>
    6.         <platform name="Android-ARM">
    7.             <applicationDeployment>
    8.                 <!--即为Android本地导出的jar包名-->
    9.                 <nativeLibrary>AndroidAne.jar</nativeLibrary>
    10.                 <!--即为Android本地FREExtension全路径-->
    11.                 <initializer>SkyExtension</initializer>
    12.                 <finalizer>SkyExtension</finalizer>
    13.             </applicationDeployment>
    14.          </platform>
    15.     </platforms>
    16. </extension>
    复制代码
    b.编写HelloWorldExtension.as:
    1. package
    2. {
    3.     import flash.external.ExtensionContext;
    4.     public class HelloWorldExtension
    5.     {
    6.         public static const KEY:String = "testFunction";
    7.         public static const EXTENSION_ID:String = "extTest";
    8.         private var extContext:ExtensionContext;
    9.         public function HelloWorldExtension()
    10.         {
    11.             extContext = ExtensionContext.createExtensionContext(EXTENSION_ID,"");
    12.         }
    13.         public function hello(name:String):String{
    14.             if(extContext){
    15.                 return extContext.call(KEY,name) as String;
    16.             }
    17.             return "mlgb";
    18.         }
    19.     }
    20. }
    复制代码
    c.生成swc:
    1. acompc -compiler.debug=false -external-library-path+=D:/FlexSDK/frameworks/libs/framework.swc  -swf-version=20 -compiler.source-path ./src \
    2.     -include-sources ./src -output AndroidAne.swc
    复制代码

    从AndroidAne.swc解压出library.swf

    d.生成ANE:

    1. adt -package -target ane AndroidAne.ane extension.xml  -swc AndroidAne.swc -platform Android-ARM library.swf AndroidAne.jar
    复制代码
    3.在工程中引用AndroidAne.ane即可

    1. var tt : HelloWorldExtension = new HelloWorldExtension;

    2. trace(tt.hello("why"));
    复制代码


    本文来自:http://www.cnblogs.com/LinuxHunter/p/3664932.html


    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-9-24 16:48 , Processed in 0.062507 second(s), 35 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表