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 
    • SQLite database in Hindi 
    • Connection storage in Hindi 


Introduction to Android storage system 

Android system डेटा को स्टोर करने के लिए बहुत से options provide करता है। आप कौनसा option choose करते है ये आप पर depend करता है। यदि आपका data primitive है तो आप shared preferences यूज़ कर सकते है। यदि आपका 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 कॉल कर सकते है। ये method आपको तब ही यूज़ करना चाहिए जब आप बहुत सी preferences files क्रिएट करना चाहते है। दूसरा option ये है की आप getPreferences() मेथड कॉल करे इस method के द्वारा आप सिर्फ एक ही preference file क्रिएट कर सकते है।        

सबसे पहले आप 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()मेथड में आप 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 कर देते है। 

    Ex.

    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 करते है।

    Ex.

    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 करने के लिए होती है। 

    Ex.

    <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 ऑब्जेक्ट क्रिएट करते है और उसमे file का नाम और उस public directory का नाम भी पास करते है। 

    Ex.

    File myFile = newFile(DIRECTORY_PUBLIC, fileName);

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

    Comments

    Add2

    Popular posts from this blog

    Android menus

    Android broadcast receivers