黑莓开发学习(入门教程)
01.1-开发环境
01.2-阅读对象
01.3-学习资源
BlackBerry Developer Zone - http://na.blackberry.com/eng/developers/
BlackBerryForums Developer Forum - http://www.blackberryforums.com/developer-forum/
官网的知识库 http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/customview.html?func=ll&objId=348583
02-开发环境搭建
摘要:黑莓开发环境的搭建,说简单也简单,说复杂也复杂。简单就是安装了JDE基本就可以了,复杂就是安装过程会遇到种种奇怪的问题--不信可以google一下,迷惘的TX有很多。这一章图文并茂展示了开发环境的搭建,照猫画虎实施下来,基本可以一次成功。
02.2-需要的软件
02.3-搭建步骤
02.3.1-下载JDK SE和BlackBerry JDE 4.5.0。
02.3.2-设置系统参数
02.3.3-设置JDE
02.3.4-设置模拟器
<Application>net.rim.blackberry.lang.zh_CN.renderingSupport</Application>
<Application>net.rim.java.memopad</Application>
<Application>net.rim.java.passwordkeeper</Application>
<Application>net.rim.java.browser.javascript</Application>
<Application>net.rim.java.maps</Application>
<Application>net.rim.java.blackberrymessenger</Application>
02.4-其他开发环境的搭建
03-经典的HelloWorld程序
03.1-思维导图
03.2-建立工作区
03.3-建立项目文件
03.4-建立程序文件
删除自动生成的程序代码,将如下代码复制拷贝进去:
/*
作者:小叶 xiaoye.org
发布:http://hi.baidu.com/netis
可以任意转载, 转载时请务必以超链接形式标明文章原始出处和作者信息
*/
package src;
//导入库
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;
public class HelloWorld extends UiApplication {
//程序的构造函数
public HelloWorld() {
HelloWorldScreen screen = new HelloWorldScreen();
pushScreen(screen);
}
//程序的入口函数 java程序运行都需要这个 否则会提示找不到main的提示
public static void main(String[] args) {
HelloWorld app = new HelloWorld();
app.enterEventDispatcher();
}
//窗口类
public class HelloWorldScreen extends MainScreen {
public HelloWorldScreen() {
add(new LabelField("Hello World!"));
}
}
}
03.5-编译
03.6-运行
03.7-程序发布
04-标准界面的HelloWorld程序
04.1-思维导图
04.1-为程序添加图标
04.2-设置程序标题
LabelField title = new LabelField("Hello World",Field.FIELD_HCENTER);
this.setTitle(title);
04.3-设置程序主界面的背景
要实现这个功能需要分两步,
第一步:从容器控件VerticalFieldManager基础一个新布局控件BackgroundManager,增加一个背景颜色的属性,并通过重载VerticalFieldManager的paintBackground来实现自定义设置的显示。
public static class BackgroundManager extends VerticalFieldManager
{
private int bgColor = Color.NAVY;
public BackgroundManager()
{
super( USE_ALL_HEIGHT | NO_VERTICAL_SCROLL | NO_VERTICAL_SCROLLBAR );
bgColor = Color.NAVY;
}
public BackgroundManager(int bgcolor)
{
super( USE_ALL_HEIGHT | NO_VERTICAL_SCROLL | NO_VERTICAL_SCROLLBAR );
bgColor = bgcolor;
}
//重新设置程序背景色彩
protected void paintBackground(Graphics g)
{
g.setBackgroundColor(bgColor);
g.clear();
super.paint(g);
}
}
BackgroundManager mgr = new BackgroundManager(Color.MEDIUMAQUAMARINE);
//添加一个输入域
edtName = new BasicEditField("输入您的姓名: ","小叶", 20,Field.FIELD_LEFT );
mgr.add(edtName);
//添加一个按钮 点击后根据输入的内容提示
btnShow = new ButtonField("显示欢迎信息",Field.FIELD_HCENTER | ButtonField.CONSUME_CLICK );
btnShow.setChangeListener(this);
mgr.add(btnShow);
this.add(mgr);
04.4-增加一个用户输入域
private BasicEditField edtName = null; //姓名输入域
edtName = new BasicEditField("输入您的姓名: ","小叶", 20,Field.FIELD_LEFT );
mgr.add(edtName);
04.5-添加一个按钮
btnShow = new ButtonField("显示欢迎信息",Field.FIELD_HCENTER | ButtonField.CONSUME_CLICK );
btnShow.setChangeListener(this);
mgr.add(btnShow);
this.add(mgr);
public void fieldChanged(Field field, int ctx)
{
if (field == btnShow) {
Dialog.alert("欢迎您-"+edtName.getText());
}
};
04.6-自定义菜单
public MenuItem showItem= new MenuItem("*显示欢迎信息", 160, 10 )
{
public void run()
{
Dialog.alert("欢迎您-"+edtName.getText());
}
};
//定义显示关闭菜单项目
public MenuItem closeItem= new MenuItem("*退出", 170, 10 )
{
public void run()
{
onClose();
}
};
protected void makeMenu(Menu menu, int instance)
{
menu.add(showItem);
menu.add(closeItem);
}
04.7-完整代码
主程序HelloWorld.java
HelloWorld.java
主程序
作者:小叶 xiaoye.org
发布:http://hi.baidu.com/netis
可以任意转载, 转载时请务必以超链接形式标明文章原始出处和作者信息
*/
package src;
//导入库
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;
public class HelloWorld extends UiApplication {
//程序的构造函数
public HelloWorld() {
HelloWorldScreen screen = new HelloWorldScreen();
pushScreen(screen);
}
//程序的入口函数 java程序运行都需要这个 否则会提示找不到main的提示
public static void main(String[] args) {
HelloWorld app = new HelloWorld();
app.enterEventDispatcher();
}
}
窗口类HelloWorldScreen.java
HelloWorldScreen.java
窗口类 实现了程序的用户界面
作者:小叶 xiaoye.org
发布:http://hi.baidu.com/netis
可以任意转载, 转载时请务必以超链接形式标明文章原始出处和作者信息
*/
package src;
//导入库
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.system.Display;
//窗口类
final class HelloWorldScreen extends MainScreen implements FieldChangeListener {
//定义类的元素
private BasicEditField edtName = null; //姓名输入域
private ButtonField btnShow = null; //显示按钮
//构造函数
public HelloWorldScreen() {
//父类的事件 显示默认的上下文菜单
super(DEFAULT_MENU | DEFAULT_CLOSE);
//设置程序的标题
LabelField title = new LabelField("Hello World",Field.FIELD_HCENTER);
this.setTitle(title);
//背景容器实例
BackgroundManager mgr = new BackgroundManager(Color.MEDIUMAQUAMARINE);
//添加一个输入域
edtName = new BasicEditField("输入您的姓名: ","小叶", 20,Field.FIELD_LEFT );
mgr.add(edtName);
//添加一个按钮 点击后根据输入的内容提示
btnShow = new ButtonField("显示欢迎信息",Field.FIELD_HCENTER | ButtonField.CONSUME_CLICK );
btnShow.setChangeListener(this);
mgr.add(btnShow);
this.add(mgr);
}
//定义显示信息菜单项目
public MenuItem showItem= new MenuItem("*显示欢迎信息", 160, 10 )
{
public void run()
{
Dialog.alert("欢迎您-"+edtName.getText());
}
};
//定义显示关闭菜单项目
public MenuItem closeItem= new MenuItem("*退出", 170, 10 )
{
public void run()
{
onClose();
}
};
//重载makeMenu 添加自定义的菜单
protected void makeMenu(Menu menu, int instance)
{
menu.add(showItem);
menu.add(closeItem);
}
//处理按钮事件
public void fieldChanged(Field field, int ctx)
{
if (field == btnShow) {
Dialog.alert("欢迎您-"+edtName.getText());
}
};
//重载onClose, 退出时提示
public boolean onClose()
{
if ( Dialog.ask(Dialog.D_YES_NO, "确定退出吗?") == Dialog.YES )
{
System.exit(0);
return true;
}
return false;
}
//定义一个窗口布局控件 主要是为了能改变窗口背景颜色
public static class BackgroundManager extends VerticalFieldManager
{
private int bgColor = Color.NAVY;
public BackgroundManager()
{
super( USE_ALL_HEIGHT | NO_VERTICAL_SCROLL | NO_VERTICAL_SCROLLBAR );
bgColor = Color.NAVY;
}
public BackgroundManager(int bgcolor)
{
super( USE_ALL_HEIGHT | NO_VERTICAL_SCROLL | NO_VERTICAL_SCROLLBAR );
bgColor = bgcolor;
}
//重新设置程序背景色彩
protected void paintBackground(Graphics g)
{
g.setBackgroundColor(bgColor);
g.clear();
super.paint(g);
}
}
}
05-再说开发环境和入门阶段的一些问题
摘要:按照教程按图索骥,应该是可以写一个像样的HelloWorld程序了。但学习编程不是就此止步,需要解决实际的问题。开发一个构思中的软件需要一个好的开发环境、入门过程中也遇到了一些问题、如何快速提高编写代码的水平......等等诸如此类的问题也浮上水面。
第二章“02-开发环境搭建”提到了两种方法:使用BlackBerry JDE 4.5.0或eclipse+bb-ant,前者不利于代码效率,后者配置太复杂了,变更一个Wordspace需要重头来一遍。使用下来还是eclipse+BlackBerry_JDE_plug-in_for_Eclipse比较实用和易用。
BlackBerry_JDE_plug-in_for_Eclipse可以从BlackBerry的官方网站上下载,JDE限制中国大陆的IP地址下载,但是这个插件在填写一些简单的资料后可以下载。下载地址:http://na.blackberry.com/eng/developers/javaappdev/javaeclipseplug.jsp 。
下图为下载前需要填写资料的表单:
BlackBerry_JDE_plug-in_for_Eclipse支持的eclipse是3.4版本的,eclipse官方网站上现在提供的版本是3.5的,插件安装是提示版本过低,需要下载eclipse 3.4然后再安装插件。
一般使用Eclipse IDE for Java Developers 这个版本就可以了。
将eclipse3.4解压到一个目录,然后运行“BlackBerry_JDE_PluginFull_1.0.0.67.exe”安装BlackBerry_JDE_plug-in_for_Eclipse,在安装的过程中选择eclipse3.4目录。
安装完毕,设置JDE Version,eclipse菜单“Window->Preferences->BlackBerry”,配置BlackBerry JDE的参数。
中文化设置参见:“02-开发环境搭建-02.3.4-设置模拟器”,其中模拟器的目录改到eclipse下,如:
D:/eclipse3.4/plugins/net.rim.eide.componentpack4.5.0_4.5.0.16/components/simulator
05.2-使用eclipse写黑莓程序
05.2.01-Eclipse 菜单 File->New->Project
点击“Next”建立一个HelloWorld的项目,项目文件结构清单如下:
05.2.02-建立程序文件
eclipse菜单“File->New->Class”,建立一个新的Java Class文件“HelloWorld”作为主程序。
在建立一个新的Java Class文件“HelloWorldScreen”作为主窗口类。
HelloWorld.javaHelloWorldScreen.java
作者:小叶xiaoye.org
发布:http://hi.baidu.com/netis
可以任意转载, 转载时请务必以超链接形式标明文章原始出处和作者信息
*/
import net.rim.device.api.ui.UiApplication;
public class HelloWorld extends UiApplication {
public HelloWorld() {
HelloWorldScreen screen = new HelloWorldScreen();
pushScreen(screen);
}
public static void main(String[] args) {
HelloWorld app = new HelloWorld();
app.enterEventDispatcher();
}
}
作者:小叶 xiaoye.org
发布:http://hi.baidu.com/netis
可以任意转载, 转载时请务必以超链接形式标明文章原始出处和作者信息
*/
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;
public class HelloWorldScreen extends MainScreen {
public HelloWorldScreen() {
add(new LabelField("Hello World!"));
}
}
05.2.03-编译
项目选项中选择了Build Automatically,eclipse已自动编译文件了。
修改代码后,Alt+B重新生成程序。
05.2.03-调试和运行
设置调试参数,点击调试图标打开Debug Configurations。
在设置画面中选择模拟器参数
后续开发就可以直接点击这个“BB8820”运行了。
05.3-加速程序的调试
在开发过程中发现,调试或运行程序的过程中,每次点击前述配置文件“BB8820”运行,需要相当长时间才能完成模拟器加载、程序运行。在不需要对程序设置断点跟踪的情况下,可以通过如下方式快速看到程序运行的结果。
(1)运行JDE安装目录下的“C:/Program Files/Research In Motion/BlackBerry JDE 4.5.0/simulator/fledgelauncher.exe”,启动模拟器;
(2)模拟器菜单“File->Load Java Programe......”,打开项目所在目录下的“HelloWorld.cod”,模拟器会重新加载程序,点击程序运行即可看到运行效果。节省了模拟器启动的时间。
05.4-API库的选中和签证
如果使用net.rim.blackberry开头的blackberry专用的API,大多数API需要取得BlackBerry的签证才可以使用。在程序中使用这些专用的API,模拟器可以运行但是无法运行在设备上。
05.4-学习优秀代码
开发程序,学习优秀的代码可以起到事半功倍的作用。LogicMail是一个J2ME E-Mail客户端支持IMAP和POP协议,可以运行在OS 4.2以上版本的BB中。这是一个开源的软件,可以从这里查看其源代码,可以学习到许多。
RIM公司为BlackBerry开发提供了多种开发平台,不同平台的开发人员可以选择自己熟悉的开发工具,但是个人觉得还是BlackBerry JDE Plub-In for Eclipse最好用
首先安装JDK,官方下载地址:http://java.sun.com/javase/downloads/index.jsp
Eclipse官方下载地址:http://www.eclipse.org/downloads/,Eclipse是一个硬盘程序,一般把下载的压缩文件解压就可以使用。
BlackBerry JDE Plug-In for Eclipse下载地址:http://www.blackberry.com/developers
黑莓开发学习(入门教程)相关推荐
- 黑莓开发学习入门系列,自己动手实现一个日历软件(六)
最近有点乱糟糟,还是继续写完剩下的: 根据 黑莓开发学习入门系列,自己动手实现一个日历软件(二)实现一个黑莓应用程序最基本的结构,我们真正的可以实现日历了: 新建一个工程 calender:作为日历的 ...
- jsx 调用php,JavaScript_JavaScript的React框架中的JSX语法学习入门教程,什么是JSX?
在用React写组件的 - phpStudy...
JavaScript的React框架中的JSX语法学习入门教程 什么是JSX? 在用React写组件的时候,通常会用到JSX语法,粗看上去,像是在Javascript代码里直接写起了XML标签,实质上 ...
- 微信小程序云开发 初学者入门教程二
微信小程序云开发 初学者入门教程二-前端操作数据库模块 如何操作数据库,作为一名前端,如果对数据的知识不够熟悉也没关系,从现在开始好好学习就行,数据库的操作内容差不多涉及增删改查四大模块,花一些业余的 ...
- HarmonyOS2.0 华为鸿蒙开发学习实战教程
据统计,鸿蒙系统升级用户2周破1800万,1个月突破3000万.升级速度完全超出市场预期,很显然,华为严重低估了消费者的支持热情.随即,华为鸿蒙目标多次升级,从2亿到4亿,后年目标12.3亿. 而且, ...
- HealthKit开发快速入门教程大学霸内部教程
HealthKit开发快速入门教程大学霸内部教程 国内第一本HealthKit专向教程.本教程详细讲解iOS中,如何使用HealthKit框架开发健康应用.最后,本教程结合HealthKit ...
- Apple Watch开发快速入门教程
Apple Watch开发快速入门教程 试读下载地址:http://pan.baidu.com/s/1eQ8JdR0 介绍:苹果为Watch提供全新的开发框架WatchKit.本教程是国内第一本A ...
- 游戏控制杆OUYA游戏开发快速入门教程
游戏控制杆OUYA游戏开发快速入门教程 1.2.2 游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4 游戏控制杆各个角度的 ...
- OUYA游戏开发快速入门教程1.2OUYA的硬件规格
OUYA游戏开发快速入门教程1.2OUYA的硬件规格 从官网上购买回来的OUYA产品,包含游戏主机.游戏控制杆.说明书.电源线.HDMI线.电源线和电池,如图1-2所示.本节就来简要介绍下,游戏主机和 ...
- OUYA游戏开发快速入门教程第1章了解OUYA及其设备
OUYA游戏开发快速入门教程第1章了解OUYA及其设备 OUYA是基于Andorid系统的游戏主机.围绕OUYA游戏机,已经形成一个完整的生态圈.在国外,OUYA已经成为知名的游戏平台.本章会站在玩家 ...
- OUYA游戏开发快速入门教程
OUYA游戏开发快速入门教程 试读地址:http://pan.baidu.com/s/1o63a3W2 本教程是国内唯一OUYA游戏开发教程.本教程基于Unity全面讲解OUYA游戏开发方式.内容包 ...
最新文章
- Python切分图像小案例(1、3、2、4象限子图互换)
- 17委托异步调用方法
- semantic-ui-react图像组件不显示图像的问题
- 获香港证监会颁发牌照的弘量研究,正用智能投顾帮助金融机构降低成本,提升资产管理能力 By 藤子2017年10月09日 17:16 撰文 | 藤子 2015 年,雷春然和黄耀东都是在香港科技大学的
- 重理工c语言实验指导书答案,常熟理工学院 C语言程序设计实验实验指导书及答案...
- 【译】A Beginner-Friendly Introduction to Containers, VMs and Docker
- [原创].如何解决Nios II SBTE中出现的undefined reference to `xxx'警告
- 【Python基础知识-pycharm版】第十节_异常
- linux运维解决ddos,运维人员该如何排查并解决DDOS攻击
- mysql自动备份 linux_Linux下MySQL数据库自动定时备份
- 宁夏打造会思考更智能新型智慧城市
- 【3ds Max】FractureVoronoi碎裂插件生成破碎物体
- 响应式网页设计学习笔记
- 计算机专业专科可以进的国企,专科学这四个专业!考国企、事业编制会容易很多...
- Cookie、Session、Token与JWT解析
- matlab清除所有变量,但是除了某些变量
- 《机器学习实战》学习笔记第八章-回归
- java enum枚举型使用
- php5.3 register_globals,在PHP 5.3中PHP寄存器全局支持?(PHP register globals support in PHP 5.3?)...
- Oracle数据库远程连接的方法
热门文章
- win7 右下角显示时间日期
- 【AVD】FFmpeg 音频编码时 SampleFormat 的选择,报错 “Specified sample format s16 is invalid or not supported.“ 的解决
- 突发!AI视觉大牛陶大程被爆将离职京东探索研究院院长!
- WordPress REST API 主题
- Prometheus + Grafana 监控和告警
- 如何申请搜狐自媒体才能通过?
- BLHeli无刷电调 调参介绍 某宝八元电调
- LaTeX 书写 argmax and argmin 公式
- 组成原理|手持两把锟斤拷,口中疾呼烫烫烫
- 2006年最变态语录