AIR Native Extension on Android - Hello World(3) Android开发

转载:http://sswilliam.blog.163.com/blog/static/1896963832011910101142574/


开发准备

Flash Builder 4.5 with AIR 3 SDK

AIR3 SDK下载:http://www.adobe.com/special/products/air/sdk/

不得不说这个链接隐藏的很好。找了好久才找到- =!。下载后解压,覆盖原有的SDK即刻

Eclipse with Android SDK

Native Extension - Hello World

下面我们以Android上的NativeExtension开发为例,实现一个最简单的hello worlddemo

整个Hello World项目会分成三部分:Android项目,Flex Library库项目和Flex Mobile项目。其中Android项目和Flex Library库项目构成了NativeExtension项目,Flex Mobile

Android

Android部分主要是java的开发,所需要用到的类库和相应的类会在下面的步骤中详细讲解。

1. eclipse中新建一个Android项目,设置好包名,注意不要勾选创建Activity。值得注意的是,Android AIR app与其他的Android App有所不同。 Android AIR app只有一个Activity,所以这里不需要创建Activity。而且在AIR NativeExtension项目中,我们只使用android的一些本地代码而非android的项目,因此,android项目中的AndroidManifest.xml不会被应用到最终的AIR app中。AIR app中的AndroidManifest.xmlAIR根据app-xml自动生成。

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

 

2. 将项目的类型设为Library型

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

右击项目,选择Properties

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

选中Android标签,勾选is Library

 

3. 导入NativeExtension所需的Jar包

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

Jar包位置

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

properties面板中,选择Java Build Path,在Libraries tab中点击Add Extension JARs,在对话框中选中AIR SDK FlashRuntimeExtensions.jar

4. 设定src/gen下的代码不会被包括在项目中。

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

Properties面板中的Java Build Path里进入Source tab。在/gen中选中Included,点击Edit按钮

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

添加一个nothingInclusion pattern

5. 在项目中添加相应的Java实现代码

AIR Native Extension on Android - Hello World(3) Android开发 - sswilliam - 闪闪小巴依

HelloContext.java代码:

package net.sswilliam.ane.helloworld;

 

import java.util.HashMap;

import java.util.Map;

 

 

import com.adobe.fre.FREContext;

import com.adobe.fre.FREFunction;

 

public class HelloContext extends FREContext {

 

    public static final String HELLO_WORLD_FUNCTION ="hello_world_function";

    @Override

    public void dispose() {

       // TODO Auto-generated method stub

 

    }

 

    @Override

    public Map<String, FREFunction> getFunctions() {

       // TODO Auto-generated method stub

       Map<String, FREFunction> map = new HashMap<String, FREFunction>();

       //将函数和自定义字符串进行映射

       map.put(HELLO_WORLD_FUNCTIONnew HelloWorldFunction());

       return map;

    }

 

}

 

HelloExtension代码:

package net.sswilliam.ane.helloworld;

 

import com.adobe.fre.FREContext;

import com.adobe.fre.FREExtension;

 

public class HelloExtension implements FREExtension {

 

    public FREContext createContext(String arg0) {

       // TODO Auto-generated method stub

       return new HelloContext();

    }

 

    public void dispose() {

       // TODO Auto-generated method stub

 

    }

 

    public void initialize() {

       // TODO Auto-generated method stub

 

    }

 

 

}

 

HelloWorldFunction代码

package net.sswilliam.ane.helloworld;

 

import com.adobe.fre.FREContext;

import com.adobe.fre.FREFunction;

import com.adobe.fre.FREObject;

 

public class HelloWorldFunction implements FREFunction {

 

    public FREObject call(FREContext arg0, FREObject[] arg1) {

       // TODO Auto-generated method stub

       FREObject result = null;

       try{

 

           result = FREObject.newObject("hello "+arg1[0].getAsString());

           //注意参数是一个FREObject数组,需要进行强制转换

       }catch (Exception e) {

           // TODO: handle exception

       }

       return result;

    }

 

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值