Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Lấy Source ID SQLite với sqlite_source_id() trong Android

Hàm sqlite_source_id()

Trả về chuỗi xác định chính xác commit/revision của source code SQLite (ví dụ: "2023-04-01 12:34:56 abcdef123456"). Chi tiết hơn sqlite_version().

DatabaseHelper.java

public ArrayList<String> getAllContacts() {
    ArrayList<String> list = new ArrayList<>();
    SQLiteDatabase db = getReadableDatabase();
    
    Cursor cursor = db.rawQuery(
        "SELECT sqlite_source_id() as source_id FROM " + TABLE_NAME + " LIMIT 1", null);

    if (cursor.moveToFirst()) {
        String sourceId = cursor.getString(0);
        list.add("SQLite Source ID: " + sourceId);
    }
    cursor.close();
    return list;
}

Cấu trúc Source ID

sqlite_source_id() → "YYYY-MM-DD HH:MM:SS "
Ví dụ: "2023-10-15 14:22:10 7a3b8c9d2e1f4567890abcdef1234567890abcd"
  • Ngày giờ build (UTC)
  • Git commit hash (SHA-1 hoặc SHA-3)

Kết quả

Lấy Source ID SQLite với sqlite_source_id() trong Android

Hiển thị Source ID đầy đủ cho từng bản ghi.

Phân biệt version vs source_id

HàmVí dụDùng khi
sqlite_version()"3.43.2"Kiểm tra tính năng, compatibility
sqlite_source_id()"2023-09-15 10:30:00 abc123..."Debug build cụ thể, báo lỗi upstream

Ứng dụng

  • Báo bug SQLite: kèm source_id để dev team reproduce chính xác.
  • Kiểm tra bản vá bảo mật: so sánh commit hash với security advisory.
  • Reproducible builds: xác minh binary khớp source.

Lấy trong Java code

Cursor cursor = db.rawQuery("SELECT sqlite_source_id()", null);
if (cursor.moveToFirst()) {
    String sourceId = cursor.getString(0);
    // Log hoặc gửi crash report
}
cursor.close();