सर्व्हर विनंतीसह Android अनुप्रयोग. HttpURLConnection: URL शी कनेक्ट करा

व्हायबर डाउनलोड करा 18.02.2019
व्हायबर डाउनलोड करा
Android ॲप स्टोअर कसे आणि का स्थापित करावे - F-Droid

Android ॲप स्टोअर कसे आणि का स्थापित करावे - F-Droid

16.05.2014

तरी ॲप स्टोअर्सस्टोअर आणि गुगल प्लेऑफर मोठी रक्कम iOS आणि Android डिव्हाइसेससाठी ॲप्स, वापरकर्ते नेहमी काहीतरी अधिक शोधत असतील. अशाप्रकारे, iOS साठी सायडिया आहे ज्यामध्ये ऍप्लिकेशन्स, गेम्स आणि ट्वीक्सची एक मोठी कॅटलॉग आहे जी अधिकृत बाजारात सादर केली जात नाही आणि ज्या डिव्हाइसेसवर जेलब्रेक केले गेले आहे त्यांच्यासाठी आहे.

जेव्हा Android चा येतो तेव्हा, तृतीय-पक्ष विकसकांच्या अनुप्रयोगांची संख्या मोजणे जवळजवळ अशक्य आहे, विशेषत: जेव्हा ते येते तेव्हा चीनी उत्पादक AOSP वर आधारित फक्त-वाचनीय स्टोरेज डिव्हाइस. Android साठी Cydia च्या ॲनालॉगला F-Droid म्हटले जाऊ शकते. त्याच्या कॅटलॉगची संख्या हजारपट कमी असताना विनामूल्य अनुप्रयोग Google Play पेक्षा अधिक मुक्त स्रोत, F-Droid आहे पर्यायी दुकान, जे कोणत्याही Android डिव्हाइसवर स्थापित केले जाऊ शकते.

F-Droid डाउनलोड करण्यासाठी, तुम्हाला http://f-droid.org या वेबसाइटवर जाऊन क्लिक करावे लागेल मोठे बटण"F-Droid डाउनलोड करा" या शिलालेखासह निळा. तुम्हाला द्यावेच लागेल असे सांगून चालते Android रिझोल्यूशनतुम्ही आधीपासून असे केले नसल्यास तृतीय-पक्ष APK स्थापित करण्यासाठी. पुढे, इतर अनुप्रयोगांप्रमाणे F-Droid स्थापित केले आहे. स्थापनेनंतर, डिव्हाइस स्क्रीनवर एक लहान लिंक दिसेल.

कॅटलॉग डिझाईन अत्यंत मिनिमलिस्टिक आहे आणि बहु-रंगीत पेक्षा झपाट्याने वेगळे आहे Google इंटरफेसखेळा. तथापि, हे कोणत्याही प्रकारे F-Droid च्या गुणवत्तेपासून कमी होत नाही. "उपलब्ध, स्थापित आणि अद्यतने" अंतर्गत मेनूमध्ये अनुप्रयोगांचे वर्गीकरण केले जाते.

डेव्हलपमेंट श्रेणीमध्ये तुम्हाला GitHub आणि Andlytics क्लायंटसह अनेक भिन्न साधने मिळू शकतात जी तुम्हाला ॲप्लिकेशनची आकडेवारी पाहण्याची परवानगी देतात. प्ले स्टोअरसंबंधित न करता खाते, साठी नियंत्रक Arduino रोबोट्सआणि Balanduino, Bluetooth Termina, Lil' Debi, जे तुम्हाला Android वर Debian Linux स्थापित करण्याची परवानगी देते आणि इतर अनेक.

खेळ विभागात समाविष्ट आहे मोठ्या संख्येनेअसामान्य, परंतु मोहिनीशिवाय नाही, खेळ. त्यामुळे, असंख्य फ्लॅपी बर्ड क्लोनऐवजी, एफ-ड्रॉइड रेट्रो गेम ग्लूमी डन्जियन्स, एक "साप" आणि अगदी निन्टेन्डो एमुलेटर ऑफर करते.

इंटरनेट श्रेणी जवळजवळ प्रत्येकासाठी क्लायंट ऑफर करते विद्यमान सेवा ईमेल, हलके ब्राउझर, RSS वाचक, Reddit आणि BitTorrent क्लायंट. मल्टीमीडिया विभागात तुम्हाला विविध प्रकारचे प्लेअर्स, कॅमेरा ॲप्लिकेशन्स आणि टॅब्लेटसाठी एक ॲकॉर्डियन एमुलेटर देखील मिळू शकेल, जे तुमच्या संभाषणात विविधता आणण्यास आणि तुमचा फुरसतीचा वेळ उजळ करण्यात मदत करेल.

SMS साठी अर्ज, तसेच AutoAnswer आणि AutoBlocking प्रोग्राम फोन आणि SMS विभागात आहेत आणि विविध फायरवॉल आणि इतर अँटीव्हायरस सोल्यूशन्स सुरक्षा श्रेणीमध्ये आहेत.

F-Droid हे अँड्रॉइड ऍप्लिकेशन्सचे भांडार आहे ज्यामध्ये केवळ विनामूल्य उपयुक्तता आहेत.

कार्यक्रम कॅटलॉग

अनधिकृत F-Droid स्टोअर विनामूल्य सॉफ्टवेअर डाउनलोड करण्याची क्षमता देते. येथे तुम्हाला केवळ Google Play वर जे उपलब्ध आहे तेच नाही, तर अधिकृत बाजारपेठेत नियंत्रित न केलेले प्रोग्राम देखील सापडतील. बहुतेककॅटलॉगमध्ये ॲड ब्लॉकर्स, ऑफलाइन डिक्शनरी, हॅकर युटिलिटी आणि इतर तत्सम सॉफ्टवेअर असतात.

दुर्दैवाने, F-Droid मध्ये बरेच लोकप्रिय प्रोग्राम आहेत आणि व्यावहारिकरित्या कोणतेही गेम नाहीत. प्रतिष्ठापन प्रक्रिया देखील फार सोयीची नाही - विनंती केलेल्या परवानग्या प्रतिष्ठापन प्रक्रिया सुरू झाल्यानंतर प्रदर्शित केल्या जातात. स्थापित केलेले क्लायंट थेट इंटरफेसमधून अद्यतनित किंवा काढले जावेत. F-Droid स्वतंत्रपणे अधिक वर्तमान आवृत्त्यांच्या स्वरूपाचे निरीक्षण करते आणि वापरकर्त्याला त्याबद्दल सूचित करते. हे लक्षात घेणे महत्त्वाचे आहे की रेपॉजिटरीमधील सर्व प्रोग्राम्स हे ओपन सोर्स आहेत. त्यामुळे तुम्ही त्यांच्या सुरक्षिततेची खात्री बाळगू शकता.

वापर

F-Droid ला नोंदणीची आवश्यकता नाही. आणखी एक एक आनंददायी प्लसया मार्केटचा वापर करणे म्हणजे तृतीय-पक्ष स्त्रोतांकडून पूर्वी स्थापित केलेले अनुप्रयोग अद्यतनित करण्याची क्षमता आहे. तथापि, त्याच्या सर्व फायद्यांसह, स्टोअरमध्ये एक ऐवजी लक्षणीय कमतरता आहे. तुम्ही सुपरयूझर अधिकार (रूट) मिळवल्याशिवाय ते वापरू शकत नाही.

महत्वाची वैशिष्टे

  • वरील उपकरणांसाठी अनुप्रयोग कॅटलॉगमध्ये प्रवेश उघडतो Android आधारित;
  • विशेष ऑफर मोफत कार्यक्रममुक्त स्रोत;
  • अद्यतनांच्या उपलब्धतेचा अहवाल देते, परंतु ते कसे डाउनलोड करायचे हे माहित नाही (ॲप्लिकेशन इंटरफेसवरून डाउनलोड केले जाते);
  • आवश्यकता नाही पूर्व निर्मितीखाते
  • उपलब्ध असल्यासच कार्य करते रूट अधिकार;
  • खूप अंतर्ज्ञानी इंटरफेस नाही.

लेखाचा संपूर्ण मजकूर आणि प्रोग्रामचा स्त्रोत कोड केवळ नोंदणीकृत साइट सदस्यांसाठी उपलब्ध आहे.

नोंदणीची किंमत प्रतिकात्मक 340 रूबल आहे.

नोंदणी करण्यासाठी, तुम्हाला प्रथम तुमचे Yandex.Wallet निर्दिष्ट रकमेसह टॉप अप करावे लागेल (किंवा वेबमनी वॉलेट R390884954122 किंवा QIWI - 9055113963 (वॉलेट, तुमच्या फोन खात्यावर नाही!)), आणि नंतर एक पत्र पाठवा [ईमेल संरक्षित]पेमेंट करण्यासाठी तुम्ही कोणते वॉलेट वापरले आणि तपशील ज्याद्वारे तुमची ओळख पटवता येईल हे दर्शविते (पत्राला चित्रे किंवा फाइल्स जोडू नका). बदल्या करताना कमिशन विचारात घ्या.

माझे वॉलेट नंबर एका पत्रात पाठवू नका - माझ्यावर विश्वास ठेवा, मी ते तुमच्याशिवाय ओळखतो.

तुमच्या प्रतिसाद पत्रात तुम्हाला दुसऱ्या वर्षासाठी बंद भागातून लेख वाचल्याबद्दल क्रेडेन्शियल्स प्राप्त होतील.

अभ्यासाच्या तिसऱ्या कोर्समध्ये प्रवेश फक्त दुसऱ्या कोर्ससाठी देय केल्यावर उपलब्ध आहे आणि त्याची रक्कम 340 रूबल आहे.

अभ्यासाच्या चौथ्या कोर्समध्ये प्रवेश तिसऱ्या कोर्ससाठी पैसे भरल्यानंतर उपलब्ध आहे आणि त्याची किंमत 340 रूबल आहे. इ.

आपण एकाच वेळी सर्व अभ्यासक्रमांसाठी पैसे भरल्यास (2-9), किंमत 2,700 रूबल असेल.

प्रवेश किमान एक वर्षासाठी दिला जातो. ज्यांनी तिसरा आणि इतर अभ्यासक्रमांसाठी पैसे भरले आहेत त्यांच्यासाठी प्रवेश कालावधी वाढतो.

HttpURLConnection क्लास सादर करत आहे

वेब सर्व्हरशी कनेक्ट करण्यासाठी, Android अनेक संप्रेषण पद्धती ऑफर करते. साठी नवीन प्रकल्पांमध्ये आधुनिक उपकरणेवर्ग वापरण्याची शिफारस केली जाते HttpURL कनेक्शन, जे आपण उदाहरणांसह पाहू.

वर्ग java.net.HttpURLConnectionएक उपवर्ग आहे java.net.URL कनेक्शनआणि तुम्हाला HTTP प्रोटोकॉलद्वारे नेटवर्कवरून डेटा पाठवण्याचे आणि प्राप्त करण्याचे कार्य अंमलात आणण्याची परवानगी देते. डेटा कोणत्याही प्रकारचा आणि लांबीचा असू शकतो. हा वर्ग प्रवाहित डेटा पाठविण्यासाठी आणि प्राप्त करण्यासाठी वापरला जावा ज्याचा आकार आधीच निर्धारित केला जाऊ शकत नाही. या वर्गाचा वापर करून, आपल्याला सॉकेट्सबद्दल विचार करण्याची आणि अंमलबजावणी करण्याची आवश्यकता नाही स्वतःचे मार्गक्लायंट आणि सर्व्हर दरम्यान संवाद.

वापर अल्गोरिदम खालीलप्रमाणे आहे:

  • ऑब्जेक्ट मिळवा HttpURL कनेक्शनकॉलद्वारे URL.openConnection()आणि निकाल आणा HttpURL कनेक्शन
  • आवश्यक विनंती तयार करा. विनंतीमधील मुख्य गोष्ट म्हणजे नेटवर्क पत्ता स्वतःच आहे. तुम्ही विनंतीमध्ये विविध मेटाडेटा देखील निर्दिष्ट करू शकता: क्रेडेन्शियल, सामग्री प्रकार, सत्र कुकीज इ.
  • वैकल्पिकरित्या विनंती मुख्य भाग लोड करा. या प्रकरणात, पद्धत वापरली जाते setDoOutput(सत्य). प्रवाहात लिहिलेला डेटा पासिंग पद्धतीद्वारे परत केला जातो getOutputStream()
  • उत्तर वाचा. प्रतिसाद शीर्षलेखामध्ये सामान्यत: मेटाडेटा समाविष्ट असतो जसे की सामग्री प्रकार आणि लांबी, सुधारणा तारखा आणि सत्र कुकीज. तुम्ही पद्धत वापरून प्रवाहातील डेटा वाचू शकता getInputStream(). प्रतिसादाला मुख्य भाग नसल्यास, पद्धत रिक्त प्रवाह परत करते.
  • डिस्कनेक्ट करा. सर्व्हरवरून प्रतिसाद वाचल्यानंतर HttpURL कनेक्शनपद्धत कॉलद्वारे बंद केले जावे डिस्कनेक्ट (). हे कनेक्शनद्वारे व्यापलेली संसाधने मुक्त करते.

उदाहरणार्थ, http://site/android/ वर पृष्ठ मिळविण्यासाठी तुम्ही खालील कोड वापरू शकता:

URL url = नवीन URL("http://site/android/"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); प्रयत्न करा ( InputStream in = new BufferedInputStream(urlConnection.getInputStream()); readStream(in); शेवटी ( urlConnection.disconnect(); ) )

डीफॉल्ट HttpURL कनेक्शनपद्धत वापरते मिळवा. वापरासाठी पोस्टकॉल setDoOutput(सत्य)आणि द्वारे डेटा पाठवा ओपनआउटपुटस्ट्रीम(). इतर HTTP पद्धती (OPTIONS, HEAD, PUT, DELETE आणि TRACE) पद्धतीद्वारे कॉन्फिगर केल्या आहेत setRequestMethod(स्ट्रिंग).

प्रॉक्सी सर्व्हरद्वारे कार्य करण्यासाठी, वापरा URL.openConnection(प्रॉक्सी)कनेक्शन तयार करताना.

प्रत्येक प्रत HttpURL कनेक्शनफक्त एका विनंती/प्रतिसाद जोडीसाठी वापरले जाऊ शकते. कनेक्शनसह ऑपरेशन्स वेगळ्या थ्रेडमध्ये केल्या पाहिजेत.

तुम्ही अतिथी म्हणून साइटवर प्रवेश केला आहे.
लेख वाचण्यासाठी

उच्च स्तरावर, तुम्ही विनंती रांग तयार करून आणि ऑब्जेक्ट्सची विनंती करून पास करून व्हॉली वापरता. RequestQueue नेटवर्क ऑपरेशन्स चालवण्यासाठी, कॅशेमधून वाचन आणि लिहिण्यासाठी आणि प्रतिसाद पार्स करण्यासाठी वर्कर थ्रेड्स व्यवस्थापित करते. विनंत्या कच्च्या प्रतिसादांचे पार्सिंग करतात आणि व्हॉली हे विश्लेषित प्रतिसाद परत डिलिव्हरीसाठी मुख्य थ्रेडवर पाठवण्याची काळजी घेते.

हा धडा Volley.newRequestQueue सुविधा पद्धत वापरून विनंती कशी पाठवायची याचे वर्णन करतो, जी विनंतीपंक्त सेट करते. तुमच्यासाठी. स्वतः विनंतीपंक्ती कशी सेट करावी याबद्दल माहितीसाठी पुढील धडा पहा.

हा धडा विनंतीपंक्तीत विनंती कशी जोडायची आणि विनंती कशी रद्द करायची याचे देखील वर्णन करतो.

इंटरनेट परवानगी जोडा

व्हॉली वापरण्यासाठी, तुम्ही तुमच्या ॲपच्या मॅनिफेस्टमध्ये परवानगी जोडणे आवश्यक आहे. त्याशिवाय, तुमचा ॲप नेटवर्कशी कनेक्ट करण्यात सक्षम होणार नाही.

newRequestQueue वापरा

Volley एक सोयीस्कर पद्धत प्रदान करते Volley.newRequestQueue जी तुमच्यासाठी डिफॉल्ट मूल्ये वापरून विनंतीपंक्त सेट करते आणि रांग सुरू करते. उदाहरणार्थ:

कोटलिन

val textView = findViewById (R.id.text) // ... // विनंतीपंक्तीची स्थापना करा. val queue = Volley.newRequestQueue(this) val url = "http://www.google.com" // प्रदान केलेल्या URL वरून स्ट्रिंग प्रतिसादाची विनंती करा. val stringRequest = StringRequest(Request.Method.GET, url, Response.Listener ( प्रतिसाद -> // प्रतिसाद स्ट्रिंगचे पहिले 500 वर्ण प्रदर्शित करा. textView.text = "प्रतिसाद आहे: $(response.substring(0, 500))" ), Response.ErrorListener ( textView.text = "ते झाले" t work!" )) // विनंती रांगेत विनंती जोडा. queue.add(stringRequest)

जावा

final TextView textView = (TextView) findViewById(R.id.text); // ... // विनंती रांग त्वरित करा. विनंतीची रांग = Volley.newRequestQueue(this); स्ट्रिंग url = "http://www.google.com"; // प्रदान केलेल्या URL वरून स्ट्रिंग प्रतिसादाची विनंती करा. StringRequest stringRequest = नवीन StringRequest(Request.Method.GET, url, नवीन Response.Listener () ( @Override public void onResponse(String response) ( // प्रतिसाद स्ट्रिंगचे पहिले 500 वर्ण प्रदर्शित करा. textView.setText("प्रतिसाद आहे: "+ response.substring(0,500)); ) ), नवीन प्रतिसाद.ErrorListener () ( @Override public void onErrorResponse(VolleyError error) ( textView.setText("ते काम करत नाही!"); ) ) ;// विनंती queue.add(stringRequest);

व्हॉली नेहमी मुख्य थ्रेडवर विश्लेषित प्रतिसाद वितरीत करते. मुख्य थ्रेडवर चालणे प्राप्त झालेल्या डेटासह UI नियंत्रणे पॉप्युलेट करण्यासाठी सोयीस्कर आहे, कारण तुम्ही थेट तुमच्या प्रतिसाद हँडलरकडून UI नियंत्रणे मुक्तपणे सुधारू शकता, परंतु लायब्ररीद्वारे प्रदान केलेल्या अनेक महत्त्वाच्या शब्दार्थांसाठी हे विशेषतः महत्वाचे आहे, विशेषत: विनंत्या रद्द करण्याशी संबंधित. .

Volley.newRequestQueue सुविधा पद्धत वापरण्याऐवजी स्वतः विनंतीपंक्ती कशी सेट करायची याचे वर्णन पहा.

विनंती पाठवा

विनंती पाठवण्यासाठी, तुम्ही फक्त एक तयार करा आणि वर दाखवल्याप्रमाणे add() सह विनंतीपंक्तीत जोडा. एकदा तुम्ही विनंती जोडली की ती पाइपलाइनमधून फिरते, सर्व्हिस केली जाते आणि त्याचा कच्चा प्रतिसाद विश्लेषित आणि वितरित केला जातो.

जेव्हा तुम्ही add() ला कॉल करता, तेव्हा व्हॉली एक कॅशे प्रोसेसिंग थ्रेड आणि नेटवर्क डिस्पॅच थ्रेड्सचा एक पूल चालवते. जेव्हा तुम्ही रांगेत विनंती जोडता, तेव्हा ती कॅशे थ्रेडद्वारे उचलली जाते आणि ट्राय केली जाते: विनंती कॅशेमधून सर्व्ह केली जाऊ शकते, तर कॅशे केलेला प्रतिसाद कॅशे थ्रेडवर पार्स केला जातो आणि विश्लेषित प्रतिसाद मुख्य थ्रेडवर वितरित केला जातो. विनंती कॅशेमधून सर्व्हिस केली जाऊ शकत नसल्यास, ती नेटवर्क रांगेत ठेवली जाते. पहिला उपलब्ध नेटवर्क थ्रेड रांगेतून विनंती घेतो, HTTP व्यवहार करतो, वर्कर थ्रेडवरील प्रतिसादाचे विश्लेषण करतो, कॅशेवर प्रतिसाद लिहितो, आणि पोस्टवितरणासाठी मुख्य थ्रेडवर विश्लेषित प्रतिसाद परत.

लक्षात घ्या की I/O अवरोधित करणे आणि पार्सिंग/डिकोडिंग सारख्या महागड्या ऑपरेशन्स वर्कर थ्रेड्सवर केल्या जातात. आपण कोणत्याही थ्रेडवरून विनंती जोडू शकता, परंतु प्रतिसाद नेहमी मुख्य थ्रेडवर वितरित केले जातात.

आकृती 1 विनंतीचे जीवन दर्शवते:

आकृती 1.एका विनंतीचे जीवन.

विनंती रद्द करा

विनंती रद्द करण्यासाठी, तुमच्या विनंती ऑब्जेक्टवर cancel() वर कॉल करा. एकदा रद्द केल्यावर, व्हॉली हमी देते की तुमच्या प्रतिसाद हँडलरला कधीही कॉल केला जाणार नाही. याचा अर्थ व्यवहारात असा आहे की तुम्ही तुमच्या सर्व प्रलंबित विनंत्या तुमच्या क्रियाकलाप पद्धतीत रद्द करू शकता आणि तुम्हाला getActivity() == null तपासण्यासाठी तुमच्या प्रतिसाद हँडलरला कचरा टाकण्याची गरज नाही, मग onSaveInstanceState() ला आधीच कॉल केला गेला असेल. , किंवा इतर बचावात्मक बॉयलरप्लेट.

या वर्तनाचा फायदा घेण्यासाठी, तुम्हाला सामान्यतः सर्व इन-फ्लाइट विनंत्या योग्य वेळी रद्द करण्यात सक्षम होण्यासाठी त्यांचा मागोवा घ्यावा लागेल. एक सोपा मार्ग आहे: तुम्ही प्रत्येक विनंतीसोबत टॅग ऑब्जेक्ट जोडू शकता. त्यानंतर तुम्ही रद्द करण्याच्या विनंत्यांची व्याप्ती देण्यासाठी हा टॅग वापरू शकता. उदाहरणार्थ, तुम्ही तुमच्या सर्व विनंत्या टॅग करू शकता सहते च्या वतीने केले जात आहेत आणि कडून requestQueue.cancelAll(this) वर कॉल करा. त्याचप्रमाणे, तुम्ही सर्व लघुप्रतिमा विनंत्या त्यांच्या संबंधित टॅबसह टॅबमध्ये टॅग करू शकता आणि याची खात्री करण्यासाठी स्वाइप करून रद्द करू शकता. नवीनटॅब दुसऱ्याच्या विनंत्यांद्वारे धरून ठेवला जात नाही.

येथे एक उदाहरण आहे जे टॅगसाठी स्ट्रिंग मूल्य वापरते:

  1. तुमचा टॅग परिभाषित करा आणि तुमच्या विनंत्यांमध्ये जोडा.

    कोटलिन

    val TAG = "MyTag" val stringRequest: StringRequest // हे अस्तित्वात आहे असे गृहीत धरा. val requestQueue: RequestQueue? // हे अस्तित्वात आहे असे समजा. // विनंतीवर टॅग सेट करा. stringRequest.tag = TAG // RequestQueue मध्ये विनंती जोडा. requestQueue?.add(stringRequest)

    जावा

    public static final String TAG = "MyTag"; StringRequest stringRequest; // हे अस्तित्वात आहे असे समजा. विनंतीपंक्त विनंती रांग; // हे अस्तित्वात आहे असे समजा. // विनंतीवर टॅग सेट करा. stringRequest.setTag(TAG); // विनंती रांगेत विनंती जोडा. requestQueue.add(stringRequest);
  2. तुमच्या क्रियाकलाप पद्धतीमध्ये, हा टॅग असलेल्या सर्व विनंत्या रद्द करा.

    कोटलिन

    संरक्षित मजा onStop() ( super.onStop() requestQueue?.cancelAll(TAG) )

    जावा

    @Override संरक्षित शून्य onStop () ( super.onStop(); if (requestQueue != null) ( requestQueue.cancelAll(TAG); ) )

    विनंत्या रद्द करताना काळजी घ्या. तर तुम्ही आहातएखादे राज्य पुढे नेण्यासाठी किंवा दुसरी प्रक्रिया सुरू करण्यासाठी तुमच्या प्रतिसाद हँडलरवर अवलंबून, तुम्हाला यासाठी खाते देणे आवश्यक आहे. पुन्हा, प्रतिसाद हँडलरला कॉल केला जाणार नाही.



आम्ही वाचण्याची शिफारस करतो

वर