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. Android(安卓)采用代码编写ui
  2. android host修改
  3. android解析生成xml文件
  4. Unity-Android通信:AndroidJava 使用Unity c#编写Android程序调用
  5. android flutter打包 apk 及接facebook 及google登录的密钥生成
  6. Android(安卓)Studio(十二):打包多个发布渠道的apk文件
  7. android XML文件序列化
  8. Android(安卓)Studio导入Android平台源码
  9. android 编译模块

随机推荐

  1. Android(安卓)SwipeMenuListView策滑实现
  2. mac android ndk第一步
  3. Android(安卓)第三天(下午)
  4. Android类参考---Fragment(五)
  5. android学习笔记NO.3
  6. Android学习笔记01_走马观花
  7. Android(安卓)BaseAdapter使用介绍
  8. Android(安卓)用户界面(User Interface)
  9. menu.addIntentOptions 添加动态菜单详解
  10. Android学习之路——Activity(1)