转载: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自动生成。

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

右击项目,选择Properties

选中Android标签,勾选is Library

3.导入NativeExtension所需的Jar包

Jar包位置

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

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

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

添加一个nothingInclusion pattern

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

HelloContext.java代码:

packagenet.sswilliam.ane.helloworld;

importjava.util.HashMap;

importjava.util.Map;

importcom.adobe.fre.FREContext;

importcom.adobe.fre.FREFunction;

publicclassHelloContextextendsFREContext {

publicstaticfinalStringHELLO_WORLD_FUNCTION="hello_world_function";

@Override

publicvoiddispose() {

//TODOAuto-generated method stub

}

@Override

publicMap<String, FREFunction> getFunctions() {

//TODOAuto-generated method stub

Map<String, FREFunction> map =newHashMap<String, FREFunction>();

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

map.put(HELLO_WORLD_FUNCTION,newHelloWorldFunction());

returnmap;

}

}

HelloExtension代码:

packagenet.sswilliam.ane.helloworld;

importcom.adobe.fre.FREContext;

importcom.adobe.fre.FREExtension;

publicclassHelloExtensionimplementsFREExtension {

publicFREContext createContext(String arg0) {

//TODOAuto-generated method stub

returnnewHelloContext();

}

publicvoiddispose() {

//TODOAuto-generated method stub

}

publicvoidinitialize() {

//TODOAuto-generated method stub

}

}

HelloWorldFunction代码

packagenet.sswilliam.ane.helloworld;

importcom.adobe.fre.FREContext;

importcom.adobe.fre.FREFunction;

importcom.adobe.fre.FREObject;

publicclassHelloWorldFunctionimplementsFREFunction {

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

//TODOAuto-generated method stub

FREObject result =null;

try{

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

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

}catch(Exception e) {

//TODO: handle exception

}

returnresult;

}

}


更多相关文章

  1. React Native【1.搭建项目HelloWord】
  2. MPAndroidChart项目实战——MarkerView显示问题解决
  3. android代码中打开系统设置界面
  4. Android.text.TextUtils类
  5. 在notification中设置PendingIntent
  6. 使用一:ButterKnife
  7. Android(安卓)应用开发笔记 - 下拉列表(Spinner)
  8. Android:腾讯buglyDefaultApplicationLike这个类找不到,及接入腾讯
  9. AttachCurrentThread报错

随机推荐

  1. Android(安卓)7.0调用系统相机返回路径问
  2. Android监听Dialog点击外部区域
  3. Android输入框中提示自动输入内容
  4. 禁止状态栏下拉
  5. android 背光控制 HAL层分析
  6. Android(安卓)intent 传递数组对象序列化
  7. Android(安卓)文件打开方式
  8. android 首页fragment切换
  9. 更换工程的sdk或者google apis
  10. Android(安卓)Activity设置全屏