以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Java/Eclipse 』 (http://bbs.xml.org.cn/list.asp?boardid=41) ---- Java高级应用开发经验分享[灌水] (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=77387) |
-- 作者:多翻空什 -- 发布时间:9/23/2009 7:51:00 PM -- Java高级应用开发经验分享[灌水] Java的优点有: 跨平台性很强的,一次编译到处运行,一边编译一边执行, 不受病毒的干扰。但是美中不足,运行速度比C,C++ 等语言慢, 访问硬件底层比不上C++,C,一些应用需求却需要执行纯 Java 程序无法完成的一些任务。为此SUN公司为了突破JAVA的瓶颈, 就引入了JNI 的作用, JNI就是能够兼容C,扬长避短, 快速的访问硬件底层, 扩展我们软件的功能, 随心所欲的进行开发。对于移动开发而言, BREAW, SYMBIAN,等就是以C和C++为基础的, 而现在市场的新兴智能平台ANRDOID 和中国移动的Ophone也是以JAVA 开发为主, 也用到了JNI。而为什么笔者在本文力也推JNI 呢? 原因如下 : J2ME作为手机应用开发的先驱,由于它的出发点考虑比较低,开发出来的手机应用软件处处受到限制,特别是在底层方面比如手机壁纸,声音均衡器,声音的捕捉等是不能通过软件来设置。不能让我们随心所欲的开发、策划我们的软件。而我们从Android Library或Ophone Library的组成来看, 他是由一系列的c/c++库组成,这些库的能力通过JNI封装成java接口,由Application Framework层提供给开发者。这样JNI为的们访问手机的硬件底层提供接口和方便。这些底层有:声音均衡器,视频,地图,3D, 驱动编写,网络底层等,这样就可以用JAVA 做UI界面,JNI来调用系统的底层, 这样两结合起来就是既提高开发的速度,又提高了软件的运行速度。不久将来Android 或Ophone只要实现了J2me API(大势所趋),这样大量现有的J2ME的应用可以很容易的移植到Android 或Ophone上来,而且通过JNI可以很容易的增加调用底层的高级功能。市场前景很宽阔。下面我就介绍一下: java 调用JNI示例: class HelloWorld { public native void displayHelloWorld();//声明调用C的方法 static { System.loadLibrary("hello");//导入C的文件,并运行C的MAIN() 方法. } public static void main(String[] args) {// 运行主程序 new HelloWorld().displayHelloWorld();//生成 } } 声明native方法:如果你想将一个方法做为一个本地方法的话,那么你就必须声明改方法为native的,并且不能实现。其中方法的参数和返回值在后面讲述。 Load动态库:System.loadLibrary("hello");加载动态库. C 的代码: #include JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld // 方法主体 JNI 调用功能,目前只在中国移动OPHONE和ANDROID 被引入了,Symbian 、Wm、Brew等平台,还不能通过JNI方式很好的调用底层硬件,影响了软件体验的完美程度。这一点仅仅是平台差异对未来软件人性化设计的影响差异。软件的人性化差异,会影响用户的规模,市场的规模,这点大家都很清楚。如果再加上市场因素,比如,Symbian、Wm虽然现在很流行,但是后来居上的Android和Ophone,尤其是Ophone,借助中国移动在7亿手机用户市场70%的市场占有率和大把的商业、企业客户,未来在这2个市场上销售手机娱乐软件和行业移动自动办公软件,市场的商机肯定比其它光有产品而没有市场控制力的国外厂家要强,这一点也很明显。 |
-- 作者:像雨又像雾 -- 发布时间:9/26/2009 11:15:00 AM -- 感觉他们网站还是有点技术含量。起码提供的技术文档,按着方法试了试。http://www.ophonesdn.com/forum/forum.do。OPhone开发文档都很全面,对我刚接触这个平台的时候,所碰到的问题,在线专业工程师都能够给我解答。 |
-- 作者:稻飞虱D -- 发布时间:9/30/2009 10:15:00 AM -- 上面的JNI源码我已经放在ECLIPSE 里面运行过了,太简单了。哈我喜欢我解答。 |
-- 作者:稻飞虱D -- 发布时间:10/6/2009 3:40:00 PM -- 跟确切地说,除非你的J2ME程序超级简单,否则它基本不跨平台--换一台手机执行就要移植一次。 或许J2ME技术在跨平台上却做的很不能让人满意,但Ophone OS上的Java似乎要好一点,至少系统是完全统一的。 |
-- 作者:aghgeig -- 发布时间:10/8/2009 11:20:00 AM -- JAVA依旧是个强大的语言。顶了此贴必火。 |
-- 作者:稻飞虱D -- 发布时间:10/12/2009 10:06:00 AM -- ophone讲座都听了没?谁听了,? |
-- 作者:稻飞虱D -- 发布时间:10/13/2009 9:50:00 AM -- 广州站现场人太多,挤不进去。 |
-- 作者:小男孩123 -- 发布时间:10/16/2009 10:23:00 AM -- ophoneOS入门还是很容易的。但是要作深,还是得多听听最近开展的讲座了。也就ophone刚推。 |
-- 作者:稻飞虱D -- 发布时间:10/19/2009 4:10:00 PM -- 目前最主流的开发系统就是Android OphoneOS IphoneOS,但国内这三种平台开发个人或团队都不多。主要还是集中于2G傻瓜系统symbian。智能机在全球数量的增加与被人们的热捧。Symbian系统本身已经很难满足现在智能机的要求了。 |
-- 作者:猪猪887 -- 发布时间:10/22/2009 9:32:00 AM -- 如若说这个对于新手具有一定的帮主,移动市场的趋势流行化,让我们更加关注移植方面的技术问题。 |
-- 作者:稻飞虱D -- 发布时间:10/24/2009 8:31:00 PM -- 感谢。应对于我目前的一个问题,略有帮助。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
78.125ms |