近期在工作上一直再维护平台OTA在线升级项目,其中关于这个升级文件主要是存放于ftp服务器上的,然后客户端通过走ftp协议方式下载至本地Android机进行一个系统升级操作。那么今天将对ftp实现文件上传和下载进行一个使用总结,关于ftp这方面的理论知识如果不是太了解的各位道友,那么请移步HTTP和FTP的区别的一些理论知识 作个具体的了解或者查阅相关资料。那么先看看个人工作项目这个OTA升级效果图吧。如下:
下面是具体的接口实现:
那么相关ftp的操作,已经被封装到ota.ftp这个包下,各位童鞋可以下载示例代码慢慢研究。另外这个要是用ftp服务我们cline端需要再项目工程导入ftp4j-1.7.2.jar包
这边作个使用的逻辑分析:首先在我们的项目工程FtpApplication中启动这个OtaService,其中OtaService作为一个服务运行起来,在这个服务里面拿到封装好ftp相关接口的DownLoad.java进行ftp文件操作,关键代码如下:
public void startDownload() {
// TODO Auto-generated method stub
mDownLoad.start();
}
public void stopDownload() {
mDownLoad.stop();
}
public void cancel() {
mDownLoad.cancel();
}
public String getOldDate() {
return mDownLoad.getDatabaseOldDate();
}
public String getOldVersion() {
return mDownLoad.getDatabaseOldVersion();
}
public void checkVer(String serverRoot) {
// TODO Auto-generated method stub
mDownLoad = DownLoad.getInstance();
mDownLoad.setServeRoot(serverRoot);
mDownLoad.setFtpInfo(mApp.mFtpInfo);
mDownLoad.checkUpgrade();
}
FTPToolkit.java
package com.asir.ota.ftp;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPFile;
import java.io.File;
import java.util.List;
import com.asir.ota.clinet.PathToolkit;
import com.asir.ota.ftp.DownLoad.MyFtpListener;
/**
* FTP客户端工具
*
*/
public final class FTPToolkit {
private FTPToolkit() {
}
/**
* 创建FTP连接
*
* @param host
* 主机名或IP
* @param port
* f