中文版本请参看这里
MMKV เป็นเฟรมเวิร์กการจัดเก็บคีย์-ค่ามือถือ ที่มีประสิทธิภาพ ขนาดเล็ก ใช้งานง่าย ซึ่งใช้ในแอปพลิเคชัน WeChat ขณะนี้มีให้บริการบน Android , iOS/macOS , Windows , POSIX และ HarmonyOS NEXT
มีประสิทธิภาพ . MMKV ใช้ mmap เพื่อให้หน่วยความจำซิงค์กับไฟล์ และใช้ protobuf เพื่อเข้ารหัส/ถอดรหัสค่า ใช้ประโยชน์จาก Android ให้เกิดประโยชน์สูงสุดเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
ง่ายต่อการใช้งาน คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง sync
ไม่ต้อง apply
การโทร
เล็ก .
เพิ่มบรรทัดต่อไปนี้ใน build.gradle
บนโมดูลแอปของคุณ:
dependencies {
implementation ' com.tencent:mmkv:2.0.1 '
// replace "2.0.1" with any available version
}
สำหรับตัวเลือกการติดตั้งอื่นๆ โปรดดูการตั้งค่า Android
คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง sync
ไม่ต้อง apply
การโทร
ตั้งค่า MMKV เมื่อเริ่มต้นแอป เช่น คลาส Application
ของคุณ เพิ่มบรรทัดเหล่านี้:
public void onCreate () {
super . onCreate ();
String rootDir = MMKV . initialize ( this );
System . out . println ( "mmkv root: " + rootDir );
//……
}
MMKV มีอินสแตนซ์ส่วนกลางที่สามารถใช้ได้โดยตรง:
import com . tencent . mmkv . MMKV ;
MMKV kv = MMKV . defaultMMKV ();
kv . encode ( "bool" , true );
boolean bValue = kv . decodeBool ( "bool" );
kv . encode ( "int" , Integer . MIN_VALUE );
int iValue = kv . decodeInt ( "int" );
kv . encode ( "string" , "Hello from mmkv" );
String str = kv . decodeString ( "string" );
MMKV ยังรองรับ การเข้าถึงแบบหลายกระบวนการ สามารถดูบทช่วยสอนแบบเต็มได้ที่นี่ บทช่วยสอน Android
เมื่อเขียน int
แบบสุ่ม 1,000 ครั้ง เราจะได้แผนภูมินี้:
สำหรับข้อมูลการวัดประสิทธิภาพเพิ่มเติม โปรดดูที่การวัดประสิทธิภาพของเรา
มีประสิทธิภาพ . MMKV ใช้ mmap เพื่อให้หน่วยความจำซิงค์กับไฟล์ และใช้ protobuf เพื่อเข้ารหัส/ถอดรหัสค่า ใช้ประโยชน์จาก iOS/macOS ให้เกิดประโยชน์สูงสุดเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
ง่ายต่อการใช้งาน คุณสามารถใช้ MMKV ได้ทุกที่ ไม่จำเป็นต้องกำหนดค่าใดๆ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่จำเป็นต้องซิ synchronize
การโทร
เล็ก .
cd
ไปที่ไดเร็กทอรีโปรเจ็กต์ของคุณ รัน pod repo update
เพื่อให้ CocoaPods ทราบถึงเวอร์ชัน MMKV ล่าสุดที่มีอยู่pod 'MMKV'
ให้กับเป้าหมายแอปของคุณpod install
;.xcworkspace
ที่สร้างโดย CocoaPods#import <MMKV/MMKV.h>
ไปยังไฟล์ต้นฉบับของคุณ เท่านี้ก็เสร็จเรียบร้อยสำหรับตัวเลือกการติดตั้งอื่นๆ โปรดดูการตั้งค่า iOS/macOS
คุณสามารถใช้ MMKV ได้ทุกที่ ไม่จำเป็นต้องกำหนดค่าใดๆ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่จำเป็นต้องซิ synchronize
การโทร ตั้งค่า MMKV เมื่อเริ่มต้น App ใน -[MyApp application: didFinishLaunchingWithOptions:]
เพิ่มบรรทัดเหล่านี้:
- ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
// init MMKV in the main thread
[MMKV initializeMMKV: nil ];
// ...
return YES ;
}
MMKV มีอินสแตนซ์ส่วนกลางที่สามารถใช้ได้โดยตรง:
MMKV *mmkv = [MMKV defaultMMKV ];
[mmkv setBool: YES forKey: @" bool " ];
BOOL bValue = [mmkv getBoolForKey: @" bool " ];
[mmkv setInt32: - 1024 forKey: @" int32 " ];
int32_t iValue = [mmkv getInt32ForKey: @" int32 " ];
[mmkv setString: @" hello, mmkv " forKey: @" string " ];
NSString *str = [mmkv getStringForKey: @" string " ];
MMKV ยังรองรับ การเข้าถึงแบบหลายกระบวนการ สามารถดูบทแนะนำแบบเต็มได้ที่นี่
เมื่อเขียน int
แบบสุ่ม 10,000 ครั้ง เราจะได้แผนภูมินี้:
สำหรับข้อมูลการวัดประสิทธิภาพเพิ่มเติม โปรดดูที่การวัดประสิทธิภาพของเรา
มีประสิทธิภาพ . MMKV ใช้ mmap เพื่อให้หน่วยความจำซิงค์กับไฟล์ และใช้ protobuf เพื่อเข้ารหัส/ถอดรหัสค่า ใช้ประโยชน์จาก Windows ให้เกิดประโยชน์สูงสุดเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
ง่ายต่อการใช้งาน คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง save
ไม่จำเป็นต้องทำการ sync
เล็ก .
รับซอร์สโค้ดจากที่เก็บ git:
git clone https://github.com/Tencent/MMKV.git
เพิ่ม Core/core.vcxproj
ให้กับโซลูชันของคุณ
เพิ่มโปรเจ็กต์ MMKV
ลงในการขึ้นต่อกันของโปรเจ็กต์ของคุณ
เพิ่ม $(OutDir)include
ให้กับ C/C++
ของโปรเจ็กต์ของคุณ -> General
-> Additional Include Directories
;
เพิ่ม $(OutDir)
ให้กับ Linker
ของโปรเจ็กต์ของคุณ -> General
-> Additional Library Directories
;
เพิ่ม mmkv.lib
ให้กับ Linker
ของโปรเจ็กต์ของคุณ -> Input
-> Additional Dependencies
;
เพิ่ม #include <MMKV/MMKV.h>
ลงในไฟล์ต้นฉบับของคุณ เท่านี้ก็เสร็จเรียบร้อย
บันทึก:
MT/MTd
ตามค่าเริ่มต้น หากโปรเจ็กต์ของคุณใช้ MD/MDd
คุณควรเปลี่ยนการตั้งค่าของ MMKV ให้ตรงกับโปรเจ็กต์ของคุณ ( C/C++
-> Code Generation
-> Runtime Library
) หรือในทางกลับกันPlatform Toolset
หากคุณใช้ Visual Studio เวอร์ชันอื่นสำหรับตัวเลือกการติดตั้งอื่นๆ โปรดดูที่ การตั้งค่า Windows
คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง sync
ไม่ต้อง save
การโทร
ตั้งค่า MMKV เมื่อเริ่มต้น App พูดใน main()
เพิ่มบรรทัดเหล่านี้:
# include < MMKV/MMKV.h >
int main () {
std::wstring rootDir = getYourAppDocumentDir ();
MMKV::initializeMMKV (rootDir);
// ...
}
MMKV มีอินสแตนซ์ส่วนกลางที่สามารถใช้ได้โดยตรง:
auto mmkv = MMKV::defaultMMKV();
mmkv-> set ( true , " bool " );
std::cout << " bool = " << mmkv-> getBool ( " bool " ) << std::endl;
mmkv-> set ( 1024 , " int32 " );
std::cout << " int32 = " << mmkv-> getInt32 ( " int32 " ) << std::endl;
mmkv-> set ( " Hello, MMKV for Windows " , " string " );
std::string result;
mmkv-> getString ( " string " , result);
std::cout << " string = " << result << std::endl;
MMKV ยังรองรับ การเข้าถึงแบบหลายกระบวนการ สามารถดูบทช่วยสอนแบบเต็มได้ที่นี่ Windows Tutorial
มีประสิทธิภาพ . MMKV ใช้ mmap เพื่อให้หน่วยความจำซิงค์กับไฟล์ และใช้ protobuf เพื่อเข้ารหัส/ถอดรหัสค่า ใช้ประโยชน์จาก POSIX ให้เกิดประโยชน์สูงสุดเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
ง่ายต่อการใช้งาน คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง save
ไม่จำเป็นต้องทำการ sync
เล็ก .
รับซอร์สโค้ดจากที่เก็บ git:
git clone https://github.com/Tencent/MMKV.git
แก้ไข CMakeLists.txt
ของคุณ เพิ่มบรรทัดเหล่านั้น:
add_subdirectory (mmkv/POSIX/src mmkv)
target_link_libraries (MyApp
mmkv)
เพิ่ม #include "MMKV.h"
ลงในไฟล์ต้นฉบับของคุณ เท่านี้ก็เสร็จเรียบร้อย
สำหรับตัวเลือกการติดตั้งอื่นๆ โปรดดูการตั้งค่า POSIX
คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง sync
ไม่ต้อง save
การโทร
ตั้งค่า MMKV เมื่อเริ่มต้น App พูดใน main()
เพิ่มบรรทัดเหล่านี้:
# include " MMKV.h "
int main () {
std::string rootDir = getYourAppDocumentDir ();
MMKV::initializeMMKV (rootDir);
// ...
}
MMKV มีอินสแตนซ์ส่วนกลางที่สามารถใช้ได้โดยตรง:
auto mmkv = MMKV::defaultMMKV();
mmkv-> set ( true , " bool " );
std::cout << " bool = " << mmkv-> getBool ( " bool " ) << std::endl;
mmkv-> set ( 1024 , " int32 " );
std::cout << " int32 = " << mmkv-> getInt32 ( " int32 " ) << std::endl;
mmkv-> set ( " Hello, MMKV for Windows " , " string " );
std::string result;
mmkv-> getString ( " string " , result);
std::cout << " string = " << result << std::endl;
MMKV ยังรองรับ การเข้าถึงแบบหลายกระบวนการ สามารถดูบทช่วยสอนแบบเต็มได้ที่นี่ POSIX Tutorial
มีประสิทธิภาพ . MMKV ใช้ mmap เพื่อให้หน่วยความจำซิงค์กับไฟล์ และใช้ protobuf เพื่อเข้ารหัส/ถอดรหัสค่า ใช้ประโยชน์สูงสุดจากแพลตฟอร์มดั้งเดิมเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
ง่ายต่อการใช้งาน คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง sync
ไม่ต้อง flush
การโทร
เล็ก .
ohpm install @tencent/mmkv
คุณสามารถใช้ MMKV ได้ทุกที่ การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกทันที ไม่ต้อง sync
ไม่ต้อง apply
การโทร
ตั้งค่า MMKV เมื่อเริ่มต้นแอป พูดฟังก์ชัน EntryAbility.onCreate()
ของคุณ แล้วเพิ่มบรรทัดเหล่านี้:
import { MMKV } from '@tencent/mmkv' ;
export default class EntryAbility extends UIAbility {
onCreate ( want : Want , launchParam : AbilityConstant . LaunchParam ) : void {
let appCtx = this . context . getApplicationContext ( ) ;
let mmkvRootDir = MMKV . initialize ( appCtx ) ;
console . info ( 'mmkv rootDir: ' , mmkvRootDir ) ;
……
}
MMKV มีอินสแตนซ์ส่วนกลางที่สามารถใช้ได้โดยตรง:
import { MMKV } from '@tencent/mmkv' ;
let mmkv = MMKV . defaultMMKV ( ) ;
mmkv . encodeBool ( 'bool' , true ) ;
console . info ( 'bool = ' , mmkv . decodeBool ( 'bool' ) ) ;
mmkv . encodeInt32 ( 'int32' , Math . pow ( 2 , 31 ) - 1 ) ;
console . info ( 'max int32 = ' , mmkv . decodeInt32 ( 'int32' ) ) ;
mmkv . encodeInt64 ( 'int' , BigInt ( 2 ** 63 ) - BigInt ( 1 ) ) ;
console . info ( 'max int64 = ' , mmkv . decodeInt64 ( 'int' ) ) ;
let str : string = 'Hello OpenHarmony from MMKV' ;
mmkv . encodeString ( 'string' , str ) ;
console . info ( 'string = ' , mmkv . decodeString ( 'string' ) ) ;
let arrayBuffer : ArrayBuffer = StringToArrayBuffer ( 'Hello OpenHarmony from MMKV with bytes' ) ;
mmkv . encodeBytes ( 'bytes' , arrayBuffer ) ;
let bytes = mmkv . decodeBytes ( 'bytes' ) ;
console . info ( 'bytes = ' , ArrayBufferToString ( bytes ) ) ;
อย่างที่คุณเห็น MMKV นั้นค่อนข้างใช้งานง่าย สำหรับเอกสารฉบับเต็ม โปรดดูบทช่วยสอน HarmonyOS NEXT
MMKV ได้รับการเผยแพร่ภายใต้ใบอนุญาต BSD 3-Clause สำหรับรายละเอียด โปรดดูที่ LICENSE.TXT
ตรวจสอบ CHANGELOG.md เพื่อดูรายละเอียดประวัติการเปลี่ยนแปลง
หากคุณสนใจที่จะมีส่วนร่วม โปรดดูที่ CONTRIBUTING.md และเข้าร่วมแผน Tencent OpenSource ของเราด้วย
เพื่อให้ชัดเจนว่าสิ่งที่คาดหวังจากสมาชิกของเรา MMKV ได้นำหลักปฏิบัติที่กำหนดโดย Contributor Covenant ซึ่งใช้กันอย่างแพร่หลาย และเราคิดว่ามันสะท้อนถึงคุณค่าของเราได้ดี สำหรับข้อมูลเพิ่มเติม โปรดดูหลักจรรยาบรรณ
ตรวจสอบคำถามที่พบบ่อยก่อน หากมีคำถามใดๆ อย่าลังเลที่จะสร้างปัญหา
ความเป็นส่วนตัวของผู้ใช้ถือเป็นเรื่องสำคัญอย่างยิ่ง: MMKV ไม่ได้รับ รวบรวม หรืออัปโหลดข้อมูลส่วนบุคคลใด ๆ โปรดดูกฎการคุ้มครองข้อมูลส่วนบุคคลของ MMKV SDK สำหรับรายละเอียด