需要如下文件
图片
linux下使用方式如下
将文件 libbz2.so.1.0.6 复制到 /usr/lib/
[root@xsmdmgr bsdiff4.3-linux]#cp -rf ./libbz2.so.1.0.6 /usr/lib/
创建连接 libbz2.so.1.0 指向 /usr/lib/libbz2.so.1.0.6
[root@xsmdmgr bsdiff4.3-linux]#ln -s ./libbz2.so.1.0.6 libbz2.so.1.0
[root@xsmdmgr bsdiff4.3-linux]# ldconfig
shell 命令测试
[root@xsmdmgr bsdiff4.3-linux]# ./bsdiff old.apk new.apk patch.apk
[root@xsmdmgr bsdiff4.3-linux]# ll
-rwxrwxrwx 1 root root 3092113 02-21 10:44 old.apk
-rwxrwxrwx 1 root root 3400660 02-21 10:44 new.apk
-rwxrwxrwx 1 root root 14102 02-21 10:44 bsdiff
-rwxrwxrwx 1 root root 11463 02-21 10:44 bspatch
-rw-r--r-- 1 root root 1863695 02-21 16:18 patch.apk
成功
windows 下使用方式如下
bsdiff.exe app1.apk app2.apk patch.apk
java调用
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class bsdiff {
/**
* @param args
*/
public static void main(String[] args) {
callShell("./bsdiff app1.apk app2.apk patch.apk");//linux
callShell("./bspatch app1.apk new.apk patch.apk");//linux
callShell("ls");//linux
//callShell("bsdiff.exe app1.apk app2.apk patch.apk");//windows
}
/**
*java callshell
* @param shell cmd
*/
public static void callShell(String shellString) {
Process process = null;
ArrayList<String> processList = new ArrayList<String>();
try {
process = Runtime.getRuntime().exec(shellString);
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = input.readLine()) != null) {
processList.add(line);
}
input.close();
} catch (IOException e) {
e.printStackTrace();
}
for (String line : processList) {
System.out.println(line);
}
}
}