66269ea6f68f2f25888ce1080c94ac782742fafc |
|
12-Jul-2011 |
Kenny Root <kroot@google.com> |
Move extract native libraries to JNI code The built-in ZipFile class was quite a long time to find an unpack libraries. Move everything to using the libutils ZipFileRO class that goes quite a bit faster. Initial measurements are 6 times faster than the Java code. Also, read files off the disk and compare their CRC against the APK's CRC to see if we need to write the new file to disk. This also cuts down the bootup time by up to a second per APK that has native files. Change-Id: Ic464a7969a17368fb6a6b81d026888c4136c7603
/frameworks/base/include/utils/ZipFileRO.h
|
ddb76c4644756b31be948d70aaa8ee541dd94999 |
|
24-Nov-2010 |
Kenny Root <kroot@google.com> |
Change assets to use 64-bit API The asset system and supporting libraries were using off_t instead of off64_t to access files larger than 2GB (32-bit signed). This change replaces all off_t with off64_t and lseek64. There is a new utils/Compat.h added for Mac OS compatibility. Also fixed some size-related compiler warnings. Bug: 3205336 Change-Id: I9097b3cb7a602e811fe52f245939d8975da55e9e
/frameworks/base/include/utils/ZipFileRO.h
|
259ec46e8e80a9f1d0b5c7a3865a498110a7f11b |
|
04-Oct-2010 |
Kenny Root <kroot@google.com> |
Use pread() in ZipFileRO for Linux AssetManager instances are created by zygote and passed to all its children so that they don't have to individually open frameworks-res.apk. This creates a problem for determining the current file offset when using lseek() on those files, because you can't guarantee the cross-process locking of a mutex. Luckily, Linux implements pread() to get around this suckiness. The problem is that only Linux implements this, so we have to keep the old locking for use on host builds with aapt and friends. aapt doesn't have this same problem of sharing file descriptors across forked processes, so we can keep the local AutoMutex to protect accesses of those files. Change-Id: Ibe9f11499a53fe345f50fbaea438815ec0fd363e
/frameworks/base/include/utils/ZipFileRO.h
|
6cb241f9024c6923715cf4e9eeaf803a7d258750 |
|
02-Oct-2010 |
Kenny Root <kroot@google.com> |
ZipFileRO: moar logging and wrap close There is apparently still a race upon reading the entry Local File Header that can't be tracked down, so move the LFH check inside the mutex-protected block so we can call lseek again to see where we are when we log an error. Also, close() can fail so use TEMP_FAILURE_RETRY on it so we don't unwittingly leak file descriptors when Mean Mr. EINTR comes a-knocking. Change-Id: I753abad0bd882fe28f7281c406fa76f64393ef4c
/frameworks/base/include/utils/ZipFileRO.h
|
6458fa0fce4bce7f3f9cccbacf9116f6f08abdf1 |
|
24-Sep-2010 |
Kenny Root <kroot@google.com> |
Add locking around ZIP seeking Since we switched to seeking to the LFH to verify its existence instead of a huge mmap of the file, we have to guarantee that another seek doesn't happen before we finish our read on the LFH. Change-Id: If8135d9cb6f2f5cc4db734eafa4f6b5f6269c62a
/frameworks/base/include/utils/ZipFileRO.h
|
68246dcec17c245a434dad70b778960dc5c84af1 |
|
23-Apr-2010 |
Kenny Root <kroot@google.com> |
ZipUtilsRO rewrite based on Dalvik Zip rewrite Change the way zip archives are handled. This is necessary to deal with very large (~1GB) APK files, for which our current approach of mapping the entire file falls over. We now do the classic scavenger hunt for the End Of Central Directory magic on a buffer of data read from the file, instead of a memory-mapped section. We use what we find to create a map that covers the Central Directory only. If the caller is interested in unpacking the file contents, we have to do an additional file read to discover the size of the Local File Header section so we can skip past it. This is based on Change I745fb15abb in the dalvik tree. Both implementations share a common ancestry, but the cost of unifying them outweighs the benefits of wrapping C calls. Change-Id: Iddacb50fe913917c2845708a530872d65fdbe620
/frameworks/base/include/utils/ZipFileRO.h
|
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/include/utils/ZipFileRO.h
|
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/include/utils/ZipFileRO.h
|
54b6cfa9a9e5b861a9930af873580d6dc20f773c |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/frameworks/base/include/utils/ZipFileRO.h
|