Android – Overview

Android kya hai?
                                            Main kaun hoon?

Android ek open-source aur Linux-based Operating System hai jo mobile devices jaise ki smartphones aur tablets ke liye banaya gaya hai. Android ko Open Handset Alliance ne develop kiya tha, jiska leadership Google ke paas tha, aur ismein kai doosri companies bhi shamil thi.

Android ek unified approach provide karta hai mobile apps banane ke liye. Iska matlab yeh hai ki developers ko sirf Android ke liye hi develop karna hota hai, aur unki applications alag-alag Android devices par easily run kar sakti hain.

Android ka first beta version of Software Development Kit (SDK) Google ne 2007 mein release kiya tha, jabki pehla commercial version Android 1.0 ko September 2008 mein launch kiya gaya tha.

27 June 2012 ko Google ne apni Google I/O conference mein Android ka agla version announce kiya — Android 4.1 Jelly Bean. Jelly Bean ek incremental update tha jiska main goal tha user interface ko aur behtar banana — functionality aur performance dono mein.

Android ka source code free aur open-source software licenses ke under available hai. Google zyada code Apache License version 2.0 ke under release karta hai, jabki Linux kernel ke changes ko GNU General Public License version 2 ke under publish kiya jata hai.

Why Android ?

Android ke Features

Android ek powerful Operating System hai jo Apple 4GS jaise devices ke saath compete karta hai aur kai amazing features offer karta hai. Neeche kuch important features diye gaye hain:


1. Beautiful UI
Android ka basic screen ek beautiful aur user-friendly interface deta hai jo use karne mein kaafi easy aur smooth hota hai.

2. Connectivity
Android multiple network options support karta hai jaise:
GSM, EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC, aur WiMAX.

3. Storage
Data store karne ke liye Android SQLite ka use karta hai, jo ek lightweight relational database hai.

4. Media Support
Android alag-alag media formats ko support karta hai jaise:
H.263, H.264, MPEG-4, MP3, AAC, WAV, JPEG, PNG, GIF, etc.

5. Messaging
SMS (text) aur MMS (multimedia) messaging dono supported hain.

6. Web Browser
Android ka browser WebKit engine pe based hai, jisme Chrome ka V8 JavaScript engine hota hai. Yeh HTML5 aur CSS3 ko bhi support karta hai.

7. Multi-touch
Android devices multi-touch gestures ko support karte hain — jaise zoom in/out. Pehli baar yeh feature HTC Hero mein dekha gaya tha.

8. Multi-tasking
User ek app se doosri app par easily switch kar sakta hai, aur multiple apps ek saath run kar sakti hain.

9. Resizable Widgets
Android mein widgets ko resize kiya ja sakta hai — bada karke zyada content dikha sakte hain ya chhota karke space bacha sakte hain.

10. Multi-Language Support
Android single direction (jaise English) aur bi-directional text (jaise Arabic, Hebrew) dono ko support karta hai.

11. GCM (Google Cloud Messaging)
Developers apne users ko short message data bhej sakte hain bina kisi special sync solution ke — directly Google Cloud Messaging ka use karke.

12. Wi-Fi Direct
Isse apps directly high-speed peer-to-peer connection ke through ek doosre se connect ho sakti hain — bina internet ke.

13. Android Beam
Ek NFC-based feature jisme users bas do phones ko touch karke data instantly share kar sakte hain.

Android Applications

Android applications usually Java language mein develop ki jaati hain using Android Software Development Kit (SDK).

Jab application develop ho jaati hai, toh usse easily package karke alag-alag stores ke through sell kiya ja sakta hai jaise ki:
Google Play, SlideME, Opera Mobile Store, Mobango, F-Droid, aur Amazon Appstore.

Aaj ke time mein Android 190+ countries mein crores of mobile devices ko power deta hai.
Yeh duniya ka sabse bada mobile platform hai aur bahut fast grow kar raha hai.
Har din 1 million se zyada naye Android devices activate kiye ja rahe hain worldwide.

Yeh tutorial aapko Android application banana aur package karna sikhane ke liye banaya gaya hai.
Hum start karenge Android programming ke environment setup se, aur fir step-by-step Android app development ke different aspects ko samjhenge.

Android Applications ke Categories

Market mein bahut saari Android applications available hain, lekin unmein se kuch top categories yeh hain:

    1. Social Media Apps
      Jaise Facebook, Instagram, Twitter, Snapchat, jo logon ko ek dusre se connect karte hain.

    2. Entertainment Apps
      Jaise YouTube, Netflix, Hotstar, jinse aap movies, shows aur videos dekh sakte ho.

    3. Productivity Apps
      Jaise Google Keep, Microsoft Office, Evernote, jo aapki daily life aur work ko easy banate hain.

    4. Games
      Android par bahut saare popular games hote hain jaise PUBG, Candy Crush, Subway Surfers, etc.

    5. Utility Apps
      Jaise file managers, calculators, flashlights, antivirus apps, etc. Jo system ke kaam aate hain.

    6. Shopping Apps
      Jaise Amazon, Flipkart, Myntra, jinse aap online shopping kar sakte ho.

    7. Education Apps
      Jaise Byju’s, Khan Academy, Udemy, Coursera, jo learning aur skill development ke liye use hote hain.

    8. Health & Fitness Apps
      Jaise Google Fit, MyFitnessPal, Step Tracker, jo health monitor karne mein madad karte hain.

    9. Travel & Navigation Apps
      Jaise Google Maps, Uber, Ola, MakeMyTrip, jo travel aur location ke kaam mein aate hain.

    10. Finance Apps
      Jaise Google Pay, PhonePe, Paytm, BHIM, jo payments aur banking se related kaam karte hain.

History of Android

Android ke versions ko alphabetical order mein code names diye jaate hain (A se N tak), jaise:

    • Aestro

    • Blender

    • Cupcake

    • Donut

    • Eclair

    • Froyo

    • Gingerbread

    • Honeycomb

    • Ice Cream Sandwich

    • Jelly Bean

    • KitKat

    • Lollipop

    • Marshmallow

Har version mein naye features aur improvements laaye gaye hain — jaise UI enhancement, performance boost, security features, aur hardware support.

API Level kya hota hai?

API Level ek integer value hoti hai jo uniquely batata hai ki kisi Android version mein kaunsa framework API revision available hai.

Jab aap Android app develop karte ho, toh aapko ye decide karna hota hai ki app minimum kis API level par chalegi — yani aapki app kis Android version se compatible hogi.

Har Android version ka ek specific API level hota hai.


Android Version vs API Level

 

Android Version

API Level

Version Code

Android 6.0

23

MARSHMALLOW

Android 5.1

22

LOLLIPOP_MR1

Android 5.0

21

LOLLIPOP

Android 4.4W

20

KITKAT_WATCH (Wearable)

Android 4.4

19

KITKAT

Android 4.3

18

JELLY_BEAN_MR2

Android 4.2.x

17

JELLY_BEAN_MR1

Android 4.1.x

16

JELLY_BEAN

Android 4.0.3–4.0.4

15

ICS_MR1

Android 4.0–4.0.2

14

ICE_CREAM_SANDWICH

Android 3.2

13

HONEYCOMB_MR2

Android 3.1

12

HONEYCOMB_MR1

Android 3.0

11

HONEYCOMB

Android 2.3.3–2.3.7

10

GINGERBREAD_MR1

Android 2.3–2.3.2

9

GINGERBREAD

Android 2.2.x

8

FROYO

Android 2.1.x

7

ECLAIR_MR1

Android 2.0.1

6

ECLAIR_0_1

Android 2.0

5

ECLAIR

Android 1.6

4

DONUT

Android 1.5

3

CUPCAKE

Android 1.1

2

BASE_1_1

Android 1.0

1

BASE

Android - Environment Setup

Yeh jaan kar tumhe khushi hogi ki tum Android application development start kar sakte ho inme se kisi bhi operating system par:

    • Microsoft Windows XP ya uske baad ka version

    • Mac OS X 10.5.8 ya uske baad ka version (Intel chip ke saath)

    • Linux, jisme GNU C Library 2.7 ya uske baad ka version ho


Dusri baat yeh hai ki Android app banane ke liye jitne bhi tools chahiye, sab free mein available hain aur easily internet se download kiye ja sakte hain.

Tumhein ye software chahiye honge:

    • Java JDK5 ya uske baad ka version

    • Android Studio

Akhri do components optional hain, lekin agar tum Windows machine par kaam kar rahe ho, toh ye tools tumhara kaam kaafi aasaan bana dete hain — specially Java-based app development mein.

Java Development Kit (JDK) ka Set-up –  💻

Tum Java JDK ka latest version Oracle ki official site se download kar sakte ho:
➡️ Java SE Downloads

Jab tum JDK download kar loge, uske saath hi installation instructions milengi. Bas un instructions ko follow karo aur JDK install & configure kar lo.

Step 1: PATH aur JAVA_HOME set karna

Yeh dono environment variables set karna zaroori hota hai taki system ko pata chale ki java aur javac kaha installed hai.

🪟 Windows ke liye (Example):

Agar tumne JDK install kiya hai:
C:\jdk1.8.0_102 mein
Toh tumhe yeh line add karni hogi C:\autoexec.bat file mein:

set PATH=C:\jdk1.8.0_102\bin;%PATH%
set JAVA_HOME=C:\jdk1.8.0_102

Ya alternatively:

      1. “My Computer” pe right-click karo

      2. Properties select karo

      3. Advanced system settings pe jao

      4. Environment Variables open karo

      5. PATH aur JAVA_HOME ko update karo

      6. OK dabao, done ✅


🐧 Linux ke liye (Example):

Agar JDK install hai /usr/local/jdk1.8.0_102 mein
Aur tum C shell use kar rahe ho, to .cshrc file mein yeh lines add karo:

setenv PATH /usr/local/jdk1.8.0_102/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.8.0_102

⚠️ Note:

Agar tum Android Studio use kar rahe ho, to tension mat lo — Woh automatically Java installation detect kar leta hai! 😄👌

Android IDEs –📱💻

Android applications develop karne ke liye kai advanced technologies aur tools available hain. Neeche kuch famous aur commonly used IDEs (Integrated Development Environments) ka zikr kiya gaya hai:


1️⃣ Android Studio

➡️ Ye Google ka official IDE hai Android app development ke liye.
➡️ Ye Java, Kotlin, aur C++ ko support karta hai.
➡️ Isme built-in features hote hain jaise:

    • Code editor

    • Emulator

    • UI designer

    • Debugging tools

    • Gradle-based build system


2️⃣ Eclipse IDE (Deprecated)

➡️ Pehle Android apps ke liye Eclipse + ADT Plugin ka use hota tha.
➡️ Lekin ab ye officially deprecated hai (Google ne support band kar diya hai).
➡️ Beginners ke liye ab use karna recommend nahi kiya jata.


Agar tum Android development start karna chahte ho, to Android Studio best option hai – modern, powerful, aur officially supported tool hai. 🚀

Android operating system ek software components ka stack hai jo lagbhag paanch sections aur chaar main layers mein divide kiya gaya hai, jaise ki neeche diye gaye architecture diagram mein dikhaya gaya hai.

Linux Kernel
Sabse niche layer mein Linux hota hai – Linux 3.6, jisme approximately 115 patches hote hain. Ye ek abstraction level provide karta hai device hardware aur operating system ke beech. Isme saare essential hardware drivers hote hain jaise camera, keypad, display, etc. Kernel wo sab cheezein handle karta hai jo Linux mein acchi hoti hain, jaise networking aur bohot saare device drivers, jo peripheral hardware ke saath interface karna bahut asaan bana dete hain.

Libraries
Linux kernel ke upar ek set of libraries hoti hain, jinmein open-source Web browser engine WebKit, well-known library libc, SQLite database hota hai jo application data ko store aur share karne ke liye useful hota hai, audio-video play aur record karne ke liye libraries, SSL libraries jo internet security ke liye responsible hoti hain, etc.

Android Libraries
Ye wo libraries hain jo Android development ke liye specifically Java-based hoti hain. Kuch examples hain application framework libraries, user interface banane wali libraries, graphics drawing aur database access ki libraries. Android ke kuch key core libraries ye hain:

    • android.app − Ye application model ko access provide karta hai aur sabhi Android applications ki foundation hota hai.

    • android.content − Ye content access, publishing aur messaging between applications aur components facilitate karta hai.

    • android.database − Ye content providers se data access karne ke liye use hota hai aur SQLite database management classes include karta hai.

    • android.opengl − OpenGL ES 3D graphics rendering API ke liye Java interface hota hai.

    • android.os − Ye operating system services ko access dene ke liye hai, jaise messages, system services aur inter-process communication.

    • android.text − Ye text ko render aur manipulate karne ke liye device display par use hota hai.

    • android.view − Ye application user interfaces banane ke liye fundamental building blocks hote hain.

    • android.widget − Ye pre-built user interface components ka collection hota hai, jaise buttons, labels, list views, layout managers, radio buttons, etc.

    • android.webkit − Ye web-browsing capabilities ko applications mein integrate karne ke liye classes ka set hai.

Android Runtime
Android architecture ka teesra section hai Android Runtime, jo second layer par hota hai. Is section mein ek important component hota hai Dalvik Virtual Machine, jo ek special Java Virtual Machine hota hai jo Android ke liye design aur optimize kiya gaya hai.

Dalvik VM Linux core features jaise memory management aur multi-threading ka use karta hai, jo Java language mein inherent hota hai. Dalvik VM har ek Android application ko apne process mein run karne ki suvidha deta hai, apni instance ke saath.

Android runtime ek set of core libraries bhi provide karta hai, jo Android developers ko standard Java programming language ka use karke applications likhne mein madad karte hain.

Application Framework
Application Framework layer applications ko higher-level services provide karti hai Java classes ke form mein. Application developers in services ka use apne applications mein kar sakte hain.

Android framework ke kuch key services ye hain:

    • Activity Manager − Ye application lifecycle aur activity stack ke saare aspects ko control karta hai.

    • Content Providers − Ye applications ko data publish aur share karne ki suvidha deta hai dusre applications ke saath.

    • Resource Manager − Ye non-code embedded resources ko access dene ke liye hota hai, jaise strings, color settings, aur user interface layouts.

    • Notifications Manager − Ye applications ko alerts aur notifications display karne ki suvidha deta hai user ko.

    • View System − Ye ek extensible set of views hota hai jo application user interfaces create karne ke liye use hota hai.

Applications
Sabhi Android applications sabse upar wali layer pe hoti hain. Aap apne applications is layer par likhte hain, jo install hote hain. Examples hain Contacts Books, Browser, Games, etc.

Application Components
Android application components wo essential building blocks hote hain jo ek app ko banate hain. Ye components ek dusre se loosely connected hote hain through the application manifest file AndroidManifest.xml, jo har component ko describe karta hai aur batata hai ki kaise wo interact karte hain.

Yahan pe char main components diye gaye hain jo Android application mein use hote hain:

1. Activities
Activity ek single screen ko represent karti hai jisme user interface hota hai. Simple shabdon mein, ek Activity screen par actions perform karti hai, jaise data dikhana aur user interaction ko manage karna. Example ke liye, ek email application mein ek activity ho sakti hai jo naye emails ki list dikhaye, dusri activity ho sakti hai jo email compose karne ka kaam kare, aur teesri activity ho sakti hai jo emails padhne ka kaam kare. Agar ek app mein kai activities hain, to unmein se ek ko main activity ke roop mein define karna zaroori hota hai jab app launch hota hai.

Activity ko Activity class ka subclass banake implement kiya jata hai, kuch is tarah:

public class MainActivity extends Activity {
}

2. Services
Service ek aisi component hoti hai jo background mein chalti hai aur long-running operations perform karti hai. Jaise, ek service music play kar sakti hai jab user kisi aur app ka use kar raha ho, ya wo data fetch kar sakti hai network se bina user ke activity ke interaction ko block kiye bina.

Service ko Service class ka subclass banake implement kiya jata hai, kuch is tarah:

public class MyService extends Service {
}

3. Broadcast Receivers
Broadcast Receivers wo components hote hain jo system ya dusre applications se aayi hui broadcast messages ka response dete hain. Example ke liye, apps dusre apps ko notify kar sakte hain jab koi data device pe download ho jaye, aur broadcast receiver ye message intercept karke appropriate action lega.

Broadcast receiver ko BroadcastReceiver class ka subclass banake implement kiya jata hai, aur har message ko ek Intent object ke roop mein broadcast kiya jata hai:

public class MyReceiver extends BroadcastReceiver {
           public void onReceive(Context context, Intent intent) {
                       // Broadcast message ka response dena
               }
      }

4. Content Providers
Content Providers wo components hote hain jo ek application se dusre applications ko data provide karte hain jab wo request karte hain. Ye requests ContentResolver class ke methods ke through handle kiye jate hain. Data file system, database ya kahi aur stored ho sakta hai.

Content provider ko ContentProvider class ka subclass banake implement kiya jata hai aur ek standard set of APIs implement karna zaroori hota hai jisse dusre apps transactions perform kar sake:

public class MyContentProvider extends ContentProvider {
           public void onCreate() {
            // Content provider ko initialize karna
    }
 }

Additional Components
Inke alawa kuch aur components hote hain jo upar diye gaye entities ke logic aur wiring mein madad karte hain. Ye hain:

1. Fragments
Fragments ek portion of user interface ko represent karte hain jo ek Activity mein hota hai. Ye flexible UI designs banane mein madad karte hain, especially tablets aur large-screen devices ke liye.

2. Views
Views wo UI elements hote hain jo screen pe draw hote hain, jaise buttons, lists, forms, etc. Ye wo components hote hain jinke saath users interact karte hain.

3. Layouts
Layouts wo structures hote hain jo screen pe views ka format aur appearance control karte hain. Ye UI elements ko organize karte hain aur unki positioning define karte hain.

4. Intents
Intents messages hote hain jo components ko wire karte hain. Ye allow karte hain ki components jaise activities, services, aur broadcast receivers ek dusre se communicate kar sakein.

5. Resources
Resources wo external elements hote hain jo application mein use hote hain, jaise strings, constants, images, aur doosre media. Ye resources generally app ke res directory mein stored hote hain.

6. Manifest
Manifest file AndroidManifest.xml application ka configuration file hota hai. Isme application ke baare mein zaroori information hoti hai, jaise components, permissions, aur other configuration settings.

error: Content is protected !!