一种快速实现Android系统HCE服务的方法

文档序号:9471167阅读:874来源:国知局
一种快速实现Android系统HCE服务的方法
【专利说明】-种快速实现Android系统HCE服务的方法
【背景技术】
[0001] 移动通讯技术的发展改变了人的生活状态,总所周知,大部分的移动通讯设备中 的应用程序都是基于Android系统开发的。HCE(host_basedcardemulation)的定义为: 基于主机的卡模拟,HCE是一种是基于软件的,不需要提供安全模块SE(SecureElement) 的智能卡模拟技术,目前主流的安卓手机系统(AndroicM. 4或更高版本)均支持HCE技术。 Android系统上的HCE技术是通过系统服务实现的,使用系统服务的优势是它可以一直在 后台运行而不需要有用户界面,也就是说对用户是透明的,如果开发者要开发个性化的HCE 服务时,只需重写Android系统提供的系统服务的服务基类相关方法,以及进行相应的安 装配置,即可实现个性化的HCE服务。
[0002] JavaCard应用是一种基于Java语言编写的运行在智能卡中的应用程序,开发 JavaCard应用的语法是Java编程语言语法的子集,并且JavaCard底层运行的虚拟机 (JCVM)也是Java虚拟机(JVM)的一个子集。JavaCard应用与Android系统的HCE服务 的不同点只在于JavaCard应用依赖的底层类库与传统Java应用依赖的系统类库有所不 同及编译和运行的机制有所区别。而Android系统的主开发语言也是Java,这与JavaCard 的开发语言几乎没有区别。因此,可以利用成熟的JavaCard应用快速实现Android系统 的HCE服务。
[0003] 在现有技术中,要实现一个特定的Android系统HCE服务,需要在Android开发环 境下新建项目,并利用Android提供的API进行程序编写。当相同功能的应用需要分别部 署到JavaCard平台和Android平台时,开发人员往往需要为JavaCard平台和Android 平台编写两套逻辑相同但风格迥异的代码,从而使开发工作变得更加繁重。而且由于应用 在上述两个平台的代码不一致,更会导致开发出的应用的可维护性降低。
[0004] 本发明开发出了 一种快速实现Android系统HCE服务的方法,实现了一次性在上 述两个平台上开发应用,有效的提高了开发应用的效率也降低了应用的维护难度。

【发明内容】

[0005] -种快速实现Android系统HCE服务的方法,所述方法包括,将JavaCard平台的 底层类库移植至Android系统中构成Android系统的JavaCard中间层类库。该方法进一 步包括以下步骤:步骤1):对JavaCard底层类库进行筛选,确定具体需要移植的类和接 口,并保持需要移植的类库的包名、包路径不变;步骤2):针对JavaCard平台与Android 系统HCE服务平台的底层虚拟机对内存的不同管理,确定应用内部持久数据对象在创建、 服务启动、服务结束时的处理方法;步骤3):基于原生的Android类库实现对步骤1)中所 选类库进行移植,使其成为Android平台的JavaCard中间层类库。步骤1)中所选的类库 包括,javacard.framework类包、javacard.security类包、javacard.crypto类包、org. globalplatform类包。步骤2)中的所述处理方法包括,a)JavaCard文件系统采用Android 的应用私有文件存储方式来实现;b)密钥等数据采用Android轻量级数据库SQLite的方 式实现;c)具体实现的Android系统HCE服务需要在预定时机进行文件或数据库方式的持 久化读取和写入,以保证HCE服务在断电或其他原因重启后仍然具有合适的持久化数据。 步骤3)中的移植方法包括,a)调用java,security类库加解密相关的API实现中间层类库 javacard.security、javacard.crypto的加解密功能;b)根据Android平台的特性封装实 现javacard.framework包和org.globalplatform包,达到模拟部分卡片主安全域功能的 效果。步骤3)可以被步骤4)所替代:步骤4)于Android原生类库全新开发一个HCE服务 应用。其中的应用内部持久数据对象包括,文件系统、密钥数据、其他持久数据。JavaCard 平台的架构包括JavaCard应用,JavaCard底层类库,JavaCard虚拟机,而Android系 统HCE服务平台的架构包括Android系统HCE服务,JavaCard中间层类库,Android类库, Dalvik虚拟机。
[0006] 本发明通过上述移植方法,将JavaCard平台底层类库移植至Android系统中,从 而实现了将原有的基于JavaCard平台开发的应用直接应用于Android系统HCE服务中, 提高了应用的转换效率。
【附图说明】
[0007] 图I:JavaCard平台与AndroidHCE平台的架构比较。 具体实施例
[0008] 现结合说明书附图,以及具体实施例进一步阐述本发明的技术方案,具体实施例 仅是本发明的布局约束的具体方案,任何负荷本发明精神的技术方案均落在其保护范围之 内。
[0009] 本发明通过将JavaCard底层类库移植到Android平台,如此之下,Android平台 开发也获取了JavaCard底层类库的编程接口,从而,在JavaCard平台和Android平台开 发相同的应用时,该应用本身无需做太大的改动,即可从JavaCard平台移植到Android系 统成为HCE服务,从而可以快速地基于原有的JavaCard应用实现具有相同功能的Android HCE服务。
[0010] 参见图1,JavaCard平台与Android系统HCE服务平台的架构对比中可以看出, JavaCard平台的架构包括JavaCard应用,JavaCard底层类库,JavaCard虚拟机,而 Android系统HCE服务平台的架构包括Android系统HCE服务,JavaCard中间层类库, Android类库,Dalvik虚拟机。本发明将JavaCard平台的底层类库移植至Android系统 HCE服务平台中构成Android系统HCE服务的JavaCard中间层类库,使得无需再次开发, 即可将现有成熟的基于JavaCard平台开发的应用应用于Android系统HCE服务中,从而 实现该应用的功能。
[0011] Java Card应用依赖的底层类库包含以下类包(package) : java, io、java, lang、java.rmi、javacard. framework、javacard. security、javacard
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1