public void installSoLib(File file) { try { ZipFile zipFile = new ZipFile(file); Enumeration entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry zipEntry = (ZipEntry) entries.nextElement(); String name = zipEntry.getName(); String str = "armeabi"; if (Build.CPU_ABI.contains("x86")) { str = "x86"; } if (name.indexOf(String.format("%s%s", new Object[]{"lib/", str})) != -1) { str = String.format("%s%s%s%s%s", new Object[]{this.revisionDir, File.separator, "lib", File.separator, name.substring(name.lastIndexOf(File.separator) + 1, name.length())}); if (zipEntry.isDirectory()) { File file2 = new File(str); if (!file2.exists()) { file2.mkdirs(); } } else { File file3 = new File(str.substring(0, str.lastIndexOf(FilePathGenerator.ANDROID_DIR_SEP))); if (!file3.exists()) { file3.mkdirs(); } BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(str)); BufferedInputStream bufferedInputStream = new BufferedInputStream(zipFile.getInputStream(zipEntry)); byte[] bArr = new byte[HttpTransport.DEFAULT_CHUNK_LENGTH]; for (int read = bufferedInputStream.read(bArr); read != -1; read = bufferedInputStream.read(bArr)) { bufferedOutputStream.write(bArr, 0, read); } bufferedOutputStream.close(); } } } zipFile.close(); } catch (Exception e) { e.printStackTrace(); } }
/** Returns the transport appropriate for this connection. */ public Object newTransport(HttpEngine httpEngine) throws IOException { return (spdyConnection != null) ? new SpdyTransport(httpEngine, spdyConnection) : new HttpTransport(httpEngine, out, in); }
@Override public int getChunkLength() { return request.body().contentLength() == -1 ? HttpTransport.DEFAULT_CHUNK_LENGTH : -1; }