2010-10-07 18 views
2

我想從位於SD卡上的文件創建一個zip文件,我已經設法做到這一點使用java,但我認爲結果太慢,所以我想去本地使用android NDK。android如何使本機壓縮應用程序

我的問題是:

有誰知道的任何C/C++庫來壓縮解壓縮文件,將在Android上工作?

如何知道庫是否能在android上工作?

這會對性能產生什麼影響嗎?

+0

除非您使用zlib以外的東西,否則您不可能看到任何性能變化。 java.util.zip類用於壓縮和擴展。 – fadden 2010-10-08 18:25:14

回答

0

我個人比較喜歡7zip,它們是開源的here。您可以嘗試在Android NDK的應用程序中進行編譯。 gzip也是另一個不錯的選擇。

+0

非常感謝我的迴應,我會嘗試,即使我是新來的C + +和ndk,並不知道如何:p – maxsap 2010-10-07 16:55:09

+0

你可能想看看gzip然後,我認爲它的C基礎。 – omermuhammed 2010-10-07 17:10:53

1

關於你的問題「如何知道庫是否能在Android上工作」 - 這取決於庫的依賴關係。標準的谷歌NDK有很有有限的C++支持。如果它是用C寫的你可能OK,但如果它是C++,你需要確保它僅使用下列頭/庫:

  • 的libc(C庫)頭
  • 的libm(數學庫)頭
  • JNI接口頭
  • libz進行(zlib壓縮)報頭
  • liblog(Android的記錄)頭
  • 的OpenGL ES 1.1和OpenGL ES 2.0(3D圖形庫)報頭
  • libjnigraphics(像素緩衝區訪問)標題(適用於Android 2.2及更高版本)。
  • C++支持

(從homepage

如果需要完全C++支持一個最小的套頭的,你將需要使用Crystax NDK

被預先警告 - 交叉編譯的過程是Very。複雜。如果你對命令行以及C編譯,鏈接等方面的內容感到不太舒服,我會尋找替代解決方案。

0

鑑於核心zip文件(apk文件,jar文件)是如何安卓的,如果java zip文件函數沒有使用實際算法的本地實現,我會感到非常驚訝。

請記住,與普通磁盤相比,SD卡本身速度較慢。

相關問題