仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 486|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA网页编程之采访Philipp Crocoll:安卓平台上Java和C#的整合仓酷云

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。在这个采访中,我们跟开源开辟者PhilippCrocoll会商了关于Keepass2Android的相干话题。Keepass2Android不但具有壮大的暗码存储的功效,仍是在一个独自的安卓使用同时利用Java和C#的很好的案例。
InfoQ:可否先容一下Keepass2Android计划初志是为懂得决甚么成绩?
Keepass2是一个壮大的暗码办理器,我已利用了很长一段工夫。它有一些很好的插件,好比能够集成到Chrome大概Firefox扫瞄器中的那些插件。我在手机上也利用Keepassdroid举行暗码会见。不幸的是,它如今只能完成数据库的读会见(最后的Keepass1还供应了写的功效,但对我却没多年夜匡助)。跟着利用手机的频次愈来愈高,我就想要创立一个账户,来存储手机上的这些暗码了。
因而,我入手下手思索本人往增加这些功效,我决意用Mono安卓版将这个使用移植为C#版,而且基于Keepass2的源代码来完成暗码数据库的修正功效。
InfoQ:Keepass2Android跟其他的暗码办理器有甚么分歧?
当我的使用差未几快写完的时分,Keepassdroid还到场了写撑持的功效(最少已处于Beta形式了)。我决意不管怎样都要公布它,由于它已有了一些新特征——包含完整兼容Keepass2、扫瞄器集成和QuickUnlock等。QuickUnlock是一种内存数据库手艺(即从不在SD卡上存储主暗码)。为了可以在用户丧失手机时回护用户数据库的平安,必需输出一个短暗码才干解锁数据库。这比每次都要输入强平安的、太长的主暗码要好很多。
自最后的版本以来,我已增加了大批的新功效:用户可使用键盘输出考证码(由于安卓中的剪贴板是不平安的);对PC版的用户而言,能够选择经由过程WebDAV、FTP、SFTP、Dropbox、OneDrive大概GoogleDrive等举行数据库同步。另有一些更多的“专家”功效,好比利用一次性暗码(经由过程NFC用YubikeyNEO输出,https://www.yubico.com/products/yubikey-hardware/yubikey-neo/)或对Keepass2占位符系统的撑持(http://keepass.info/help/base/placeholders.html)。
一方面,我全力让没有太多利用履历的人也可以利用这个使用,同时,也但愿为忧虑平安成绩的用户供应选择。
InfoQ:在Keepass2Android中利用C#取代Java,你选择了甚么言语?
写加密的文件必需十分当心:假如你写错了一点,文件便可能成为无用的大概不成读取的。用户必需确信他们的暗码数据库是完好无损的!为了确保不会破坏任何数据库,我决意基于Keepass2的最后完成。因为Keepass2是用C#写的,我评价了在安卓上用此完成的大概性。这是我第一次打仗Xamarin的安卓版Mono。我初期的事情中已经做过一些C#开辟,也有过一点安卓开辟履历。将这两个工具放到一同仿佛是一件很风趣的事变。我自己对新常识十分巴望,因而,这对我而言是一个很棒的选择。现实证实,安卓版Mono是一个很好的平台:你能够同时具有.net框架和Java平台和安卓类库的壮大能力。
另外一个优点是,能够间接将Java库包括出去。现实上,我使用Eclipse对安卓更好的撑持用Java完成了使用的一部分编写(云存储、自界说键盘)。
InfoQ:将Java和C#代码整合到统一个使用中次要必要做哪些事变?这很顺遂吗?仍是碰到了一些严重的应战?
Xamarin团队已环绕两种言语的交融做了良多事情,包含在.net项目中创立一个绑定库,使得Java库能够被援用。这会临盆一些C#类和接口,这些接口能够用于挪用Java代码。这些事情完善得空,乃至能够主动转换罕见的定名划定规矩和形式。举一个复杂的例子:“StringgetPackageName()”会转换成“stringPackageName{get{……}}”。而事务的处置:“setOnClickListener(...)”会主动转换成C#中的“Click+=……”。
关于一些复杂的接口,我还没有发明任何成绩。假如你想要绑定一些庞大的库,一般必要按以下网页中的形貌手工做些事情:
http://docs.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding_a_java_library_(.jar)/api_metadata_reference/
跟着Java类绑定和与C#的对接,用起来感到就跟用C#库差未几。我所看到的少少的分歧是,从Java.Lang.Object中派生出一个类时,必要增加如许一行代码:
catch(Java.Lang.Exceptione)
这行代码长短常需要的,由于当完成一个后来在Java界说的接口时,必要将这个类的对象回传给Java代码。
在我完成的代码中,这是独一一处“对象”处于两台假造机的中央,这两个天下都有着各自的渣滓搜集机制。
InfoQ:你会思索针对将来的安卓项目再次利用C#吗?
[quote]我以为安卓版Mono是我的工具会合的一个工具。只管它很壮大,可是它不是必须的,大概说它纷歧定合适一切的项目。
在Keepass2Android中利用C#的缘故原由是,它让我可以在一个安卓App顶用到一个十分壮大的库(Keepass2code)。而且,关于每个有C#背景的伴侣而言,利用C#的一些好的特征(LINQ、Lambdas、静态范例等等)和.net框架,也长短常不错的。

恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
分手快乐 该用户已被删除
沙发
发表于 2015-1-20 19:18:45 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-29 16:05:40 来自手机 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
爱飞 该用户已被删除
地板
发表于 2015-1-29 16:05:40 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
因胸联盟 该用户已被删除
5#
发表于 2015-2-3 12:37:12 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
谁可相欹 该用户已被删除
6#
发表于 2015-2-7 08:48:22 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
透明 该用户已被删除
7#
发表于 2015-2-8 00:15:09 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
莫相离 该用户已被删除
8#
发表于 2015-2-23 18:43:35 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
蒙在股里 该用户已被删除
9#
发表于 2015-2-23 19:48:57 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
只想知道 该用户已被删除
10#
发表于 2015-3-7 00:32:13 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
精灵巫婆 该用户已被删除
11#
发表于 2015-3-13 23:08:19 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
简单生活 该用户已被删除
12#
发表于 2015-3-20 21:18:32 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-16 11:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表