在本文中,我将演示如何使用这个新平台。我见过很多开发人员被卡在了基础技术上。我将尽力说明例子的编写Hello World。以便,让任何个人可以走上开发之路并从此平台中获得益处。
注意:为了详细描述开发过程,我粘贴了一些图片。所以这篇文章看起来会比较长,其实,实用性却很高。
背景
下面有一些介绍什么是Oracle ADF Mobile的连接。因为马上就要开始演示使用新平台了,所以这些连接可以帮助你设置开发环境。
什么是 Oracle JDeveloper
什么是 Oracle ADF Mobile
开发 ADF Mobile 的环境
请浏览一下以上连接,并设置开发环境。如果有问题,请及时告知我。
代码
配置好开发环境。
下面就是ADF Mobile初学者需要学习的开发步骤。
在这节,我们将创建一个单击按钮,弹出Hello World的实例。
打开 JDeveloper Studio. 按下面的描述打开开发环境 Start->All Programs->Oracle Fusion Middleware 11.1.2.40->JDeveloper Studio 11.1.2.40.
.
如果弹出了Select Role,选择默认的Studio Developer (All Features) ,单击OK。
在顶级菜单栏选择Application单击New…
之后,会弹出一个对话框。该对话框将展示所有支持的项目类型。现在,我们选择Mobile Application (ADF),然后点击OK.
随后会弹出一个让你命名程序名称的对话框,在Application Name: 中输入程序名称。我把它取名叫做MyFirstApp ,在Application Package Prefix:中输入包的前缀。通常,练习中,我们习惯以小写字母命名包。我将它命名为:myapp。设置好程序加入前缀之后,点击Next.
在第一步,命名包,输入工程名称或者采用默认名称,比如ApplicationController。我们将使用默认名称。你可以改变文件路径或者采用默认路径。
在Java Settings页,使用默认设置,比如myapp.application,之后单击Next。
在Project 2 Name这个界面,使用默认设置,直接单击Next 按钮。
在Project 2 Java Settings界面,使用默认的包名,单击Finish按钮。
一旦单击Finish按钮,ADF将为你创建两个工程。你可以在IDE的左侧Project 面板中查看所有工程。当然,他也打开了adfmf-feature.xml也。你可以在这个文件中添加不同的特性。随后将详细描述该文件的作用。
当adfmf-feature.xml文件打开后,如果IDE没有打开该文件,请执行下列操作以便打开该文件ViewController->Application Sources->META-INF->adfmf-features.xml,在Features窗体中,选择单击
按钮向你的工程中添加新功能。
功能是一个组件或者程序的一个模型。它可以使一个网页(html或asmx),或者是一个工作流任务。如果你持续开发应用并且探索不同情景,我们将仔细介绍它的详细内容。
单击
将打开一个对话框。该对话框将提示输入功能名称。你可以对新加的功能随意命名。由于,我们开发的是手机程序,只有一个屏幕。所以,我们取名为FirstPage 。之后单击OK。
IDE将会把功能FirstPage 添加到xml功能文件(adfmf-feature.xml)中。放心,该文件会默认打开。
在Features页下方,你可以看到General页。进入Content 选项卡,你可以看到Id and Type输入框:内容会自动添加。留意到这个后,功能的类型是ADF Mobile AMX。你可以通过下拉列表改变它的名称。但是,我们这里将会以默认选项为例,进行示例开发。之后,单击File输入框对面的
.
当你单击File对面的
按钮时,它将显示两个选项,ADF Mobile AMX Page… 和 Task Flow。这里,选择第一个选项。
随后,将会弹出一个对话框,添加文件名。在Page Facets区域选中所有项并单击OK按钮。
现在,你可以看到first.amx页面了。在这个文件中对你的app进行UI设计。注意,我们只能用一个屏幕。 first.amx页的右下角,拖拽到左边。在右侧面板中,单击Preview选项卡。这样,你就可以预览你设计的UI。并且,在xml文件中做出的修改,也会体现出来。
现在从Component Palette中的Text and Selection中拖拽Output Text到first.amx页。
它将以OutputText1 作为默认值进行显示。注意:一定要把控件拖拽到源文件中,而不是预览界面中。
现在选择amx:outputText查看Property Inspector面板(右下角,在Component Palette下边)。我们将用Expression Builder来修改它的值。
在同样的属性检查窗体中,单击下拉列表的箭头,选择Expression Builder….
随后,将会弹出建立表达式的对话框。在表达式区域中,添加一个表达式#{viewScope.actionevent} ,之后单击OK。在下面的小节中,我们将会详细讨论viewScope的内容。
你注意到了没?把输出的文本变为表达式的变化在预览面板中显示了出来。
现在,就像拖拽OutputText一样,从控件面板中拖拽一个Button控件,放到first.amx页面里。把按钮控件放到amx:outputText.标签下。
现在,我们需要添加按钮事件的句柄。当一个按钮单击的时候,我们将会改变输入框的内容为Hello World。我们将使用Java Managed Beans类来实现这个功能。现在,保持选中amx:commandButton 或者选中按钮的空白区域。它将显示属性检查窗口,就像预览amx:outputText 控件一样。选中Button
Action 中的属性检查窗体。单击下拉列表中下的Action Listener,之后单击Edit…。
随后,IDE将打开一个指定Bean类的对话框。由于我们并没有创建一个bean类。所以,单击New 来新建一个类。
弹出的对话框将会有一些必填项,输入后,单击OK 。
弹出的对话框将会有一些必填项,输入后,单击OK 。
在我们添加bean类之后,我们需要编写单击按钮时触发的事件。所以单击New… 创建新方法。
输入方法名称,单击OK。
把类和方法都指定完毕后,单击OK按钮查看生成的类。生成的类位于ViewController->Application Sources->myapp.mobile->EventHandler.java。
双击该文件就可以查看类的内容了。这个类中,包含了默认的构造函数和前面添加的事件句柄的方法。
现在,在OnClick方法中,添加下列代码.
对了,我们需要添加两个引用:
· javax.el.ValueExpression
· oracle.adfmf.framework.api.AdfmfJavaUtilities.
现在,做完了!该向安卓模拟器添加部署你的程序了。
部署
为了创建一个安卓模拟器,进入安装安卓sdk的文件夹。进入tools 文件夹。以我为例,我的路径如下
:
D:AndroidSDKadt-bundle-windows-x86_64-20140321sdktools
在tools文件夹中运行android windows批处理文件。随后就会弹出一个窗体。在菜单中选择tools,之后单击Manage AVDs…。
随后就会显示出所有可用的设备到Android Virtual Device Manager 窗体中。以我为例,我已经创建了一个安卓虚拟机,我会用它来运行我的app。
注意:需要选择或者创建一个带有谷歌API的模拟器。
稍等片刻,就会出现安卓的开机界面。现在在JDeveloper的菜单中,选择Applications…. 之后选择Deploy 然后选择New Deployment Profile…。注意,你可以使用一个现有项。
在Profile Type下选择ADF Mobile for Android ,在Deployment Profile Name中输入任意名称。单击OK按钮。
随后,会弹出Properties窗体。
在Application Images中你可以指定一个图片作为你的图标。我们将选择默认图标。单击OK来创建一个部署文件。现在安卓模拟器正在运行,并且,现在,我们需要在模拟器中部署我们的app。
在JDeveloper中,进入Applications->Deploy 之后选择Emulator…。这是我们刚才创建的那个文件。
Ment一个Deploy Emulator 部署窗体将会弹出。选择Deploy application to Emulator 并单击Next.
带有Application Bundle Id File 和 Deployment Mode的程序概述将会向你展示。
现在单击Finish来启动部署。你可以在Deployment标签页下Deployment Log中看到部署的详细情况。
当部署完成后。将会显示部署简摘。部署可能需要几分钟,所以请耐心等候。
现在,在安卓模拟器中已经完成部署。单击菜单按钮,找到MyFirstApp 单击运行。
一个基于Oracle的闪动窗体就会显示。等它结束后,单击commandButton1来显示hello world文本。
输出Hello World。
至此,我们完成了创建和部署Hello World的程序。我希望这篇指导文章能帮助到你。
我的Bugs, feedback会一直保持登录状态。
兴趣点
我们学习了如何使用ADF Mobile来创建我们的app。这只是一个入门程序。也许,和本地开发安卓/ios程序比起来,它看起来会花费更多时间。但是,事实上,ADF Mobile能提高你的开发效率。比如一次开发,处处运行!一旦你开始利用它来开发app的话,你就会发现开发过程的重大不同!