如何编写android ANE
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"));
如何编写android ANE的更多相关文章
- Visual Studio 开始支持编写 Android 程序并自带 Android 模拟器【转载】
原文地址 本文内容 为什么需要一个 Android 模拟器 针对 Visual Studio Android 模拟器的调试 Visual Studio Android 模拟器的传感器模拟和其他功能 A ...
- 用Eclipse编写Android程序的代码提示功能
用Eclipse编写Android程序的代码提示功能主要是在java和xml文件中,有时候会失效,默认的提示功能有限. 1)java文件自动提示 Window->Preferences- ...
- 20162311 编写Android程序测试查找排序算法
20162311 编写Android程序测试查找排序算法 一.设置图形界面 因为是测试查找和排序算法,所以先要有一个目标数组.为了得到一个目标数组,我设置一个EditText和一个Button来添加数 ...
- [转]编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
看原文请移步:编写 android.mk 中 LOCAL_C_INCLUDES 的技巧 在编写android.mk的过程中,免不了要修改LOCAL_C_INCLUDES来设置头文件的include目录 ...
- [转]编写Android.mk中的LOCAL_SRC_FILES的终极技巧
希望看原文的请移步:[原创]编写Android.mk中的LOCAL_SRC_FILES的终极技巧 问题的引入 在使用NDK编译C/C++项目的过程中,免不了要编写Android.mk文件,其中最重要的 ...
- 利用Android Studio编写 Android上的c与c++程序
利用Android Studio编写 Android上的c与c++程序 (2017-05-22 19:01:20) 转载▼ 标签: android 分类: Android开发 原文链接: http:/ ...
- 自己编写Android Studio插件 别停留在用的程度了(转载)
转自:自己编写Android Studio插件 别停留在用的程度了 1概述 相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率,更 ...
- 编写Android.mk中的LOCAL_SRC_FILES的终极技巧(转)
转自:http://blog.csdn.net/fu_zk/article/details/12836431 问题的引入 在使用NDK编译C/C++项目的过程中,免不了要编写Android.mk文件, ...
- Flash Android ANE打包之基本流程
搭建环境这里就不详细说明了 一.Android本地库编写 1.从Flash Air SDK中提取需要的jar包 Android下需要的jar包在Flash Air SDK/lib/android目录下 ...
随机推荐
- Java 使用jaxp删除节点
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <perso ...
- RDIFramework.NET ━ 9.15 个性化设置 ━ Web部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 9.15 个性化设置 -Web部分 个性化设置,主要针对用户的偏好对界面进行设置,主界面如下: 9.15.1界面皮肤设置 目前框 ...
- sharding-jdbc-how2work 当当的sharding-jdbc剖析(查询)
1. 以JDBC作为出发点 1.1 重新实现了JDBC的几个接口 实现javax.sql.DataSource接口 ShardingDataSource实现java.sql.Connection接口 ...
- 使用Go开发HTTP中间件
原文地址 再web开发的背景下,"中间件"通常意思是"包装原始应用并添加一些额外的功能的应用的一部分".这个概念似乎总是不被人理解,但是我认为中间件非常棒 ...
- 结合WebSocket编写WebGL综合场景示例
在WebGL场景中导入多个Babylon骨骼模型,在局域网用WebSocket实现多用户交互控制. 首先是场景截图: 上图在场景中导入一个Babylon骨骼模型,使用asdw.空格.鼠标控制加速度移动 ...
- C# 类的属性
属性是一个方法或者一对方法.客户端看来是一个字段. 定义属性 public int StudyHours{ //啥不写,默认有get;set; 和后备字段studyHours是private的 get ...
- 理解NDCG
关于NDCG,wiki给点解释很详细,这里我谈谈我的理解. NDCG(Normalized discounted cumulative gain):是用来衡量排序质量的指标. 其中一种计算公式如下: ...
- CPU cache
cache是一种小而快的缓冲器,用在CPU和main memory之间进行数据读写. 在processor访问主memory时,首先检查cache中是不是有一份copy,如果cache hit,则直接 ...
- ADO.NET 新特性之SqlBulkCopy
在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便.而 在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们 ...
- getopt解析命令行参数一例:汇集多个服务器的日志
高效工作的一个诀窍就是尽可能自动化, 简便化. 比如, 公司里, 要搜索多个集群下的应用日志来排查问题, 需要使用 pssh: pssh -i -h api_hangzhou.iplist " ...