更好的方式在python脚本和Android应用程序之间进行通信

时间:2011-10-05 06:06:54

标签: android python communication

在我的android项目中,我正在读取一个由一个python脚本不断更新的xml文件。对于更新数据,我不断读取xml文件,每当通过python脚本在xml文件中更新数据时,我在我的应用程序中使用了它。

但现在问题是,因为python脚本和我的android项目连续访问一个xml文件(一个资源所以我认为并发问题),从xml文件获取数据并通过python将数据写入xml文件需要花费很多时间脚本。

那么,有没有简单的方法在python脚本和android app之间进行通信所以我会避免使用xml文件并直接使用python脚本发送给我的数据? 而且它也让我更快地执行。

我试过这个,(这是我用于访问xml文件的android代码)

public void getData() throws Exception {
try
{
    while(!isStop)
    {
        isStop=parseXmlData();          

    }   
 }
catch(Exception e)
{
    e.printStackTrace();
}
  }



private boolean parseXmlFile(){
    //get the factory
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    boolean flag=false;
    try {

        //Using factory get an instance of document builder
        DocumentBuilder db = dbf.newDocumentBuilder();
        //parse using builder to get DOM representation of the XML file

        File file=new File("/mnt/sdcard/xmldata.xml");
        FileInputStream fin=null;
        if(file.isFile())
            {
            try
            {
             fin=new FileInputStream(file);
            }catch(Exception e)
            {

            }

            }
        dom = db.parse(fin);
        flag =  parseDocument();

            // from this I am getting last xml value "stop" then it returns    
                      true and from while loop I am exited..

    }catch(ParserConfigurationException pce) {
        //pce.printStackTrace();
    }catch(SAXException se) {
        //se.printStackTrace();
    }catch(IOException ioe) {
        //ioe.printStackTrace();
    }
          return flag;
}
编辑:在我看来,我有三个选择,

  1. 使用管道
  2. Socket Communication
  3. AIDL
  4. 哪一个更好,为什么?

    如果出现问题,请指导我。感谢

1 个答案:

答案 0 :(得分:1)