本章主要从代码级的角度来看java卡的执行流程。
########################################################################################################
先看一个简单的java卡的applet代码(HelloWord):
从下面的代码可以看出一个java卡应用的简单构成,install函数和process函数。其它可选接口如select、deselect和uninstall函数这里没有。
install函数负责安装这个应用,进行一些对象的初始化和注册,告诉jcre这个应用已经被成功安装,接下来就可以对这个应用进行选择和其它命令执行。
process函数是应用的最重要的命令处理函数,这里解析apdu的ins,进行命令分派,相当于native cos的commandDispatcher函数。当然这个示例比较简单,仅仅是返回一个helloword字符串。
package com.sun.javacard.samples.HelloWorld;
import javacard.framework.*;
public class HelloWorld extends Applet
{
private byte[] echoBytes;
private static final short LENGTH_ECHO_BYTES = 256;
//private test testobj;
/**
* Only this class's install method should create the applet object.
*/
protected HelloWorld()
{
//testobj = new test();
//testobj.setsvalue((short)10);
//testobj.setivalue((int)20);
echoBytes = new byte[LENGTH_ECHO_BYTES];
register();
}
/**
* Installs this applet.
* @param bArray the array containi