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 world的demo。
整个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.xml由AIR根据app-xml自动生成。
2.将项目的类型设为Library型
右击项目,选择Properties
选中Android标签,勾选is Library
3.导入NativeExtension所需的Jar包
Jar包位置
在properties面板中,选择Java Build Path,在Libraries tab中点击Add Extension JARs,在对话框中选中AIR SDK中FlashRuntimeExtensions.jar
4.设定src/gen下的代码不会被包括在项目中。
在Properties面板中的Java Build Path里进入Source tab。在/gen中选中Included,点击Edit按钮
添加一个nothing的Inclusion 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; }
} |
更多相关文章
- React Native【1.搭建项目HelloWord】
- MPAndroidChart项目实战——MarkerView显示问题解决
- android代码中打开系统设置界面
- Android.text.TextUtils类
- 在notification中设置PendingIntent
- 使用一:ButterKnife
- Android(安卓)应用开发笔记 - 下拉列表(Spinner)
- Android:腾讯buglyDefaultApplicationLike这个类找不到,及接入腾讯
- AttachCurrentThread报错