Skip to main content

Android Storage System

Android Storage System 


  • Introduction to Android storage in Hindi 
  • Options for android storage in Hindi 
  • Shared preferences in Hindi 
  • Internal storage in Hindi 
  • External storage in Hindi 

    Introduction to Android Storage System 

    Android system data को स्टोर करने के लिए बहुत से options provide करता है। आप कौनसा option choose करते है ये आप पर depend करता है। यदि आपका data primitive है तो आप shared preferences use कर सकते है। यदि आपका data private है तो आप उसे internal storage में store कर सकते है। यदि आपकी application के लिए database में डेटा store करना जरुरी है तो आप SQLite database में डेटा स्टोर कर सकते है। और यदि आप चाहे तो network connection के द्वारा किसी cloud storage में भी अपना data स्टोर कर सकते है।

    हाँलांकि android system इतने सारे storage option provide करता है लेकिन फिर भी अपनी application के लिए सही storage option choose करना बहुत ही  necessary है। इसके लिए आपको अपने project से जुड़े हुए सभी members की advice लेनी चाहिए।

    आइये अब different android storage options के बारे में detail से जानने का प्रयास करते है।


    Shared Preferences 

    SharedPreferences एक क्लास होती है। ये क्लास आपको एक ढांचा provide करती है। इस क्लास में आप key value के pair में केवल primitive values (int , boolean, char, float, strings) store कर सकते है। जो डेटा आप shared preferences में store करते है वो different user sessions में भी available रहता है।

    SharedPreferences क्लास का object प्राप्त करने के लिए आपके पास 2 options होते है। एक तो आप getSharedPreferences()method  को call कर सकते है। ये method आपको तब ही use करना चाहिए जब आप बहुत सी preferences files create करना चाहते है। दूसरा option ये है की आप getPreferences() method को कॉल करे इस method के द्वारा आप सिर्फ एक ही preference file create कर सकते है।        

    सबसे पहले आप SharedPreferences क्लास का object क्रिएट करेंगे। इसमें आप variable का नाम और initial value पास करते है।


    SharedPreferences myObj = new SharedPreferences(variable_name, initial-value);



    SharedPreferences क्लास का object क्रिएट करने के बाद value store करने  के लिए आपको SharedPreferences.Editor क्लास का ऑब्जेक्ट क्रिएट करना होगा। ऐसा आप SharedPreferences क्लास के object पर edit() मेथड को कॉल करके कर सकते है।


    SharedPreferences.Editor ediObj = myObj.edit();


          
    अलग अलग तरह की values store करने के लिए अलग अलग methods है। जैसे की putBoolean() और putString() आदि। इन methods को आप editor object पर कॉल करते है। 


    ediObj.putString("name",value);




    इसके बाद आपको values को commit करना होता है।


    ediObj.commit();


    Values को read करने के लिए आप SharedPreferences क्लास के ऑब्जेक्ट पर अलग अलग methods को कॉल कर सकते है जैसे की getBoolean() और getString() आदि।    



    Internal Storage 

    आप files को device की internal memory में भी save कर सकते है। जो files internal memory में saved होती है वो private होती है, दूसरी applications इन्हे access नहीं कर सकती है। जब यूज़र आपकी application को remove करता है तो ये files भी remove हो जाती है।

    किसी भी file को internal storage में save करने के लिए आपको openFileOutput() method को कॉल करना होगा। ये method FileOutputStream class का object return करता है। FileOutputStream क्लास data को file के through output करने के लिए यूज़ की जाती है। ये क्लास एक stream को represent करती है। openFileOutput() method में आप file का नाम और mode pass करते है। File के 4 mode होते है।

    • MODE_PRIVATE - ये default mode होता है। इस mode में file private रहती है।   
    • MODE_APPEND - यदि पास किये गए नाम की file पहले से है तो नया डेटा उसी file के data के आखिर में add हो जाता है।  
    • MODE_WORLD_READABLE - इस तरह की files create करना security के point of view से बहुत risky होता है। इस तरह की फाइल को कोई भी दूसरी application access कर सकती है।     
    • MODE_WORLD_WRITABLE - इस तरह की file को कोई भी दूसरी application modify कर सकती है। 

      FileOutputStream का object पाने के बाद आप उस पर write() मेथड को कॉल करते है और file को save कर देते है। इसके बाद आप close method call करके output stream close कर देते है। 


      String name="yrName";

      FileOutputStream obj = openFileOutput(fileName,Context.MODE_PRIVATE);

            
      obj.write(name.getBytes()); // write data in form of byte only.


      obj.close(); // closing stream   


      इसी प्रकार internal storage में से files को read करने के लिए आपको openFileInput() method को कॉल करना होगा। ये method FileInputStream क्लास का object return करता है। इस method में आप file का नाम पास करते है। इसके बाद आप FileInputStream के object पर read() मेथड कॉल करके file को read करते है।


      FileInputStream obj = openFileInput(fileName);

      obj.read();


      obj.close(); 
        


      External Storage

      हर android device में ये capability होती है की आप उसमे external memory add कर सकते है। ये memory removable भी हो सकती है जैसे की SD card आदि और non removable भी हो सकती है। कई बार internal memory की limit के कारण भी इस external memory को यूज़ किया जाता है। External storage में save होने वाली सभी classes world readable mode की होती है। और जब आप अपने device को PC से connect करते है तो इन files को कोई भी modify कर सकता है। 

      यदि आपकी application external storage में files save करना चाहती है तो इसके लिए उसको 2 तरह की system permissions की आवश्यकता होगी। 

      • READ_EXTERNAL_STORAGE - ये permission external storage से files को read करने के लिए होती है।  
      • WRITE_EXTERNAL_STORAGE - ये permission external storage में files save करने के लिए होती है। 


      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 



      External storage में कोई भी काम करने से पहले आपको memory का media status चेक कर लेना चाहिए। ये भी हो सकता है की external storage में कोई file ही न हो या सिर्फ readable files हो। External storage का status check करने के लिए आप getExternalStorageState() method को कॉल कर सकते है। ये method आपको files की अलग अलग states return करता है जिन से आप यूज़र को notify कर सकते है। 

      यदि आप files को public रखना चाहते है तो आप उन्हें public directories में save कर सकते है जैसे की Music, Pictures आदि। External storage में files save करना बहुत ही आसान है। इसके लिए आप एक file ऑब्जेक्ट create करते है और उसमे file का नाम और उस public directory का नाम भी पास करते है। 


      File myFile = newFile(DIRECTORY_PUBLIC, fileName);


      External storage में save की गयी files को भी आप internal storage की files के साथ use होने वाले methods से open और edit कर सकते है।

      Comments

      Popular posts from this blog

      Android Services

      Android Services Introduction to  android services in Hindi  Declaring  services in Hindi Creating a  android service in Hindi Introduction to Android Services इससे पहले की आप जाने की service क्या होती है आइये जानते है की service क्या नहीं होती है - एक service separate प्रोसेस नहीं होती है। ये आपकी एप्लीकेशन का ही पार्ट होती है।  एक service thread नहीं होती है।  आइये अब देखते है service क्या होती है - Service एक facility होती है जिससे आप android system को बता सकते है की आप कोई काम background में करते रहना चाहते है।  Service एक facility होती है जिससे एक एप्लीकेशन अपनी कुछ functionality दूसरी applications को expose कर सकती है।    हर service क्लास का <service> declaration AndroidManifest.xml file में होना चाहिए। Services को आप context.startService() और context.bindService() मेथड्स से स्टार्ट कर सकते है।            जब service component क्रिएट होता है तो android syst...

      Android Fragments

      Android Fragments Introduction to android fragments in Hindi Android fragments life cycle in Hindi Types of android fragments in Hindi Creating android fragment in Hindi Introduction to Android Fragments एक fragment किसी activity के अंदर एक separate UI (user interface) होता है। Fragments की खुद की life cycle और input events होते है। आप एक fragment को कई activities में use कर सकते है। जब आपकी activity running state में हो तब भी आप fragments को add और remove कर सकते है। Fragments को आप sub activity भी कह सकते है।   Android fragments को android के Honeycomb version में introduce किया गया था।  Android fragments से पहले आप user को एक बार में एक activity ही show कर सकते थे इसलिए आप स्क्रीन को अलग अलग parts में divide नहीं कर सकते थे। Fragments के आने से application design और भी ज्यादा flexible हो गयी क्योंकि आप यूजर को एक साथ एक से ज्यादा interface शो कर सकते है और उन्हें separately manage भी कर सकते है। अब आपके पास activity तो एक ही रहेगी लेकिन आप इसमें ब...

      Android Development Tools

      Android Development Tools  Android SDK in Hindi  Android Debug bridge in Hindi Android gradle in Hindi Android studio in Hindi Android run time and delvik in Hindi  Android SDK  Android SDK (Software Development Kit) -  Android SDK  में वो सभी टूल्स होते है जिनकी आपको एंड्राइड एप्लीकेशन क्रिएट करने में, कम्पाइल करने में और एप्लीकेशन को पैकेज करने के लिए जरुरत पड़ेगी।  Android SDK में आपको सोर्स कोड के साथ सैंपल प्रोजेक्ट्स, डेवलपमेंट टूल्स, एक इमुलेटर और एप्लीकेशन डेवेलप करने के लिए रिक्वायर्ड लाइब्रेरीज मिलती है। सभी एप्लीकेशन java में डेवेलप की जाती है और डेलविक वर्चुअल मशीन पर रन की जाती है। Android debug bridge  ADB  (Android Debug Bridge  ) - ADB android SDK का एक कमांड लाइन  टूल है जिसकी मदद से आप अपनी एप्लीकेशन को वर्चुअल डिवाइस या किसी रियल डिवाइस पर रन करवा सकते है और डिबग कर सकते है। ये एक क्लाइंट सर्वर प्रोग्राम होता है जिसमे एक क्लाइंट होता है, एक सर्वर...