当前位置:首页 > 代码 > 正文

android代码压缩文件(安卓压缩文件格式)

admin 发布:2022-12-19 16:15 148


本篇文章给大家谈谈android代码压缩文件,以及安卓压缩文件格式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

android中如何代码压缩音频视频文件呢

知道怎么压缩文件,音视频文件应该差不多吧O.O

package com.once;

import java.io.*;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Enumeration;

import java.util.zip.ZipEntry;

import java.util.zip.ZipException;

import java.util.zip.ZipFile;

import java.util.zip.ZipOutputStream;

/**

* Java utils 实现的Zip工具

*

* @author once

*/

public class ZipUtils {

private static final int BUFF_SIZE = 1024 * 1024; // 1M Byte

/**

* 批量压缩文件(夹)

*

* @param resFileList 要压缩的文件(夹)列表

* @param zipFile 生成的压缩文件

* @throws IOException 当压缩过程出错时抛出

*/

public static void zipFiles(CollectionFile resFileList, File zipFile) throws IOException {

ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(

zipFile), BUFF_SIZE));

for (File resFile : resFileList) {

zipFile(resFile, zipout, "");

}

zipout.close();

}

/**

* 批量压缩文件(夹)

*

* @param resFileList 要压缩的文件(夹)列表

* @param zipFile 生成的压缩文件

* @param comment 压缩文件的注释

* @throws IOException 当压缩过程出错时抛出

*/

public static void zipFiles(CollectionFile resFileList, File zipFile, String comment)

throws IOException {

ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(

zipFile), BUFF_SIZE));

for (File resFile : resFileList) {

zipFile(resFile, zipout, "");

}

zipout.setComment(comment);

zipout.close();

}

/**

* 解压缩一个文件

*

* @param zipFile 压缩文件

* @param folderPath 解压缩的目标目录

* @throws IOException 当解压缩过程出错时抛出

*/

public static void upZipFile(File zipFile, String folderPath) throws ZipException, IOException {

File desDir = new File(folderPath);

if (!desDir.exists()) {

desDir.mkdirs();

}

ZipFile zf = new ZipFile(zipFile);

for (Enumeration? entries = zf.entries(); entries.hasMoreElements();) {

ZipEntry entry = ((ZipEntry)entries.nextElement());

InputStream in = zf.getInputStream(entry);

String str = folderPath + File.separator + entry.getName();

str = new String(str.getBytes("8859_1"), "GB2312");

File desFile = new File(str);

if (!desFile.exists()) {

File fileParentDir = desFile.getParentFile();

if (!fileParentDir.exists()) {

fileParentDir.mkdirs();

}

desFile.createNewFile();

}

OutputStream out = new FileOutputStream(desFile);

byte buffer[] = new byte[BUFF_SIZE];

int realLength;

while ((realLength = in.read(buffer)) 0) {

out.write(buffer, 0, realLength);

}

in.close();

out.close();

}

}

/**

* 解压文件名包含传入文字的文件

*

* @param zipFile 压缩文件

* @param folderPath 目标文件夹

* @param nameContains 传入的文件匹配名

* @throws ZipException 压缩格式有误时抛出

* @throws IOException IO错误时抛出

*/

public static ArrayListFile upZipSelectedFile(File zipFile, String folderPath,

String nameContains) throws ZipException, IOException {

ArrayListFile fileList = new ArrayListFile();

File desDir = new File(folderPath);

if (!desDir.exists()) {

desDir.mkdir();

}

ZipFile zf = new ZipFile(zipFile);

for (Enumeration? entries = zf.entries(); entries.hasMoreElements();) {

ZipEntry entry = ((ZipEntry)entries.nextElement());

if (entry.getName().contains(nameContains)) {

InputStream in = zf.getInputStream(entry);

String str = folderPath + File.separator + entry.getName();

str = new String(str.getBytes("8859_1"), "GB2312");

// str.getBytes("GB2312"),"8859_1" 输出

// str.getBytes("8859_1"),"GB2312" 输入

File desFile = new File(str);

if (!desFile.exists()) {

File fileParentDir = desFile.getParentFile();

if (!fileParentDir.exists()) {

fileParentDir.mkdirs();

}

desFile.createNewFile();

}

OutputStream out = new FileOutputStream(desFile);

byte buffer[] = new byte[BUFF_SIZE];

int realLength;

while ((realLength = in.read(buffer)) 0) {

out.write(buffer, 0, realLength);

}

in.close();

out.close();

fileList.add(desFile);

}

}

return fileList;

}

/**

* 获得压缩文件内文件列表

*

* @param zipFile 压缩文件

* @return 压缩文件内文件名称

* @throws ZipException 压缩文件格式有误时抛出

* @throws IOException 当解压缩过程出错时抛出

*/

public static ArrayListString getEntriesNames(File zipFile) throws ZipException, IOException {

ArrayListString entryNames = new ArrayListString();

Enumeration? entries = getEntriesEnumeration(zipFile);

while (entries.hasMoreElements()) {

ZipEntry entry = ((ZipEntry)entries.nextElement());

entryNames.add(new String(getEntryName(entry).getBytes("GB2312"), "8859_1"));

}

return entryNames;

}

/**

* 获得压缩文件内压缩文件对象以取得其属性

*

* @param zipFile 压缩文件

* @return 返回一个压缩文件列表

* @throws ZipException 压缩文件格式有误时抛出

* @throws IOException IO操作有误时抛出

*/

public static Enumeration? getEntriesEnumeration(File zipFile) throws ZipException,

IOException {

ZipFile zf = new ZipFile(zipFile);

return zf.entries();

}

/**

* 取得压缩文件对象的注释

*

* @param entry 压缩文件对象

* @return 压缩文件对象的注释

* @throws UnsupportedEncodingException

*/

public static String getEntryComment(ZipEntry entry) throws UnsupportedEncodingException {

return new String(entry.getComment().getBytes("GB2312"), "8859_1");

}

/**

* 取得压缩文件对象的名称

*

* @param entry 压缩文件对象

* @return 压缩文件对象的名称

* @throws UnsupportedEncodingException

*/

public static String getEntryName(ZipEntry entry) throws UnsupportedEncodingException {

return new String(entry.getName().getBytes("GB2312"), "8859_1");

}

/**

* 压缩文件

*

* @param resFile 需要压缩的文件(夹)

* @param zipout 压缩的目的文件

* @param rootpath 压缩的文件路径

* @throws FileNotFoundException 找不到文件时抛出

* @throws IOException 当压缩过程出错时抛出

*/

private static void zipFile(File resFile, ZipOutputStream zipout, String rootpath)

throws FileNotFoundException, IOException {

rootpath = rootpath + (rootpath.trim().length() == 0 ? "" : File.separator)

+ resFile.getName();

rootpath = new String(rootpath.getBytes("8859_1"), "GB2312");

if (resFile.isDirectory()) {

File[] fileList = resFile.listFiles();

for (File file : fileList) {

zipFile(file, zipout, rootpath);

}

} else {

byte buffer[] = new byte[BUFF_SIZE];

BufferedInputStream in = new BufferedInputStream(new FileInputStream(resFile),

BUFF_SIZE);

zipout.putNextEntry(new ZipEntry(rootpath));

int realLength;

while ((realLength = in.read(buffer)) != -1) {

zipout.write(buffer, 0, realLength);

}

in.close();

zipout.flush();

zipout.closeEntry();

}

}

}

android 压缩文件

public static void zip(InputStream inputStream,

String fileExtractPath, String projectName) {

ZipInputStream zis = null;

try {

zis = new ZipInputStream(inputStream);

ZipEntry entry;

while ((entry = zis.getNextEntry()) != null) {

int count;

byte[] data = new byte[BUFFER];

String fopath = fileExtractPath + PATH_SEP + projectName

+ PATH_SEP + entry.getName();

if (entry.isDirectory()) {

new File(fopath).mkdirs();

continue;

}

final FileOutputStream fos = new FileOutputStream(fopath);

final BufferedOutputStream dest = new BufferedOutputStream(fos,

BUFFER);

while ((count = zis.read(data, 0, BUFFER)) != -1) {

dest.write(data, 0, count);

}

dest.flush();

dest.close();

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

zis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

androidstudio怎么压缩中空的软件包

在学习Android开发的时候,需要把写过的代码进行保存,但 AS生成的项目很大每次压缩会很慢,项目中有部分文件是AS自己生成的,对我来说没有用所以可以删除它

android 代码混淆、压缩文件破解真能防反编译?

很早以前安卓是很容易被破解的,后来谷歌意识到了这个问题,就多了一个proguard.cfg文件,就是用来混淆代码的,这在一定程度上阻止了apk被反编译。不过现在的反编译越来越厉害了,普通的代码混淆对于APK反编译没有效果了。现在要真正做到做apk反编译,要保护dex文件、so库文件、以及防止内存数据被静态、动态抓取等等,一般都是通过密码算法给dex加壳隐藏、对源码使用高级混淆、签名效验、使用花指令、对so文件使用算法加密等。这些单独一项可能还达不到较安全的保护,但是综合起来就会达到一个相对很高的安全层次。如果觉得麻烦,可以尝试用一下第三方APP加密如爱加密,今天上传,第二天就能拿到加固后的apk,很方便的。

关于android代码压缩文件和安卓压缩文件格式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/12401.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载