பயனர் அளவீடுகள்

பயனர் அளவீடுகள் என்றால் என்ன?

நீங்கள் பூட்டுத் திரையில் பார்த்தால், நீங்கள் ஒரு வட்டத்தைக் காண்பீர்கள். வட்டத்தின் உள்ளே உரை உள்ளது. நெருக்கமாகப் பாருங்கள், மேலும் உரையில் பயனரின் செயல்பாடு தொடர்பான தரவு இருப்பதை நீங்கள் கவனிப்பீர்கள். வட்டத்தின் நடுவில் இருமுறை தட்டவும், மேலும் பயனரைப் பற்றி மேலும் "அளவீடுகளை" காண்பீர்கள்.

../../_images/met1.png

இது "இன்று அனுப்பப்பட்ட 7 குறுஞ்செய்திகள்" காட்டுகிறது. அது எப்படி தெரியும்?

../../_images/met2.png

இது 3 வது தரப்பு பயன்பாட்டிலிருந்து (நஎண்ணி) பயனர் அளவீட்டு அம்சத்தைப் பயன்படுத்துகிறது.

பெரும்பாலும், இந்த செய்திகள் அவை எதைக் கணக்கிடுகின்றன, எந்த பயன்பாடு தொடர்புடையது என்பதை தெளிவாகக் கூறுகின்றன. ஆனால் இந்த அளவீடுகள் எங்கிருந்து வருகின்றன?

எனது பயன்பாட்டில் பயனர் அளவீடுகளை எவ்வாறு பயன்படுத்துவது?

பின்வரும் தகவல்கள் அனைத்தும் ncounter க்கான குறியீட்டின் அடிப்படையில் இருக்கும்.

உங்கள் பயன்பாட்டின் Apparmor கோப்பில் கொள்கையில் usermetrics ஐக் கொண்டிருக்க வேண்டும்:

{
    "policy_groups": [
        "usermetrics"
    ],
    "policy_version": 16.04
}

அடுத்து, பயனர் அளவீடுகளைக் கையாளும் QML கோப்பில் நீங்கள் தொகுதியை இறக்குமதி செய்ய வேண்டும்:

import UserMetrics 0.1

(இதன் மூலம் புதுப்பிக்கப்பட்ட பதிப்புகள் 0.1) இருக்கலாம்)

அடுத்து, குறிப்பிட்ட மெட்ரிக் குறியீட்டில் ஒரு பொருளாக வரையறுக்கப்பட வேண்டும்:

Metric { // Define the Metric object.
    property string circleMetric // Create a string-type variable called "circleMetric". This is so you can update it later from somewhere else.
    id: metric // A name to reference the metric elsewhere in the code. i.e. when updating format values below.
    name: "nCounter" // This is a unique ID for storing the user metric data
    format: circleMetric // This is the metric/message that will display "today". Again it uses the string variable that we defined above
    emptyFormat: i18n.tr("Check nCounter") // This is the metric/message for tomorrow. It will "activate" once the day roles over and replaces "format". Here I have use a simple translatable string instead of a variable because I didn’t need it to change.
    domain: "ncounter.joe" // This is the appname, based on what you have in your app settings. Presumably this is how the system lists/ranks the metrics to show on the lock screen.
}

இப்போது மெட்ரிக் உருவாக்கப்பட்டுள்ளதால், மெட்ரிக் பொருளில் உள்ள மாறிகளைக் குறிப்பிடுவதன் மூலம் ஒரு நிகழ்வு நடைபெறும்போது "வடிவம்" அல்லது "வெற்றுஃபார்மேட்" புதுப்பிக்கலாம்.

onButtonPressed: {
    metric.circleMetric = "New Metric Message"
    metric.update(0)
    console.log("Metric updated")
}

மெட்ரிக் பொருளுக்குள் இருக்கும் வட்டமெதி சரம் மாறிக்கு புதிய மதிப்பை இங்கே ஒதுக்குகிறோம்:

(வட்டமளிப்பு என்பது வடிவத்திற்கு ஒதுக்கப்பட்ட மாறி மதிப்பு என்பதை நினைவில் கொள்ளுங்கள்)

மெட்ரிக் ஐடி [புள்ளி] மாறி பெயர் [சமம்] புதிய மாறி செய்தி

metric.circleMetric = "புதிய மெட்ரிக் செய்தி"

மெட்ரிக்கைப் புதுப்பிக்க பூட்டுத் திரையை நாங்கள் சொல்கிறோம்.

மெட்ரிக் ஐடி [டாட்] புதுப்பிப்பு (வடிவமைப்பில் சேர்க்கப்பட்டால் அமைக்க குறிப்பிட்ட தொகை)

metric.update(0)

(குறிப்பு: இந்த எடுத்துக்காட்டில், மெட்ரிக் மதிப்பில் ஒரு கவுண்டர் இல்லை என்பதால் 0 தன்னிச்சையானது)

இன்று மெட்ரிக்கை புதுப்பித்துள்ளோம். நேரம் நாளைக்கு உருளும் போது, மெட்ரிக் வெற்றுஃபார்மேட் இல் உள்ளவற்றிற்கு மீட்டமைக்கப்படும்.

பெரும்பாலான பயன்பாடுகளுக்கு, இது செய்திகள், அழைப்புகள் போன்றவற்றுக்கு 0 எண்ணிக்கையை உருவாக்குகிறது.

பயனர் அளவீடுகள் எவ்வாறு செயல்படுகின்றன?

பயனர் அளவீடுகள் இரண்டு "வடிவங்களால்" ஆனவை:

  • இன்றைய அளவீடுகள்/செய்திகள் (வடிவமைப்பு)

  • நாளைய அளவீடுகள்/செய்திகள் (காலி வடிவம்)

வெற்றுஃபார்மேட் இன் மதிப்பு, வடிவமைப்பு இல் எந்த மதிப்பும் சேமிக்கப்படாதபோது பூட்டுத் திரையில் காண்பிக்கப்படும். வடிவமைப்பு இன் புதிய மதிப்பைக் காண்பிக்க மெட்ரிக் புதுப்பிக்கப்பட வேண்டும்.

மெட்ரிக்கைப் புதுப்பிக்க இரண்டு விருப்பங்கள் உள்ளன:

  • மெட்ரிக்கை ஒரு குறிப்பிட்ட தொகைக்கு அமைக்கவும்:

metricid.update (x) (அங்கு ஃச் என்பது எதிர் மதிப்புக்கு அமைக்க பல வகை இரட்டை ஆகும்). மெட்ரிஅறிவிலி என்பது ஐடி: என்பது மெட்ரிக் உருப்படியில் குறிப்பிடப்பட்டுள்ளது. %1 ஐப் பயன்படுத்துவதன் மூலம் வடிவமைப்பு அமைப்பில் எதிர் மதிப்பு சேர்க்கப்படலாம். எ.கா. வடிவம்: "%1 பொத்தான்கள் இன்று அழுத்தப்படுகின்றன"

  • மெட்ரிக்கை அதிகரிக்கவும்:

metricid.increment (x) (அங்கு ஃச் என்பது தற்போதைய கவுண்டரில் சேர்க்கும் அளவு)

மெட்ரிக் ஒவ்வொரு நாளும் வெற்றுஃபார்மேட் இல் சேமிக்கப்பட்ட மதிப்புக்கு மீட்டெடுக்கும்.

ஒரு குறிப்பிட்ட நிகழ்வு நடைபெறும்போதெல்லாம் "வடிவங்களை" அமைத்து புதுப்பிப்பதன் மூலம் பயன்பாடுகள் பயனர் அளவீடுகளைப் பயன்படுத்துகின்றன. எ.கா. நீங்கள் டெலிகிராமில் அனுப்பு என்பதை அழுத்தும்போது, அல்லது தொலைபேசி அழைப்பைப் பெறும்போது. பயன்பாடு கையாளுதலுக்கான தரவைச் சேமிக்கக்கூடும், ஆனால் பொதுவாக தரவு கணினியில் சேமிக்கப்படுகிறது (/var/lib/usermetrics).

(இந்த வலைப்பதிவு இடுகையைப் பார் for a simple example)

வரம்புகள் மற்றும் அதிசயங்கள்

ஒரு மெட்ரிக் பதிவு செய்யப்பட்டவுடன், பயன்பாடு நிறுவல் நீக்கப்பட்ட பிறகும் அது பூட்டுத் திரையில் இருக்கும். ஒரு தரவுத்தள கோப்பு (டிபி) /var/lib/usermetrics இல் சேமிக்கப்படுகிறது, இது ரூட் மூலம் நீக்கப்படலாம் (ஆனால் சூடோவுடன் அல்ல). இந்த கோப்பை நீக்கி மறுதொடக்கம் செய்வது சேமிக்கப்பட்ட அனைத்து அளவீடுகளையும் அகற்றும். மறைமுகமாக, டி.பி. கோப்பை நீக்குவதற்கு பதிலாக திருத்தலாம்.

"வடிவங்கள்" எவ்வாறு அமைக்கப்பட்டன என்பதை அடிப்படையாகக் கொண்டு, ஒரு நாளுக்கு அப்பால் இயங்கும் எண்ணிக்கையை பராமரிப்பது கடினம் என்று தெரிகிறது (சாத்தியமற்றது என்றாலும். பஞ்சுபோன்ற) ஐப் பார்க்கவும்.

Ncounter பயன்பாட்டின் விசயத்தில். நான் நாட்களின் எண்ணிக்கையை எண்ண விரும்பினேன், ஆனால் மெட்ரிக் ஒவ்வொரு நாளும் "மீட்டமைக்கிறது" என்பதால், அது ஒரு சிக்கலை முன்வைக்கிறது. பயன்பாடு திறக்கப்படும் ஒவ்வொரு முறையும் மெட்ரிக்கைப் புதுப்பிக்கும் ஒரு பணித்தொகுப்பை நான் உருவாக்கினேன். எனவே, வெற்றுஃபார்மட் (இயல்புநிலை) பயன்பாட்டைத் திறக்க பயனரிடம் கூறுகிறது. எவ்வாறாயினும், இது மெட்ரிக்கின் நோக்கத்தை முழுவதுமாக தோற்கடிக்கிறது, அன்றைய நாள் சுத்தமாக புள்ளிவிவர நினைவூட்டலைக் கொண்டிருப்பதைத் தவிர.

ஒரு குறிப்பிட்ட பயன்பாட்டுக் குறியீட்டிலிருந்து தரவை மீட்டெடுக்க ஒரு செயல்முறை பின்னணியில் (எ.கா. CRON) சுயாதீனமாக இயங்க ஒரு வழி இருக்க வேண்டும். ஒரு முன்னணி காட்டி வானிலை பயன்பாடு. பயன்பாட்டைத் திறக்காமல் வானிலை குறிகாட்டியை தானாக புதுப்பிக்க இது ஒவ்வொரு ஃச் நிமிடங்களுக்கும் ஒரு செயல்முறையை இயக்குகிறது.