2024年4月6日发(作者:)
Java VS Native
“Java”或者“Native”是针对加载在卡上的应用的开发环境而言的--- Native卡应
用使用与Native平台同样的语言进行开发,比如C,汇编等; Java卡应用是使用Java语言开
发的, 而Java平台本身可以认为是一个特殊的Native应用;
下面就COS及应用相关的各个方面对Java平台与Native平台进行比较:
1. 对芯片资源的要求( Java:高 , Native:低 )
Native应用与底层COS在设计上多紧耦合,属于量体裁衣型; 甚至可在评估应用需求
后选择能符合要求的芯片在上面进行COS和应用的移植.所以对芯片本身的内存大小,时钟
频率等要求不高,只需在特定应用之上即可.
而Java应用是可后下载的,这就要求芯片提供更多的资源以应对应用本身对资源要求
的多样性.
2. 应用执行性能比较( Java:低 , Native:高 )
Java应用在运行时执行的是Java指令,而不是芯片本身对应的CPU指令集,这就需要
Java平台上的虚拟机对每条Java指令进行解释后执行;
例如: 应用的某个逻辑在Native平台上运行时候需要执行N条芯片CPU指令.而同样
的逻辑在Java平台上要执行的是N条Java指令,但是每条Java指令又需要M条芯片CPU
指令来解释执行它,故共需要执行N*M条芯片CPU指令.时间复杂度与Native平台不在一
个数量级上.
可见,Java平台的应用运行性能会显著低于Native平台应用.
3. 安全性比较( Java:低 , Native:高)
Java平台作为一个特殊的Native平台应用天然的继承了所有Native平台可能遭遇的
安全性问题, 另外,由于Java平台本身的复杂性以及其可后下载应用等特性,将引入更多的
Java平台实现相关或者遭遇带攻击性应用等安全性问题.
4. 应用开发效率比较( Java:高 , Native:低)
Java应用在开放的API之上进行开发,与芯片底层硬件相关的各属性分离,可跨平台使
用,开发者只需熟练掌握相关编程接口即可.
Native应用的开发与Native平台提供的接口相关,是非标准的,跨平台时需要做相应的
移植工作.
对有经验的编程人员来说,两者的开发难易程度不显著. Java平台上只是更易上手.
5. 后下载应用的灵活性(Java:高 , Native:低)
Java平台提供以Java Card Applet形式的应用的后下载功能,可通过卡上的installer
部件对后下载的应用进行安装,应用所需资源由Java平台负责分配.
Native平台实现应用后下载相对复杂,最常见的是采取打补丁的形式,这要求应用开发


发布评论