मालवेअर हे अनाहूत किंवा धोकादायक प्रोग्राम आहेत जे...
![व्हायरस आणि मालवेअर काढून टाकण्यासाठी सर्वोत्तम उपयुक्तता](https://i2.wp.com/webhelper.info/images/danger.jpg)
विषय पर्यायी स्रोतअँड्रॉइडसाठी सॉफ्टवेअर आणि विशेषतः पर्यायी “बाजार” हे बऱ्याच वेळा आधीच तयार केले गेले आहेत, परंतु त्यांच्या वर्णन केलेल्या बहुतेक साइट्स उघडपणे वेरेझ प्रजनन ग्राउंड होत्या (म्हणूनच मी दुवे देत नाही). येथे मी F-Droid.org प्रकल्पाबद्दल बोलू इच्छितो, ज्याचा उद्देश वापरकर्त्यांसाठी मुक्त स्रोत अनुप्रयोग एकत्रित करणे आणि सहज उपलब्ध करून देणे आहे. मूळ सांकेतिक शब्दकोश(ओपन सोर्स) आणि वापर आणि सुधारणेसाठी स्पष्ट परवाने.
आता विक्रेते ज्याला “App Stores” आणि “Markets” म्हणतात ते Linux वापरकर्त्यांसाठी एक दशकाहून अधिक काळापासून उपलब्ध आहे आणि ते “नेटवर्क पॅकेज रेपॉजिटरी” म्हणून ओळखले जाते. पॅकेज मॅनेजर ही संकल्पना अनेक दशकांपूर्वीची आहे आणि ती सर्वात मजबूत आहे लिनक्स बाजू. आश्चर्याची गोष्ट नाही की, ही संकल्पना या क्षेत्रातील "सर्वोत्तम सराव" बनली आहे, इतकी की मायक्रोसॉफ्टने स्वतःचे पॅकेज मॅनेजर रिलीझ आणि प्रमोट केले आहे.
बरं, चांगल्या कल्पना जिंकल्या आहेत आणि Android साठी Android Marketplace आहे. असे दिसते की आपण ते वापरण्यासाठी पुरेसे मिळवू शकत नाही, कारण बहुतेक वापरकर्ते जे इतर कोणत्याही गोष्टीशी परिचित नाहीत. परंतु Android Market मध्ये अनेक समस्या आहेत:
मुक्त स्त्रोताशी परिचित असलेल्या अनेकांसाठी, हे स्पष्ट आहे की ज्यांना श्रवणार्थाने आणि "अंतर्ज्ञानाने" (“फ्रीबी, सर!”) अधिक माहिती आहे त्यांच्यासाठी हे महत्त्वाचे का आहे; चांगला मार्गकिमान स्वीकार्य सॉफ्टवेअर गुणवत्तेची हमी. अंतर्गत " किमान गुणवत्ता» अनुपस्थितीचा संदर्भ देते दुर्भावनापूर्ण कोडआणि स्पष्ट चुका आणि वगळणे. वापरकर्त्यांनी स्वतः कोड नियंत्रित करून हे साध्य केले आहे. अर्थात, साठी विशिष्ट वापरकर्ताअसे नियंत्रण साध्य करणे कठीण आहे, परंतु मुक्त स्रोत पूर्णपणे परस्पर मदत करणाऱ्या समुदायाच्या संकल्पनेवर आधारित आहे (ग्राहक/उत्पादक संकल्पनेऐवजी). म्हणूनच ज्यांना पॅच पाठवायचे आहे त्यांच्यासाठी शीर्षकात “F-Droid - “बाजार” हा वाक्यांश समाविष्ट आहे.
अर्थात, F-Droid चे मुख्य सौंदर्य डिव्हाइसवर चालणारे पॅकेज व्यवस्थापक आहे. ते या पृष्ठावरून डाउनलोड केले जाऊ शकते (किंवा थेट दुवा, लेखाच्या सुरुवातीला QR कोड). मुख्य विंडोचा स्क्रीनशॉट खाली दर्शविला आहे:
तीन टॅब उपस्थित आहेत: इंस्टॉलेशनसाठी सॉफ्टवेअर उपलब्ध आहे, आधीच इंस्टॉल केलेले आहे आणि इंस्टॉल केलेल्यासाठी अपडेट्स (तसे, मॅनेजर स्वतः त्याच प्रकारे अपडेट केला जातो). नावाने शोध समर्थित आहे. तुम्हाला स्वारस्य असलेल्या अर्जाबद्दल अधिक माहिती मिळू शकते तपशीलवार माहिती- वर्णन, लिंक मुख्यपृष्ठ, बग ट्रॅकर, स्रोत कोड भांडार, देणगी लिंक. शेवटी, इंस्टॉलेशनसाठी उपलब्ध असलेल्या अनुप्रयोगाच्या आवृत्त्या देखील येथे सादर केल्या आहेत. आणि इथे F-Droid चे वैशिष्ट्य आहे जे नेहमी Linux वितरणासाठी देखील उपलब्ध नसते: ऍप्लिकेशनच्या अनेक आवृत्त्या समर्थित आहेत, ज्या स्वस्त आणि "जुन्या" डिव्हाइसेसच्या मालकांद्वारे कौतुक केल्या जातील ज्यांच्या विक्रेत्यांनी नवीन आवृत्त्यांसाठी अपग्रेड जारी करण्यास नकार दिला आहे. Android: प्रोग्रामची नवीनतम आवृत्ती कार्य करत नसल्यास, आपण नेहमी मागीलपैकी एक वापरून पाहू शकता.
F-Droid हे अँड्रॉइड ऍप्लिकेशन्सचे भांडार आहे ज्यामध्ये केवळ विनामूल्य उपयुक्तता आहेत.
अनधिकृत F-Droid स्टोअर विनामूल्य सॉफ्टवेअर डाउनलोड करण्याची क्षमता देते. येथे तुम्हाला फक्त जे उपलब्ध आहे तेच सापडत नाही गुगल प्ले, परंतु अधिकृत बाजारपेठेत संयम उत्तीर्ण न केलेले प्रोग्राम देखील. बहुतांश कॅटलॉगमध्ये ॲड ब्लॉकर्स, ऑफलाइन डिक्शनरी, हॅकिंग युटिलिटीज आणि इतर तत्सम सॉफ्टवेअर असतात.
दुर्दैवाने, F-Droid मध्ये बरेच लोकप्रिय प्रोग्राम आहेत आणि व्यावहारिकरित्या कोणतेही गेम नाहीत. प्रतिष्ठापन प्रक्रिया देखील फार सोयीस्कर नाही - विनंती केलेल्या परवानग्या प्रतिष्ठापन प्रक्रिया सुरू झाल्यानंतर प्रदर्शित केल्या जातात. स्थापित केलेले क्लायंट थेट इंटरफेसमधून अद्यतनित किंवा काढले जावेत. F-Droid स्वतंत्रपणे अधिक वर्तमान आवृत्त्यांच्या स्वरूपाचे निरीक्षण करते आणि वापरकर्त्याला त्याबद्दल सूचित करते. हे लक्षात घेणे महत्त्वाचे आहे की रेपॉजिटरीमधील सर्व प्रोग्राम्स ओपन सोर्स आहेत. त्यामुळे तुम्ही त्यांच्या सुरक्षिततेची खात्री बाळगू शकता.
F-Droid ला नोंदणीची आवश्यकता नाही. आणखी एक एक आनंददायी प्लसया मार्केटचा वापर करणे म्हणजे तृतीय-पक्ष स्त्रोतांकडून पूर्वी स्थापित केलेले अनुप्रयोग अद्यतनित करण्याची क्षमता. तथापि, त्याच्या सर्व फायद्यांसह, स्टोअरमध्ये एक ऐवजी लक्षणीय कमतरता आहे. तुम्ही सुपरयूझर अधिकार (रूट) मिळवल्याशिवाय ते वापरू शकत नाही.
मध्ये Android HTTP POST आणि GET ट्यूटोरियल, मी HTTP कसे पाठवायचे ते स्पष्ट केले आहे पोस्ट आणि Android मध्ये प्रोग्रामॅटिक पद्धतीने विनंती मिळवा.
आपण वापरू शकतो org.apache.http.client.HttpClient HTTP विनंत्या करण्यासाठी वर्ग.
HTTP POST विनंत्या पाठवण्यासाठी पायऱ्या फॉलो करा.
HttpClient httpClient = नवीन DefaultHttpClient();
2. HttpPost चे एक ऑब्जेक्ट तयार करा
HttpPost httpPost = नवीन HttpPost("http://www.example.com");
3. POST पॅरामीटर्स जोडा
यादी
4. POST डेटा एन्कोड करा
HTTP विनंती करण्यापूर्वी आम्हाला आमचा डेटा वैध URL फॉरमॅटमध्ये एन्कोड करणे आवश्यक आहे.
//पोस्ट डेटा एन्कोड करण्याचा प्रयत्न करा ( httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair)); ) पकडा (असमर्थितEncodingException e) ( e.printStackTrace(); )
5. शेवटी HTTP POST विनंती करणे
प्रयत्न करा ( HttpResponse response = httpClient.execute(httpPost); // लॉग Log.d("Http पोस्ट प्रतिसाद:", response.toString()); ) पकडण्यासाठी प्रतिसाद लिहा (ClientProtocolException e) ( // लॉग अपवाद e.printStackTrace) (); ) पकड (IOException e) ( // लॉग अपवाद e.printStackTrace(); )
अशा विनंत्या करण्यापूर्वी तुम्ही तुमच्या ॲपमध्ये इंटरनेट परवानगी जोडल्याची खात्री करा अन्यथा तुम्हाला काही त्रुटी दिसू शकतात.
तुमच्या ॲप्लिकेशन टॅगवरील मॅनिफेस्ट फाइलमध्ये ही ओळ जोडून तुम्ही इंटरनेट परवानग्या जोडू शकता.
HTTP GET विनंती पाठवण्यासाठी चरणांचे अनुसरण करा.
1. HttpClient चे ऑब्जेक्ट तयार करा
HttpClient क्लायंट = नवीन DefaultHttpClient();
2. HttpGet चे एक ऑब्जेक्ट तयार करा
HttpGet विनंती = नवीन HttpGet("http://www.example.com");
3. शेवटी HTTP विनंती करा
Http प्रतिसाद प्रतिसाद; प्रयत्न करा ( प्रतिसाद = client.execute(request); Log.d("GET विनंतीचा प्रतिसाद", response.toString()); ) पकडा (ClientProtocolException e) ( // TODO ऑटो-जनरेट केलेले कॅच ब्लॉक e.printStackTrace(); ) पकडणे (IOException e) ( // TODO स्वयं-निर्मित कॅच ब्लॉक e.printStackTrace(); )
उच्च स्तरावर, तुम्ही रिक्वेस्टक्व्यू तयार करून आणि ऑब्जेक्ट्सची विनंती करून ती पास करून व्हॉली वापरता. RequestQueue नेटवर्क ऑपरेशन्स चालवण्यासाठी, कॅशेमधून वाचन आणि लिहिण्यासाठी आणि प्रतिसाद पार्स करण्यासाठी वर्कर थ्रेड्स व्यवस्थापित करते. विनंत्या कच्च्या प्रतिसादांचे पार्सिंग करतात आणि व्हॉली हे विश्लेषित प्रतिसाद परत डिलिव्हरीसाठी मुख्य थ्रेडवर पाठवण्याची काळजी घेते.
हा धडा Volley.newRequestQueue सुविधा पद्धत वापरून विनंती कशी पाठवायची याचे वर्णन करतो, जी तुमच्यासाठी विनंतीपंक्त सेट करते. पुढील धडा पहा, माहितीस्वतः विनंती रांग कशी सेट करावी.
हा धडा विनंतीपंक्तीत विनंती कशी जोडायची आणि विनंती कशी रद्द करायची याचे देखील वर्णन करतो.
व्हॉली वापरण्यासाठी, तुम्ही तुमच्या ॲपच्या मॅनिफेस्टमध्ये परवानगी जोडणे आवश्यक आहे. त्याशिवाय, तुमचा ॲप नेटवर्कशी कनेक्ट करण्यात सक्षम होणार नाही.
Volley एक सोयीस्कर पद्धत प्रदान करते Volley.newRequestQueue जी तुमच्यासाठी डिफॉल्ट मूल्ये वापरून विनंतीपंक्त सेट करते आणि रांग सुरू करते. उदाहरणार्थ:
व्हॉली नेहमी मुख्य थ्रेडवर विश्लेषित प्रतिसाद वितरीत करते. मुख्य थ्रेडवर चालणे प्राप्त झालेल्या डेटासह UI नियंत्रणे पॉप्युलेट करण्यासाठी सोयीस्कर आहे, कारण तुम्ही थेट तुमच्या प्रतिसाद हँडलरकडून UI नियंत्रणे मुक्तपणे सुधारू शकता, परंतु लायब्ररीद्वारे प्रदान केलेल्या अनेक महत्त्वाच्या शब्दार्थांसाठी हे विशेषतः महत्वाचे आहे, विशेषत: विनंत्या रद्द करण्याशी संबंधित. .
Volley.newRequestQueue सुविधा पद्धत वापरण्याऐवजी स्वतः विनंतीपंक्ती कशी सेट करायची याचे वर्णन पहा.
विनंती पाठवण्यासाठी, तुम्ही फक्त एक तयार करा आणि वर दाखवल्याप्रमाणे add() सह विनंतीपंक्तीत जोडा. एकदा तुम्ही विनंती जोडली की ती पाइपलाइनमधून फिरते, सर्व्हिस केली जाते आणि त्याचा कच्चा प्रतिसाद विश्लेषित आणि वितरित केला जातो.
जेव्हा तुम्ही add() ला कॉल करता, तेव्हा व्हॉली एक कॅशे प्रोसेसिंग थ्रेड आणि नेटवर्क डिस्पॅच थ्रेड्सचा एक पूल चालवते. जेव्हा तुम्ही रांगेत विनंती जोडता, तेव्हा ती कॅशे थ्रेडद्वारे उचलली जाते आणि ट्राय केली जाते: विनंती कॅशेमधून सेवा केली जाऊ शकते, तर कॅशे केलेला प्रतिसाद कॅशे थ्रेडवर पार्स केला जातो आणि विश्लेषित प्रतिसाद मुख्य थ्रेडवर वितरित केला जातो. विनंती कॅशेमधून सर्व्हिस केली जाऊ शकत नसल्यास, ती नेटवर्क रांगेत ठेवली जाते. पहिला उपलब्ध नेटवर्क थ्रेड रांगेतून विनंती घेतो, HTTP व्यवहार करतो, वर्कर थ्रेडवरील प्रतिसादाचे विश्लेषण करतो, कॅशेवर प्रतिसाद लिहितो, आणि पोस्टवितरणासाठी मुख्य थ्रेडवर विश्लेषित प्रतिसाद परत.
लक्षात घ्या की I/O अवरोधित करणे आणि पार्सिंग/डीकोडिंग सारख्या महागड्या ऑपरेशन्स वर्कर थ्रेड्सवर केल्या जातात. आपण कोणत्याही थ्रेडवरून विनंती जोडू शकता, परंतु प्रतिसाद नेहमी मुख्य थ्रेडवर वितरित केले जातात.
आकृती 1 विनंतीचे जीवन दर्शवते:
आकृती 1.एका विनंतीचे जीवन.
विनंती रद्द करण्यासाठी, तुमच्या विनंती ऑब्जेक्टवर cancel() वर कॉल करा. एकदा रद्द केल्यानंतर, व्हॉली हमी देते की तुमच्या प्रतिसाद हँडलरला कधीही कॉल केला जाणार नाही. याचा अर्थ व्यवहारात असा आहे की तुम्ही तुमच्या सर्व प्रलंबित विनंत्या तुमच्या क्रियाकलाप पद्धतीत रद्द करू शकता आणि तुम्हाला getActivity() == null तपासण्यासाठी तुमच्या प्रतिसाद हँडलरला कचरा टाकण्याची गरज नाही, मग onSaveInstanceState() ला आधीच कॉल केला गेला असेल. , किंवा इतर बचावात्मक बॉयलरप्लेट.
या वर्तनाचा फायदा घेण्यासाठी, तुम्हाला सामान्यतः सर्व इन-फ्लाइट विनंत्या योग्य वेळी रद्द करण्यात सक्षम होण्यासाठी त्यांचा मागोवा घ्यावा लागेल. एक सोपा मार्ग आहे: तुम्ही प्रत्येक विनंतीसोबत टॅग ऑब्जेक्ट जोडू शकता. त्यानंतर तुम्ही रद्द करण्याच्या विनंत्यांची व्याप्ती देण्यासाठी हा टॅग वापरू शकता. उदाहरणार्थ, तुम्ही तुमच्या सर्व विनंत्या टॅग करू शकता सहते च्या वतीने केले जात आहेत आणि कडून requestQueue.cancelAll(this) वर कॉल करा. त्याचप्रमाणे, तुम्ही सर्व लघुप्रतिमा विनंत्या त्यांच्या संबंधित टॅबसह टॅबमध्ये टॅग करू शकता आणि याची खात्री करण्यासाठी स्वाइप करून रद्द करू शकता. नवीनटॅब दुसऱ्याच्या विनंत्यांद्वारे धरून ठेवला जात नाही.
येथे एक उदाहरण आहे जे टॅगसाठी स्ट्रिंग मूल्य वापरते:
विनंत्या रद्द करताना काळजी घ्या. तुम्ही एखादे राज्य पुढे नेण्यासाठी किंवा दुसरी प्रक्रिया सुरू करण्यासाठी तुमच्या प्रतिसाद हँडलरवर अवलंबून असाल, तर तुम्हाला याचा हिशेब देणे आवश्यक आहे. पुन्हा, प्रतिसाद हँडलरला कॉल केला जाणार नाही.