ANE打包
哈哈,曾经梦寐以求的ANE终于弄成功了一个。说实话,学java和Android就是为了写ANE!好啦,今天把我体会到的记录一下:
网上其实打包ANE的教程好多,我也找了好多好多。但是好多我自己试了还是没有弄成功,可能是我智商有问题。
我使用的工具:
Eclipse-ADT
flashBuilder
flash cs6
flex中创建项目:



As源码:
package randy.util.log
{
import flash.external.ExtensionContext; public class LogUtil
{
private static var _extensionContext:ExtensionContext=null;
private static const EXTENSION_ID:String="randyUtilLog";
private static const LOG_FUNCTION:String="fn_log"; public static const DEBUG:String="debug";
public static const VERBOSE:String="verbose";
public static const INFO:String="info";
public static const WARN:String="warn";
public static const ERROR:String="error"; public static function log(msg:String,level:String=LogUtil.INFO,tag:String="非若"):void
{
if(!_extensionContext)
{
_extensionContext=ExtensionContext.createExtensionContext(EXTENSION_ID,null);
}
_extensionContext.call(LOG_FUNCTION,msg,level,tag);
}
}
}
拿出我们需要的swc文件ANE_log.swc !
然后在Eclipse-ADT中创建android项目:

然后给项目添加 FlashRuntimeExtensions.jar
Jar文件在flashBuilder安装文件下sdks/4.6.0/lib/android目录下面;我的是D盘,4.6.0版本;

可以直接ctrl+C、ctrl+V到android项目文件里面的lib文件夹路径就OK啦

然后就开始java类编辑:

Java源码:
package randy.util.log;
import java.util.Map;
import java.util.HashMap;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
public class LogContext extends FREContext {
private static Map<String,FREFunction> functions=null;
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public Map<String, FREFunction> getFunctions() {
if(functions==null){
functions=new HashMap<String,FREFunction>();
functions.put(LogFunction.FUNCTION_KEY, new LogFunction());
}
return functions;
}
}
/*****************************************************************************/
package randy.util.log;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREExtension;
public class LogExtension implements FREExtension {
private LogContext logExtension=null;
@Override
public FREContext createContext(String arg0) {
if(logExtension==null){
logExtension=new LogContext();
}
return logExtension;
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void initialize() {
// TODO Auto-generated method stub
}
}
/************************************************************************/
package randy.util.log;
import android.util.Log;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;
public class LogFunction implements FREFunction {
public static final String FUNCTION_KEY="fn_log";
@Override
public FREObject call(FREContext arg0, FREObject[] arg1) {
try{
String msg=arg1[0].getAsString();
String level=arg1[1].getAsString();
String tag=arg1[2].getAsString();
if("debug".equals(level)){
Log.d(tag, msg);
}else if("verbose".equals(level)){
Log.v(tag, msg);
}else if("info".equals(level)){
Log.i(tag, msg);
}else if("warn".equals(level)){
Log.w(tag, msg);
}else if("error".equals(level)){
Log.e(tag, msg);}
}catch(Exception e){}
return null;
}
}
到此,就OK了第二步!

然后点击java文件包右击到处我们要用到的jar文件:


点击finish完成!
然后让我们来创建数字证书:
打开flashcs6:
创建一个AIR for Android项目



然后点击确定,证书就创建好在桌面了
然后新建一个文件夹在桌面,比如log

Adt.jar在flashbuilder安装目录lib下可以复制粘贴过来

然后复制swc文件,并将扩展名改为zip,双击进去

把里面的文件解压出来
然后就差一个描述文件咯
新建记事本

输入:
<extension xmlns="http://ns.adobe.com/air/extension/3.1">
<id>randyUtilLog</id>
<versionNumber>1</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>aneLog.jar</nativeLibrary>
<initializer>randy.util.log.LogExtension</initializer>
<finalizer>randy.util.log.LogExtension</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>
Txt改为xml
就像这样

然后桌面键+R,输入cmd,确定:

进入adt.jar所在文件路径:
Cd C:\Users\feiruo\Desktop\log

然后输入打包命令行:
java -jar adt.jar -package -tsa none -storetype pkcs12 -keystore feiruo.p12 -storepass 123456 -target ane ExtensionLog.ane extension.xml -swc ANE_log.swc -platform Android-ARM library.swf aneLog.jar
-keystore feiruo.p12:数字证书的名字
-storepass 123456:数字证书密码
-target ane ExtensionLog.ane:要打包ANE的名字
extension.xml:描述文件
-swc ANE_log.swc:swc库文件
然后log文件夹下会生成一个ExtensionLog.ane文件

ANE打包的更多相关文章
- ANE打包工具使用视频教程 -- 梦宇技术 @极客学院
来源:http://xtiqin.blog.163.com/blog/static/17017217920133584934827/ ANE打包工具使用视频教程 2013-04-05 08:49:34 ...
- Flash Android ANE打包之基本流程
搭建环境这里就不详细说明了 一.Android本地库编写 1.从Flash Air SDK中提取需要的jar包 Android下需要的jar包在Flash Air SDK/lib/android目录下 ...
- ANE打包心得
1 ane中的p12证书是fb或者flashide中生成的(例如air工程生成的p12),不是苹果账号的p12 2 打包bat中的 -platform 要和 extension.xml中的platfo ...
- Air for ANE:打包注意的地方
来源:http://blog.csdn.net/hero82748274/article/details/8631982 今天遇到了一个打包ANE 文件的问题,导致花费了几个小时查找,最后师弟的一句话 ...
- ANE接入平台心得记录(安卓)
开发环境:FlashBuilder4.7 AIR13.0 Eclipse 由于我懒得陪安卓的开发环境所以我下载了包含安卓SDK Manager的Eclipse,其实直接用FlashBuilder开发A ...
- 开发QQ互联ios版Ane扩张 辛酸史
来源:http://www.myexception.cn/operating-system/1451490.html 开发QQ互联ios版Ane扩展 辛酸史 开发QQ互联ios版Ane扩展辛酸史: 1 ...
- 打包ane之后在FB上生成ipa的阶段错误
1. 初次打包 碰到这个错误得 就是你mac 上jre版本的问题 此时用 FB 必须是跑在jre1.6版本上的 我得是1.8 上图 版本可以自己查下 已经截图了 而且 你如果想要下载 1.6版本的 就 ...
- Flash Air 打包安卓 ane
工具: 1.flash builder 2.adt打包工具 3.数字证书 一. 创建 jar 文件 1. 打开flash builder, 新建一个java 项目. 2.点击项目属性,选择Java构建 ...
- 打包制作 ANE
一.打包ANE 1.ios 准备文件: anePackager.bat aneswc.swc extension.xml flashAne.ane ioslib.a library.swf platf ...
随机推荐
- 在 ServiceModel 客户端配置部分中,找不到引用协定“XXX”的默认终结点元素
一.问题 在调用远程web services接口时出现了以下问题: 二.可能的原因和解决方法 网站根目录里的web.config文件缺少了相应的配置信息 <?xml version=" ...
- Django——12 中间件 上下文处理器 admin后台
Django 中间件 中间件介绍 中间件的第一个例子 中间件的第二个例子 上下文处理器 admin后台管理 中间件 Django中间件(Middleware)是一个轻量级.底层的“插件”系统,可以 ...
- install pip 回顾
在install pip的时候遇到如下问题 1. yum install 想安装一个package 总是提示没有package 可以安装. 但是后来可以了 2. make 和 configure 到底 ...
- 学习C#和SQL的书籍
1. <21天学通C#> 周红安等编著 电子工业出版社 2. http://blog.csdn.net/21aspnet/article/details/1682200 3. < ...
- 好记性不如烂笔头——WebService与Remoting
一.WebService总体上分为5个层次: 1)HTTP传输信道 2)XML的数据格式 3)SOAP的封装协议,用于传输 4)WSDL的描述方式,用于引用 5)UDDI,通用描述.发现与集成服务,用 ...
- Linux vs Window
目前国内Linux更多的是应用于服务器上,而桌面操作系统更多使用的是Window.主要区别如下: 比较 Windows Linux 界面 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷 ...
- luogu3390 矩阵快速幂
矩阵A乘矩阵B是A的第i行向量乘以B的第j列向量的值放在结果矩阵的i行j列.因为矩阵乘法满足结合律,所以它可以与一般的快速幂算法同理使用.注意矩阵在乘的时候取模. #include <cstdi ...
- mongodb 对内存的占用监控 ——mongostat,linux系统可用的内存是free + buffers + cached
刚开始使用mongodb的时候,不太注意mongodb的内存使用,但通过查资料发现mongodb对内存的占用是巨大的,在本地测试服务器中,8G的内存居然被占用了45%.汗呀. 本文就来剖析一下mong ...
- python lmdb demo 这接口和BDB一样恶心啊!
import lmdb lmdb_img_name = "test.lmdb" env = lmdb.open(lmdb_img_name, map_size=1e6) with ...
- 线性回归(最小二乘法、批量梯度下降法、随机梯度下降法、局部加权线性回归) C++
We turn next to the task of finding a weight vector w which minimizes the chosen function E(w). Beca ...