public void makeMatrix(boolean andriodOnly) throws Exception{
		ASTClassNode acn=(ASTClassNode)this.beginNode;
		PrintWriter pwOut=new PrintWriter(new FileOutputStream(jarName+".txt"));
	//	this.json=new PrintWriter(new FileOutputStream(this.jarName+"_json.txt"));
		for(ASTNode tempHead:acn.getChild()){
			ASTClassNode classLevel=(ASTClassNode)tempHead;
			for(ASTNode tempClass:classLevel.getChild()){
				ASTFunctionNode functionLevel=(ASTFunctionNode)tempClass;
				for(ASTNode tempFunction:functionLevel.getChild()){
					if(tempFunction.getASTKind().equals("ASTMethodNode")){
						ASTMethodNode amn=(ASTMethodNode)tempFunction;
						if(andriodOnly==true){
							String rowName=amn.getOwner()+" "+amn.getName();
							if(rowName.length()>7){
							if(this.androidAPI.get(rowName)!=null){
								if(this.recordCount.get(rowName)!=null){
									int methodCount=this.recordCount.get(rowName);
									this.currentKey=this.jarName+"-"+rowName+"-"+methodCount;
									this.recordCount.put(rowName,methodCount+1);
								}else{
									this.currentKey=this.jarName+"-"+rowName+"-0";
									this.recordCount.put(rowName, 1);
								}
							ArrayList<ASTNode> callingRecord=new ArrayList<ASTNode>();
					//		this.json.println(this.currentKey+"{");
					//		this.json.println("return:{");
							getRelatedAPI(pwOut,amn,callingRecord);
					//		this.json.println("}");
							callingRecord.remove(amn);
							currentChecking=amn;
					//		this.json.println("argument:{");
							getArgumentAPI(pwOut,amn,callingRecord);
					//		this.json.println("}");
					//		this.json.println("}");
							}
							}
						}else{
							String rowName=classLevel.getName()+" "+functionLevel.getName()+" "+amn.getOwner()+" "+amn.getName();
							pwOut.println(rowName);
						}
					}
				}
			}
		}
	//	this.json.close();
		pwOut.close();
	}