BlackBerry PlayBook NDK 2.0样例分析之“HelloWorldConsole”


如上一篇提到的,BlackBerry PlayBook NDK 2.0正式版已经发布了(见 ),在该版本中增加了很多样例,不再是以前的4个简单样例。其中吸引我的包括样例“HelloWorldConsole”,这是一个真正的“Hello World”,程序非常非常简单,只是在控制台输出一个“Hello World”字样。

个人认为这种“Hello World”可以让初学者对于程序的运用过程有一个最简单的认识,是入门的必要素材之一。也正因为这样的原因,在2.0正式版发布前本人就尝试过运行这种最简单的PlayBook程序,目的是抛开屏幕初始化,图像显示的复杂课题,去理解一个PlayBook NDK程序的本质。

既然是最简单的“Hello World”,其实样例代码本身没有什么太大可以分析的,全部代码如下:

  1. #include <stdio.h>   
  2.   
  3. int main(int argc, char *argv[]) {  
  4.     fprintf(stderr, "Hello World!\n");  
  5.     return 0;  
  6. }  

该程序可以说是和经典c教程的Hello World样例一模一样,先是include stdio.h,然后是main函数入口,控制台输出,结束!

不过,该程序的运行过程却是值得注意一下,测试可以发现该程序启动后在开发环境的控制台输出一行“Hello World!”,在PlayBook真机或者模拟器上闪现一个黑色界面,然后程序退出。因为程序太简单,一切发生的很快,感觉像是程序遇到问题异常退出一样。

这时就会有一个简单的思考,能否让程序输出“Hello World!”后等待一段时间再退出。对应的实现方法就是在程序结束前添加一个sleep()函数的调用,为了扩展方便,还可以加上一个for循环,修改后的全部代码如下:

  1. #include <stdio.h>   
  2.   
  3. int main(int argc, char *argv[]) {  
  4.     fprintf(stderr, "Hello World!\n");  
  5.   
  6.     int i=0;  
  7.     for (i=0;i<100;i++)  
  8.     {  
  9.         sleep(1);  
  10.     }  
  11.   
  12.     return 0;  
  13. }  

运行该代码可以发现,程序在输出“Hello World!”之后不会马上退出,PlayBook模拟器或者真机上出现一个显示“BlackBerry”的黑色界面,直到for循环结束该程序才退出。

同时可以发现,在for循环结束之前用户可以通过标准的关闭应用的手势将这个程序关闭。这就意味着这样一个简单的程序也会相应一些系统事件,进一步的思考则是该程序是否能够处理一般用户事件,如虚拟键盘的事件,或者是用户点触事件。不过这样的思考就走出“Hello World”的范围了,让我们在后续的文章中继续讨论。相关阅读:PlayBook NDK编程如何获取系统时间

相关内容