當前位置: 首頁>>代碼示例>>Java>>正文


Java DataSource.size方法代碼示例

本文整理匯總了Java中com.android.apksig.util.DataSource.size方法的典型用法代碼示例。如果您正苦於以下問題:Java DataSource.size方法的具體用法?Java DataSource.size怎麽用?Java DataSource.size使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.android.apksig.util.DataSource的用法示例。


在下文中一共展示了DataSource.size方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: inputApkSigningBlock

import com.android.apksig.util.DataSource; //導入方法依賴的package包/類
@Override
public void inputApkSigningBlock(DataSource apkSigningBlock) {
    checkNotClosed();

    if ((apkSigningBlock == null) || (apkSigningBlock.size() == 0)) {
        return;
    }

    if (mOtherSignersSignaturesPreserved) {
        // TODO: Preserve blocks other than APK Signature Scheme v2 blocks of signers configured
        // in this engine.
        return;
    }
    // TODO: Preserve blocks other than APK Signature Scheme v2 blocks.
}
 
開發者ID:F8LEFT,項目名稱:FApkSigner,代碼行數:16,代碼來源:DefaultApkSignerEngine.java

示例2: findZipEndOfCentralDirectoryRecord

import com.android.apksig.util.DataSource; //導入方法依賴的package包/類
/**
 * Returns the ZIP End of Central Directory record of the provided ZIP file.
 *
 * @return contents of the ZIP End of Central Directory record and the record's offset in the
 *         file or {@code null} if the file does not contain the record.
 *
 * @throws IOException if an I/O error occurs while reading the file.
 */
public static Pair<ByteBuffer, Long> findZipEndOfCentralDirectoryRecord(DataSource zip)
        throws IOException {
    // ZIP End of Central Directory (EOCD) record is located at the very end of the ZIP archive.
    // The record can be identified by its 4-byte signature/magic which is located at the very
    // beginning of the record. A complication is that the record is variable-length because of
    // the comment field.
    // The algorithm for locating the ZIP EOCD record is as follows. We search backwards from
    // end of the buffer for the EOCD record signature. Whenever we find a signature, we check
    // the candidate record's comment length is such that the remainder of the record takes up
    // exactly the remaining bytes in the buffer. The search is bounded because the maximum
    // size of the comment field is 65535 bytes because the field is an unsigned 16-bit number.

    long fileSize = zip.size();
    if (fileSize < ZIP_EOCD_REC_MIN_SIZE) {
        return null;
    }

    // Optimization: 99.99% of APKs have a zero-length comment field in the EoCD record and thus
    // the EoCD record offset is known in advance. Try that offset first to avoid unnecessarily
    // reading more data.
    Pair<ByteBuffer, Long> result = findZipEndOfCentralDirectoryRecord(zip, 0);
    if (result != null) {
        return result;
    }

    // EoCD does not start where we expected it to. Perhaps it contains a non-empty comment
    // field. Expand the search. The maximum size of the comment field in EoCD is 65535 because
    // the comment length field is an unsigned 16-bit number.
    return findZipEndOfCentralDirectoryRecord(zip, UINT16_MAX_VALUE);
}
 
開發者ID:F8LEFT,項目名稱:FApkSigner,代碼行數:39,代碼來源:ZipUtils.java


注:本文中的com.android.apksig.util.DataSource.size方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。