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: content URI的真实路径获取
  2. Android将Uri转化为文件路径的方法
  3. 安卓各文件存储路径汇总(Android file path)
  4. Android Bluetooth 文件接收路径修改方法
  5. Android工程打包
  6. 用Flex开发移动应用(1)---- 创建一个新的Mobile工程
  7. android获取各种系统路径的方法
  8. eclipse无法导入Android工程的解决办法
  9. 在Eclips中更改Android工程中包的名字

随机推荐

  1. Android(安卓)layout xml总结
  2. android textview属性
  3. 如何去写 Android(安卓)init.rc (Android
  4. Android自动完成文本框
  5. Android动态部署五:如何从插件apk中启动Se
  6. Android当中layer-list使用
  7. Android中ProgressBar的使用
  8. 《阿里巴巴Android开发手册》《深入探索A
  9. android操作sqlite3的blob字段
  10. 【Android】Android(安卓)Parcelable 源