100% found this document useful (1 vote)
2K views53 pages

Android in Hindi

Uploaded by

nikhil shukla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
2K views53 pages

Android in Hindi

Uploaded by

nikhil shukla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Bc c Fa lna.

c om
Kuldeep
97994-55505 With this eBook you can Learn Core Concepts of an
Android App Development with Deep Details in easy to
understand Hindi Language.

I have included so many Examples and Code


Fragements in this ebook to easily understand various
kinds of App Development Concepts with Detaild
Program Flow Discussion to understand the Internal
Working of the App Step by Step.

So, learn Core Android App Development Basics and


start moving in the way of Professional Android App
Development for full of Joy and Healthy Programming
Career.

I am sure, you will not regret with this eBook. It’s a Value
for Money EBook that would help you to Learn and
Understand Underlying Basics and Core concepts of
Android App development.
Android in Hindi

Kuldeep Chand

BetaLab Computer Center


Falna

1
Android in Hindi

Android in HINDI
Copyright © Updated on 2018 by Kuldeep Chand
All rights reserved. No part of this work may be reproduced or transmitted in any form
or by any means, electronic or mechanical, including photocopying, recording, or by
any information storage or retrieval system, without the prior written permission of the
copyright owner and the publisher.

Trademarked names may appear in this book. Rather than use a trademark symbol
with every occurrence of a trademarked name, we use the names only in an editorial
fashion and to the benefit of the trademark owner, with no intention of infringement of
the trademark.

Lead Editors: Kuldeep Chand

Distributed to the book trade worldwide by Betalab Computer Center, Behind of


Vidhya Jyoti School, Falna Station Dist. Pali (Raj.) Pin 306116

e-mail [email protected],

or

visit http://www.bccfalna.com

For information on translations, please contact BetaLab Computer Center, Behind of


Vidhya Jyoti School, Falna Station Dist. Pali (Raj.) Pin 306116

Phone 097994-55505

The information in this book is distributed on an “as is” basis, without warranty.
Although every precaution has been taken in the preparation of this work, the author
shall not have any liability to any person or entity with respect to any loss or damage
caused or alleged to be caused directly or indirectly by the information contained in
this book.

2
Android in Hindi

This book is dedicated to those

who really wants to be

ProfessionAl Developer

3
Android in Hindi

Index
of
Contents

4
Android in Hindi

Index of Content
Android – The Introduction .......................................... 15
Android App – The Basic Architecture..................................................................... 19
Views.....................................................................................................................19
Activity ...................................................................................................................26
Fragment...............................................................................................................27
Intents ...................................................................................................................28
Services ................................................................................................................30
Content Providers .................................................................................................32
AndroidManifest.xml .............................................................................................33
Android App – The Architecture Extensions............................................................ 33
Storage..................................................................................................................33
Network .................................................................................................................34
Multimedia.............................................................................................................34
Location Services .................................................................................................34
Phone Services.....................................................................................................34

Android – Development Environment ......................... 38


Setup Java SDK.......................................................................................................38
Downloading and Installing Android SDK Tools ...................................................... 39
Path Configuration for Command Prompt ............................................................... 47
Creating New Android Project with Command Line Tools ...................................... 51
Setup Actual Android Device ...................................................................................55
Build and Run Android Application with Command Tools....................................... 58
Installing Apache Ant ............................................................................................59
Building in Debug Mode .......................................................................................62
Building in Release Mode .....................................................................................63
Signing Android Application..................................................................................64
Downloading Android-Studio Package .................................................................... 68
Setup Emulator.........................................................................................................69
Android-Studio Setup ...............................................................................................76
Creating New Project in Android Studio .................................................................. 88
Android – Platform Architecture.................................. 97
Android Project Related Files Structure .................................................................. 99
.idea Directory.......................................................................................................99

5
Android in Hindi

app Directory.......................................................................................................100
build Directory .....................................................................................................100
gradle Directory ..................................................................................................100
.gitignore File ......................................................................................................100
build.gradle File ..................................................................................................100
gradle.properties File ..........................................................................................101
gradlew File.........................................................................................................101
gradlew.bat File ..................................................................................................101
local.properties File.............................................................................................101
.iml File................................................................................................................101
settings.gradle File..............................................................................................101
Android Application Modules .................................................................................102
build/ Directory ....................................................................................................102
lib/ Directory ........................................................................................................102
src/ Directory.......................................................................................................102
androidTest/ Directory ........................................................................................102
main/java/com.<domain.projectName> Directory .............................................. 103
main/jni/ Directory ...............................................................................................103
main/gen/ Directory.............................................................................................103
main/assets/ Directory ........................................................................................103
main/res/ Directory..............................................................................................104
anim/ Sub-Directory ........................................................................................104
color/ Sub-Directory ........................................................................................104
drawable/ Sub-Directory .................................................................................104
mipmap/ Sub-Directory ...................................................................................104
layout/ Sub-Directory ......................................................................................104
menu/ Sub-Directory .......................................................................................105
raw/ Sub-Directory ..........................................................................................105
values/ Sub-Directory......................................................................................105
xml/ Sub-Directory ..........................................................................................105
AndroidManifest.xml File ....................................................................................105
.gitignore/ ............................................................................................................106
app.iml/................................................................................................................106
build.gradle File ..................................................................................................106
Android Development Framework ......................................................................... 106
Android APIs .......................................................................................................107

6
Android in Hindi

Development Tools .............................................................................................107


Android Virtual Device Manager and Emulator.................................................. 107
Dalvik Debug Monitor Service ............................................................................108
Full Documentation .............................................................................................109
Sample Code ......................................................................................................109
Online Support ....................................................................................................109
Android Platform Architecture ................................................................................110
Linux Kernel ........................................................................................................111
Libraries ..............................................................................................................111
Android Runtime .................................................................................................112
Application Framework .......................................................................................113
Application Layer ................................................................................................114
Android Libraries ....................................................................................................114
Standard Core Libraries .....................................................................................114
Advanced Android Libraries ...............................................................................116

Android – First App .................................................... 119


MainActivity.java.....................................................................................................125
activity_main.xml ....................................................................................................132
Setting Values with Specifying Resource .............................................................. 135
Accessing Resources in Java File ......................................................................... 137
Activity Lifecycle .....................................................................................................142
Resumed State ...................................................................................................146
Paused State ......................................................................................................146
Stopped State .....................................................................................................147
Activity Lifecycle Methods ......................................................................................147
Void onCreate(Bundle savedInstanceState) Method......................................... 148
Void onStart() Method ........................................................................................150
void onRestoreInstanceState(Bundle savedInstanceState) .............................. 150
void onResume() ................................................................................................151
void onPause()....................................................................................................152
void onStop().......................................................................................................153
void onSaveInstanceState(Bundle saveStateBundle) ....................................... 153
void onRestart() ..................................................................................................154
void onRetainNonConfigurationInstance() ......................................................... 154
void onDestroy() .................................................................................................155
Android Simple Debugging ....................................................................................158

Android – User Interface Basics ................................ 165

7
Android in Hindi

UI Class Hierarchy .................................................................................................165


View, Widget and Control ...................................................................................168
Container ............................................................................................................168
Layout .................................................................................................................168
The View Class ......................................................................................................168
Bounds – Measurements....................................................................................168
Layout – Positioning on Screen.......................................................................... 169
Composition – Order of Layers .......................................................................... 169
Scrolling – Direction of Movement...................................................................... 169
Focus – Currently Active Control........................................................................ 169
Keystroke – Interaction .......................................................................................169
Gesture – Interaction ..........................................................................................169
The ViewGroup Class ............................................................................................170
Building First User Interface...................................................................................171
layout_width & layout_height – match_parent & wrap_content......................... 177
Nesting of Layouts and layout_weight ............................................................... 180
Working with Resources ........................................................................................192
ID Resource ........................................................................................................193
Bool Resource ....................................................................................................195
Color Resource...................................................................................................196
Integer and Integer Array Resource ................................................................... 197
Accessing Resources in Java File - getResources() Method ........................ 198
Typed Array Resource........................................................................................201
Dimension Measurement Resource................................................................... 202
Inches ..............................................................................................................203
Milimeter..........................................................................................................203
Point ................................................................................................................203
Pixel.................................................................................................................203
Density Independent Pixels (dp) .................................................................... 204
Scale Independent Pixels (sp) ....................................................................... 204

Android – Basic Layouts ............................................ 211


Layout Parameters .................................................................................................212
Layout Position .......................................................................................................213
Size, Margins and Padding ....................................................................................213
Linear Layout..........................................................................................................216
Gravity .................................................................................................................216

8
Android in Hindi

Margins ...............................................................................................................218
Table Layout...........................................................................................................221
TableRow Object ................................................................................................222
Grid Layout .............................................................................................................246
FrameLayout ..........................................................................................................267
Relative Layout.......................................................................................................270
layout_marginStart, layout_marginEnd, layout_paddingStart, layout_paddingEnd
............................................................................................................................273
android:layoutDirection Attribute ........................................................................ 277
android:textDirection Attribute ............................................................................277
android:textAlignment Attribute .......................................................................... 278
layout_centerVertical="true" ...............................................................................279
layout_centerHorizontal="true" ........................................................................... 279
layout_centerInParent="true" .............................................................................280
layout_alignParentTop="true" layout_alignParentRight="true"
layout_alignParentBottom="true" layout_alignParentLeft="true"
layout_alignParentStart="true" layout_alignParentEnd="true" .......................... 281
android:layout_toRightOf Attribute ..................................................................... 286
android:layout_toLeftOf Attribute........................................................................ 288
android:layout_toStartOf and android:layout_toEndOf Attribute ....................... 290
android:layout_above and android:layout_below Attributes .............................. 291
android:layout_alignTop android:layout_alignBottom android:layout_alignLeft
android:layout_alignRight android:layout_alignStart android:layout_alignEnd . 297
android:layout_alignBaseline .............................................................................303
android:layout_alignWithParentIfMissing ........................................................... 305
Constraint Layout ...................................................................................................306
Relative Positioning ............................................................................................309
Margins ...............................................................................................................311
Centering Positioning..........................................................................................314
Visibility Behavior................................................................................................316
Dimension Constraints .......................................................................................317
Chains .................................................................................................................320
Virtual Helpers Objects .......................................................................................322
How to Create ConstraintLayout ........................................................................ 322
Android – GUI Event Programming ........................... 336
Event Handling Mechanism ...................................................................................336
Input Events and Event Handler Callbacks ........................................................... 337
Event Listeners.......................................................................................................338

9
Android in Hindi

onClick() Callback Method..................................................................................339


onLongClick() Callback Method ......................................................................... 339
onFocusChange() Callback Method................................................................... 339
onKey() Callback Method ...................................................................................339
onTouch() Callback Method ...............................................................................339
onCreateContextMenu() Callback Method......................................................... 340
Event Handler Implementation using Member Class ............................................ 340
Internal Working of Event Handling.................................................................... 348
Method Chaining – Unnamed Objects ............................................................... 353
Event Handler Implementation using Interface Type ............................................ 361
Event Handler Implementation using Anonymous Inner Class ............................. 366
Event Handler Implementation within Activity Class ............................................. 369
Event Handler Implementation for only OnClick Event ......................................... 373
Event Capturing and Event Bubbling..................................................................... 379
Event Handlers of Custom Components ............................................................... 383
Touch Mode and Focus Handling .......................................................................... 384

Android – Common Input Controls ........................... 390


Input Controls .........................................................................................................390
Button Control ........................................................................................................391
Raster Graphics and Vector Graphics ............................................................... 392
ToggleButton Control .............................................................................................401
CheckBox Control ..................................................................................................403
Switch Control ........................................................................................................407
Radio Button Control ..............................................................................................410
ImageView Control .................................................................................................420
Date and Time Controls .........................................................................................429
DatePicker Widget ..............................................................................................430
Toast Widget.......................................................................................................433
TimePicker Widget..............................................................................................437
TextClock Widget................................................................................................439

Android – Adapters and AdapterViews ..................... 442


Adapters .................................................................................................................442
SimpleCursorAdapter .........................................................................................443
ArrayAdapter .......................................................................................................447
Dynamic Layouts....................................................................................................455
ListView Control .....................................................................................................456
ListView – Handling Multiple Item Selection Event ............................................ 462

10
Android in Hindi

GridView Control ....................................................................................................467


Spinner Control ......................................................................................................472
Adapter and AdapterView Hierarchy ..................................................................... 481

Android – Intents ........................................................ 488


Name Conflict Resolution ......................................................................................492
Returning Data to Calling Activity .......................................................................... 493
Passing Data to Called Activity ..............................................................................499
Android – Menus ......................................................... 507
Creating Menu ........................................................................................................507
Creating Submenu .................................................................................................517
Dynamic Menu .......................................................................................................519
Group Menu ...........................................................................................................520
Context Menu .........................................................................................................521
Popup Menu ...........................................................................................................529

Android – AppBar ....................................................... 536


Adding AppBar .......................................................................................................538
Adding Buttons in AppBar ......................................................................................542
Responding Actions ...............................................................................................544

Android – Fragments .................................................. 550


Fragment Structure ................................................................................................550
Fragment Life Cycle ...............................................................................................552
onInflate() Callback .............................................................................................553
onAttach() Callback ............................................................................................554
onCreate() Callback ............................................................................................554
onCreateView() Callback ....................................................................................555
onViewCreated() Callback ..................................................................................556
onActivityCreated() Callback ..............................................................................556
onViewStateRestored() Callback ....................................................................... 556
onStart() Callback ...............................................................................................557
onResume() Callback .........................................................................................557
onPause() Callback ............................................................................................557
onSaveInstanceState() Callback ........................................................................ 558
onStop() Callback ...............................................................................................558
onDestroyView() Callback ..................................................................................558
onDestroy() Callback ..........................................................................................558
onDetach() Callback ...........................................................................................559

11
Android in Hindi

Using setRetainInstance() ..................................................................................559


Simple Fragment Example.....................................................................................560
FragmentTransaction and Back Stack................................................................... 563
FragmentManager..................................................................................................564
Android – Dialog Boxes ............................................. 566
Working of Dialog Boxes in Android ...................................................................... 566
DialogFragment Basics ..........................................................................................567
Constructing Dialog Fragment............................................................................568
Overriding onCreateView Method .................................................................. 568
Overriding onCreateDialog Method ................................................................ 569
Displaying Dialog Fragment ...............................................................................570
Clossing Dialog Fragment ..................................................................................571
Implications of Dialog Dismiss............................................................................573
DialogFragment Simple Example .......................................................................... 574
MainActivity.java .................................................................................................574
PromptDialogFragment.java...............................................................................576
AlertDialogFragment.java ...................................................................................579
HelpDialogFragment.java ...................................................................................580
OnDialogDoneListener.java................................................................................582
Dialog Fragment Layouts ...................................................................................582
Working of DialogFragment App ........................................................................ 587
MainActivity .....................................................................................................588
OnDialogDoneListener....................................................................................588
PromptDialogFragment...................................................................................589
HelpDialogFragment .......................................................................................591
AlertDialogFragment .......................................................................................592
Embedded Dialogs..........................................................................................593

Android - AndroidManifest.xml.................................. 595


Structure of Manifest File .......................................................................................596
Element and Attributes ...........................................................................................599
Element Convention ...........................................................................................599
Attribute Convention ...........................................................................................599
Java Class Naming Convention ......................................................................... 601
Multiple Values Convention ................................................................................604
Resource Values Convention .............................................................................604
String Values Convention ...................................................................................607

12
Android in Hindi

Features of the Manifest File .................................................................................607


Intent Filters ........................................................................................................607
Icons and Labels.................................................................................................610
Permissions ........................................................................................................613
Libraries ..............................................................................................................615
<uses-sdk> Element ..............................................................................................615
<uses-configuration> Element ...............................................................................618
<uses-feature> Element.........................................................................................620
<supports-screens > Element ................................................................................623

Android – Last but not Least ..................................... 626

13
Android in Hindi

The
Introduction

14
Android in Hindi

Android – The Introduction


वतर्मान समय म� Android Platform के वल Mobile Phones या Tablets म� ही Use हो, ऐसा नह� है।
वास्तव म� Android Platform Windows, Linux, Unix, MacOS क� तरह ही Mobile जैसी छोट�
Devices के �लए Develop �कया गया एक Operating System है, �जसे �कसी भी Digital Device
म� Platform क� तरह Use �कया जा सकता है।

इसी�लए Android Platform आधा�रत न के वल Mobile Phones व Tablet PCs आ रहे ह�, ब�ल्क
Google ने इसे Set-Top Box व TVs म� भी Add करना शु� कर �दया है, �जसे Google TV के नाम
से जाना जाता है। ठ�क इसी तरह से Android Platform को �व�भ� �कार क� अन्य Digital Devices
जैसे �क Cars, Airplanes व Robots म� भी मुख्य Platform क� तरह Use �कया जाने लगा है।

�फर भी Android Platform को मूल �प से ऐसी Small Screen वाली Devices के �लए ही
Develop �कया गया था, �जनम� उसी तरह का Keyboard जैसा कोई Hardware Input Device नह�
होता, जैसा Computer System के साथ होता है, ब�ल्क Data Input करने के �लए इन Devices म�
इनक� Touch Screens को ही उपयोग म� लेते �ए उस पर ही Virtual Keyboard बना �दया जाता है।

इस�लए ऐसा माना जा सकता है �क Android Platform को भ�वष्य म� भी मूल �प से Small Screen
Devices जैसे �क Smart-Phones के �लए ही Develop �कया जाने वाला है और ये �स्थ�त एक
Android Developer के �प म� हमारे �लए Advantage भी है और कमी भी।

वतर्मान समय के Android आधा�रत Smart-Phones काफ� आकषर्क होते ह� ले�कन 1990 के दशक
के मध्य म� Mobile Devices पर Internet Services Provide करने के �लए Handheld Device
Markup Language (HDML) का �योग करना पडता था और इस HDML द्वारा Provide क� जाने
वाली Internet Services क� Capabilities भी काफ� Limited �आ करती थ�। जब�क वतर्मान समय
के Phones काफ� आसानी से Internet Services से सम्बं�धत Smart व Advance Capabilities से
यु� होते ह� और इसका मुख्य कारण है, Apple का iPhone.

Apple Company द्वारा iPhone को एक ऐसी Smart Device के �प म� Develop �कया गया था,
�जस पर Internet द्वारा Provide क� जाने वाली Services को उनक� पूणर् क्षमता के साथ ठ�क उसी
तरह से Use �कया जा सकता है, �जस तरह से उन्ह� एक Computer System पर Use �कया जाता है।

हालां�क iPhone से पहले भी कई कम्प�नय� के Smart Phones Devices Market म� उपलब्ध थे,
ले�कन �कसी भी Device को एक Smart Device बनाने हेतु सबसे महत् वपूणर् Role हम�शा उस
Device के Operating System द्वारा Play �कया जाता है और iPhone से पहले �जतने भी Smart
Devices उपलब्ध थे, उनके Operating Systems इतने Advance नह� थे �क Internet द्वारा
Provide �कए जाने वाले सभी Features को उनक� पूणर् क्षमता के साथ Run कर सक� ।

इस�लए उस समय के Smart Devices के Operating System क� इस कमी को सबसे पहले Apple
ने पहचाना और iOS नाम का वह Operating System Develop �कया �जसने Apple
के iPhone को एक Computer क� तरह ही Smart Internet Service Device बना �दया।

ले�कन क्य��क iOS को मूल �प से Apple Company द्वारा Develop �कया गया था और Apple
Company अपनी सभी Devices (Computer, Mobile, Tablet PC, Watch, Glass, etc…)
स्वयं बनाता है, इस�लए इन Devices के �लए उसके द्वारा Develop �कया गया iOS उसका स्वयं का
Intellectual Property है, �जसे कोई भी अन्य Company अपने Device म� Use नह� कर सकता था।

15
Android in Hindi

प�रणामस्व�प iOS क� वजह से iPhone व iPad के �प म� Mobile व Tablet PCs के Market म�


Apple का एका�धकार हो गया था, �जसक� वजह से Apple अपने Products (iPhone, iPad,
Watch, Glass, etc…) क� क�मत� काफ� ज्यादा रखने लगा और महंगे होने क� वजह से ये Devices
आम लोग� क� प�ंच म� नह� आ पा�। इस�लए iOS क� तरह ही एक ऐसे Platform क� ज�रत महसूस
क� गई, जो �क Internet Features युक्त Smart Devices के Market से Apple के एका�धकार को
समाप्त कर सके और iPhone/iPad क� तरह ही Smart Devices को आम लोग� के �लए उपलब्ध हो
सके ।

इसी ज�रत के प�रणाम के �प म� Android OS हमारे सामने है, जो �क पूरी तरह से iOS के समान ही
Features Provide कर सकता है ले�कन ये एक पूरी तरह से Open Source व Free Platform है,
�जसक� वजह से इस Platform को Use करते �ए कोई भी कम्पनी Android Platform पर आधा�रत
नए Device बना सकता है।

वास्तव म� Android Platform को Apple के iPhone के Market म� आने के कई साल� पहले 2003 से
ही Android Inc. नाम क� एक कम्पनी द्वारा Develop �कया जा रहा था, जो �क Andy Rubin,
Rich Miner, Nick Sears व Chris White नाम के चार लोग� क� Joint Development
Company थी और ये लोग Mobile Phone के �लए नह� ब�ल्क मूलत: Digital Cameras के �लए
एक Advance Operating System Develop कर रहे थे, ले�कन कु छ समय काम करने के बाद उन्ह�
महसूस �आ �क Digital Cameras का भ�वष्य अच्छा नह� है और Digital Cameras, वास्तव म�
Mobile Phone का एक Feature मा� रह जा�गे। इस�लए इन Developers ने Digital Cameras के
स्थान पर Smart Mobile Phones के �लए Operating System Develop करने पर अपना ध्यान
क� ��त कर �दया और जो Research Work इन्ह�ने Digital Cameras के �लए Advance Operating
System बनाने हेत ु �कया था, वो सारा Research Work इनके Mobile Phone का Operating
System Develop करने म� काम आ गया।

हालां�क इन लोग� द्वारा Android Platform के Development को पूरी तरह से Secret Project क�
तरह ही Develop �कया जा रहा था, ले�कन 2005 म� इन Developers क� कम्पनी को आ�थ�क तंगी का
सामना करना पड़ा �जसक� वजह से इनका Secret Project, Secret नह� रह गया और Google क�
नजर म� आ गया। गूगल को इस Android Project का भ�वष्य उज्ज वल �दखाई �दया क्या◌े◌ं�क
Google, Mobile Market म� Enter करना चाहता था, �जसके �लए उसे एक ऐसे ही Mobile
Operating System क� तलाश थी। प�रणामस्व�प गूगल ने पूरे Android Inc. को उनके
Developers स�हत 50 Million Dollars म� अ�ध��हत कर �लया।

गूगल ने कई तरीक� से अपने Android OS के साथ Mobile Market म� �वेश करने क� को�शश क�,
ले�कन �कसी भी तरह से वह Mobile Market म� ज्यादा स्थान नह� बना पाया, जब�क इसी दौरान Apple
के iPhone ने Launch होते ही जबरदस्त तरीके से Mobile Market को Capture कर �लया, �जसका
मूल कारण ये था �क Apple अपने Devices स्वयं ही बनाता था जब�क Android के वल एक
Operating System था �जसके �लए अन्य कम्प�नय� को Mobile Phone बनाने पड़ते थे और मा� इस
Android OS के �लए कोई भी कम्पनी Google को Pay करना नह� चाहता था।

Mobile Market म� �वेश करने के �लए गूगल ने कई तरीक� से और कई कम्प�नय� के साथ �व�भन्न
�कार के करार �कए थे और iPhone के Launch के बाद Smart Mobile Device क� ज बरदस्त
सफलता को दे खते �ए वे सभी कम्प�नयां आपस म� �मल� और Mobile जैसी Wireless Devices हेतु

16
Android in Hindi

Standard Operating System बनाने के �लए एक Open Standard Define करने हेतु �े�रत �ए
ता�क भ�वष्य म� �जतने भी Devices बन�, वे एक �सरे के साथ आसानी से Communicate कर सक�
अ◌ौर �जस समय इस Open Standard के �लए �व�भन्न कम्प�नयां स�म्म�लत ��, उस समय तक गूगल
Wireless Devices से सम्बं�धत �व�भन्न �कार के ढेर सारे Patent Register करवा चुका था इस�लए
गूगल का Android Operating System एक Standard के �प म� Prototype क� तरह Use �कए
जाने हेत ु सबसे उपयुक्त, Advance व Developed OS था।

प�रणामस्व�प Android OS के �लए Register �कए गए �व�भन्न Patents एक Open Source


Standard क� तरह उपलब्ध हो गए और जैसे ही Android OS को Open Source Standard क�
तरह मान्यता �ाप्त �ई, ��नयांभ र क� �व�भन्न कम्प�नय� ने Android OS का उपयोग करते �ए Mobile
Devices बनाने शु� कर �दए और HTC सबसे पहली कम्पनी था �जसने Android के Open
Standard के आधार पर सबसे पहले Android Mobile Phone को Apple के iPhone क� टक्कर म�
Commercially Launch �कया था।

इस �कार से Apple का iPhone, Android OS के Open Source Standard Platform बनने क�


वजह बना और Apple के iOS के Alternative के �प म� �व�भन्न Smart Device बनाने वाली
कम्प�नय� द्वारा Use �कया जाने लगा। प�रणामस्व�प iOS आधा�रत iPhone/iPad के वल Apple ही
बनाता है ले�कन Android आधा�रत Devices (Mobile Phones, Tablets, TVs, Dish, Watch,
Glass, etc…) न के वल Samsung, Sony, HTC, MicroMax, Karbonn जैसी Reputed
Companies बनाती ह�, ब�ल्क कई China Companies भी सस्ते Smart Devices बनाती ह�, जो �क
Android OS के Free उपलब्ध होने से पहले अपने स्वयं के Platform को Use करते �ए सस्ते Smart
Devices बनाते थे।

iPhones/iPad Launch होने के साथ ही बडी ही तेजी से Popular हो गए थे क्य��क ये Smart


Devices के �प म� Internet को उसक� पूणर् क्षमता के साथ उपयोग म� लेने क� सु�वधा Provide करते
थे। इसी�लए जब एक बार Android को Open Source Standard क� तरह मान्यता �ाप्त हो गई, तो
�फर Google द्वारा इसे मूल �प से Apple के iOS Platform के Alternative के �प म� ही Develop
�कया जाने लगा, ता�क Smart Devices के Market म� Apple क� Monopoly को समाप्त �कया जा
सके व Apple iPhone द्वारा Provide �कए जाने वाले सम्पूणर् Features युक्त Smart Devices को
आम लोग� तक काफ� कम क�मत पर प�ंच ाया जा सके ता�क वे भी Smart Devices का फायदा उठा
सक� ।

इस�लए जब हम Android Platform के �लए कोई App Design कर रहे होते ह�, तो हम वास्तव म�
काफ� High Quality के Applications Develop कर रहे होते ह� जो �क Android के Open Source
Standards पर आधा�रत होते ह� और हम ये Android Application, User को iPhone/iPad क�
तुलना म� काफ� कम क�मत पर अथवा मुफ्त उपलब्ध करवा रहे होते ह� क्य��क Android आधा�रत
Devices काफ� सस्ते होते ह�।

साथ ही Android Devices (Smart Phone, Tablet PCs, Watch, Glass, TV, etc...) Apple
द्वारा Provide �कए जाने वाले iOS Devices क� तुलना म� काफ� कम क�मत पर उपलब्ध होते ह�,
इस�लए हमारे Android Apps क� प�ंच iPhone/iPad Users क� तुलना म� कई गुना ज्यादा Users
तक होती है। प�रणामस्व�प हम हमारे Android App क� क�मत काफ� कम या Free रखते भी अन्य
तरीक� से काफ� Earning कर सकते ह�।

17
Android in Hindi

ले�कन Android आधा�रत Devices के �लए Program Develop करना थोडा मु�श्कल होता है,
क्य��क इन Devices क� Screen सभी Dimensions म� काफ� छोट� होती है, इनके Keypad काफ�
छोटे होते ह� जो �क Hardware Keypad के स्थान पर Software Keypad होते ह�। इन Devices से
सम्बं�धत Pointing Devices भी काफ� छोटे होते ह� और �जन लोग� के हाथ क� अंग�ु लयां बडी होती ह�,
उनके �लए ये छोटे Pointing Device, छोट� Screen व छोटे Touch Keypad Buttons काफ�
परेशानी पैदा करते ह�।

इतना ही नह�, इन Devices के CPU व Memory क� Speed तथा Storage भी Desktop व


Server Computers क� तुलना म� काफ� कम होते ह�, �जसक� वजह से इन Devices म� बडे
Application Software ठ�क से Perform नह� करते।

ले�कन Mobile Phone के Applications क� सबसे बडी �वशेषता भी यही होती है, �क वे एक ऐसी
Device म� होते ह�, �जन्ह� User अपनी सु�वधानुसार कभी भी और कह� भी उपयोग म� लेते �ए अपनी
�कसी Specific ज�रत को पूरा कर सकता है।

हालां�क Mobile Phones के कम व Slow CPU, RAM तथा कम Internal व External Storage
एक Developer के �प म� हमारे �लए काफ� Challenges पैदा करते ह�, क्य��क Desktop
Applications Develop करते समय ये Limitations वास्तव म� कोई Limitation नह� होते और
वतर्मान समय के Modern Computers के CPU, RAM व Storage कोई �वशेष परेशानी पैदा नह�
करते, ब�ल्क हम ज�रत के अनुसार बडी ही आसानी से इन्ह� Change या Upgrade भी कर सकते ह�,
ले�कन Mobile Devices के साथ ऐसा नह� �कया जा सकता क्य��क Mobile Devices म� CPU,
RAM व Internal Storage को PCB पर ही Directly Sold कर �दया गया होता है, इस�लए Mobile
Devices को आसानी से Upgrade करना सम्भव नह� होता ब�ल्क Device को Upgrade करने का
सीधा सा मतलब यही होता है �क Device को Change �कया गया है।

ले�कन �सरे Point of View से दे ख�, तो जब हम Android आधा�रत Application Programs


Develop करना चाहते ह�, तब Android SDK के �प म� हम� हम�शा कु छ Standard Libraries के
साथ Programming Language के �प म� C++ अथवा Java जैसी Mature Languages को ही
Use करना होता है और एक Standard Framework को Follow करना होता है, �जसक� वजह से
एक Android Application Develop करना �कसी Desktop या Web Application Develop करने
क� तुलना म� काफ� आसान भी हो जाता है।

यानी Android Applications Develop करने के �लए के वल Core Java का Basic Knowledge
होना ही पयार्प्त है और य�द आपको Core Java का Basic Knowledge है, तो Android
Applications Develop करने के �लए आपको के वल Android Framework को ही समझना होता
है, जो �क पूरी तरह से Java Classes को एक व्यव�स्थत तरीके से Use करना मा� है।

अन्य शब्द� म� कह� तो एक Java Programmer एक �कार से Android Programmer भी होता है


और य�द आपने कभी भी कोई Java Applet Create �कया है, तो Android App Development
को समझना आपके �लए �बल् कु ल भी मु�श्कल नह� होगा क्य��क Java Applet क� तरह ही एक
Android App का भी �न��त Life-Cycle होता है �जसके कु छ �न��त Methods होते ह� और हम�
के वल उन Methods को अपनी ज�रत के अनुसार Override करना होता है तथा Google द्वारा
Provide �कए गए Android SDK क� Libraries को Use करते �ए ही Smart Device के �व�भन्न
Hardware जैसे �क WiFi, Bluetooth, Screen, Keypad, Sensors आ�द को Access व
Manipulate करना होता है।

18
Android in Hindi

Android App – The Basic Architecture


जब हम Desktop Application Develop करते ह�, तब हमारे Application पर हमारा पूरा Control
होता है, �ज सके अन्त गर्त हम हमारी ज�रत के अनुसार कभी भी अपने Application के Main
Window को Launch कर सकते ह� व उसम� �कसी Specific Child Window जैसे �क Dialog Box
को Open कर सकते ह�।

यानी एक Desktop Application Develop करते समय हमारे Application के �व�भ� Aspects पर
हमारा पूरा Control होता है, �जसक� �व�भ� ज�रत� को Operating System द्वारा पूरा �कया जाता
है।

ले�कन हमारे Application का �कसी भी अन्य Application के साथ Directly कोई भी Interaction
नह� होता, हालां�क अन्य Applications भी उसी Operating System पर Run हो रहे होते ह� और वही
Operating System उन अन्य Applications क� �व�भ� Requirements को भी पूरा कर रहा होता
है।

जब�क य�द हम� हमारे Application Program द्वारा �कसी अन्य Application के साथ Interact करना
हो, तो ये सु�वधा हम� एक Separate API (Application Programming Interface) जैसे �क Java
Database Connectivity (JDBC) या �कसी अन्य Framework द्वारा �ाप्त होती है।

Android Applications भी कु छ इसी तरह से काम करता है, ले�कन Android Applications को थोडा
अलग तरीके से Package �कया जाता है, ता�क �जस Phone पर इन Applications को Run �कया
जाए, उन Phone Devices पर �कसी भी �कार का Software Crash जैसा Issue पैदा न हो।

यानी �त्येक Android Application Crash-Registrant हो, इस�लए उन्ह� एक Specific तरीके से
Package �कया जाता है, �ज सके �नम्नानुसार �व�भ� Important Parts होते ह�:

Views
User Screen पर जो कु छ भी दे खता है, उसे ही User Interface (UI) कहते ह� और User के सामने
कौनसा User Interface �दखाई दे गा, इसे Set करने क� �जम्मेदारी Activity क� होती है।

�कसी भी Android App म� User Interface मूल �प से दो Sub-Components के बने होते ह�,
�ज न्ह� Views व Layouts या ViewGroups के नाम से जाना जाता है।

�कसी Android App के User Interface (UI) Elements जैसे �क Button, Label, Text Box,
Radio Button, Checkbox आ�द को Views कहते ह� जो �क Android App का User
Interface Create करते ह�, ता�क User उस Android App से Interact कर सके ।

जब�क इन View Elements को Hold करने के �लए Container क� तरह काम करने वाले अन्य
Container Views को Layouts अथवा ViewGroups कहते ह�, क्य��क ये Containers वास्तव
म� Multiple UI Views को Hold करते �ए हमारे Android App के User Interface का Layout
Define करते ह� और क्य��क एक User Interface, Multiple UI View Elements का Group
होता है इस�लए इन Container Views को ViewGroup भी कहा जाता है जो �क Group of
Views को Represent करते ह�।

19
Android in Hindi

चूं�क Layout, अन्य UI View Elements का Container होते ह�, इस�लए ये मूल �प से �कसी
Android App के Screen पर �दखाई दे ने वाले View Elements के Pattern को Specify करते
�ए इस बात को तय करते ह� �क �व�भन्न User Interface Elements Screen पर Visually
(Height, Width, Position, etc…) �कस तरह से �दखाई द� गे।

उदाहरण के �लए LinearLayout Use करने पर इसके अन्दर Render होने वाले �व�भन्न User
Interface Elements Vertically (एक UI Element के ऊपर या नीचे �सरा) अथवा
Horizontally (एक UI Element के पहले या बाद म� �सरा) Stack होते ह� जब�क
RelativeLayout Use करने पर इसके अन्दर Render होने वाले �व�भन्न User Interface
Elements अपने Parent अथवा Sibling UI Element के संदभर् म� Render होते ह�।

Android Application के User Interface को XML Markups के माध्यम से ठ�क उसी तरह से
Define �कया जाता है, �जस तरह से हम �कसी Webpage पर �कसी Registration Form को
HTML के <form> Markup द्वारा Define करते ह�।

यानी �जस तरह से एक Web Browser का HTML Parser हमारे HTML Webpage के <form>
Element म� Specify �कए गए <button>, <input>, <label> आ�द HTML Markups को
Button, TextBox व Label जैसे GUI Controls के �प म� Render करता है, ठ�क उसी तरह से
एक Android App के User Interface को हम �जन XML Markups का �योग करते �ए Define
करते ह�, Android App का XML Parser उन XML Markups के आधार पर Android Device
क� Screen पर User Interface Controls को Display कर दे ता है।

उदाहरण के �लए जब भी हम RelativeLayout पर आधा�रत कोई नई Activity Create करते ह�,


उस Activity के साथ ही Automatically एक Layout View भी Create हो जाता है और उस
Automatically Create होने वाले View म� Default �प से �नम्न XML Markups होते ह�-

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout
xmlns:android=http://schemas.android.com/apk/res/android
xmlns:tools=http://schemas.android.com/tools
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:text="Hello World!"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</RelativeLayout>

20
Android in Hindi

Create होने वाली View File मूलत: एक XML File होती है इस�लए �कसी भी XML File क� तरह
ही इसक� शु�आत भी �नम्नानुसार <?xml /> Element से होती है:

<?xml version="1.0" encoding="utf-8"?>

जो Android Framework के XML Parser को इस बात क� जानकारी दे ता है �क Current File


एक XML File है, जो �क Android App के Visual Part यानी GUI Part को Control करता है।

साथ ही �कसी भी Framework क� तरह ही Android Framework म� भी Files का Naming


Convention महत् वूप णर् Role Play करता है। इस�लए इस File का नाम इसके साथ Create होने
वाली Activity File के नाम से सम्बं�धत होता है।

उदाहरण के �लए जब MainActivity.java नाम का Activity File Create होता है, तो उसके साथ
Create होने वाले Layout View File का नाम activity_main.xml होता है। इसी तरह से य�द हम
हमारे Current Android App म� SecondActivity नाम क� एक और Activity Create कर�, तो
Create होने वाली SecondActivity.java File के साथ जो Layout View File Create होता है,
उसका नाम activity_second.xml होता है।

हालां�क य�द हम चाह� तो Android Framework के इस Naming Convention को Follow न


करते �ए इन नाम� को अपनी इच्छानुसार बदल भी सकते ह�, ले�कन बेहतर यही होता है �क हम इन
नाम� को न बदलते �ए Android Framework के Naming Convention को ज्य� का त् य� Follow
कर� क्य��क जब हम इन Naming Conventions को ज्य� का त् य� Follow करते ह�, तो Android
Development के �लए हम �जस �कसी भी IDE को Use कर रहे होते ह�, वह IDE हमारे �लए काफ�
Android Codes Automatically Generate कर दे ता है, �जससे हमारे App Development क�
Speed काफ� बढ़ जाती है।

चूं�क Android App का Layout व GUI Part, XML Markup आधा�रत Language द्वारा Create
�कया जाता है, �जसे Android Framework का XML Parser Parse करता है, इस�लए हम जब
कोई नया Activity Create करते ह�, उसके साथ Create होने वाले Layout View म� उपरोक्तानुसार
Specified <RelativeLayout … /> व <TextView … /> नाम के दो Elements होते ह� और
जैसा�क हमने पहले बताया �क Android App के User Interface मूलत: दो �कार के Sub-
Components Views व Layout या GroupViews के बने होते ह�।

अत: इस Automatically Generate होने वाले XML Code म� <RelativeLayout … />


Element एक �कार का Layout अथवा GroupViews है, जो �क <TextView … /> जैसे कई
View Elements को एक Group के �प म� Contain करते �ए Create होने वाले Android App
के User Interface को Organize करता है।

अन्य शब्द� म� कह� तो Layout/GroupViews Element स्वयं Visually �दखाई नह� दे ता, ले�कन
Android App का User Interface कै सा �दखाई दे गा और User Interface के �व�भन्न UI
Elements (Button, Textbox, Checkbox, Radio Button, Images, etc…) Screen पर कहां
Place ह�गे और कै से �दखाई द� गे, इस बात को तय करके User Interface को Organize करने का
काम Layout/GroupViews Element द्वारा ही तय होता है।

21
Android in Hindi

इसी वजह से उपरोक्त XML Code म� <TextView … /> Element को <RelativeLayout …


/> Element के बीच Enclose �कया गया है क्य��क <TextView … /> Element एक View
Element है, �जसे हम�शा �कसी न �कसी Layout/GroupViews Element के अन्दर Contained
होना होता है और <RelativeLayout … /> Element �कसी भी Android App का Default
Container Layout होता है, �ज सके अन्तगर्त �त् येक View Element (Button, Textbox, Radio
Button, Checkbox, etc…) क� Screen Positioning (Mobile/Tablet क� Screen पर
Control Situation), उसके Parent या Sibling UI Element क� Screen Positioning से
सम्बं�धत होती है। इस�लए Current UI Element के Parent/Sibling क� Screen Position
Change करने पर उसका �भाव Current UI Control क� Screen Position पर भी पड़ता है।

Android Framework हम� कई �कार के Layout Views Provide करता है, जहां
<RelativeLayout … />, Android Framework द्वारा Automatically Generated Code का
Default Layout View होता है और हम हमारे Android App के �लए अपनी ज�रत के अनुसार
चाहे जो भी Layout View Use कर�, सभी म� सबसे पहले हम� �नम्नानुसार दो XML Namespaces
को Specify करना ज�री होता है, जो �क Android के View Parser को इस बात क� जानकारी दे ते
ह�, �क उन्ह� �कसी Mobile/Tablet Screen पर Android App के GUI को �कस �कार से Render
करना है:

xmlns:android=http://schemas.android.com/apk/res/android
xmlns:tools=http://schemas.android.com/tools

चूं�क जब Android Framework का UI Part पूरी तरह से XML File द्वारा Control होता है, तब
एक XML File म� Specify �कए जाने वाले �व�भन्न Elements क� कु छ न कु छ Descriptions होती
ह�, �जनके आधार पर XML Parser उस XML File क� Parsing करना है, यानी XML File को Run
करता है और Description के आधार पर ही Output Generate करता है। इसी Description को
XML Namespace के नाम से xmlns Attribute द्वारा Specify �कया जाता है।

Namespace के Concept को ठ�क से समझने के �लए हम एक C/C++ Program क� Analogy


लेत े ह� जहां हम जानते ह� �क �कसी C/C++ Program File म� हम Header Files को इसी�लए
Include करते ह�, ता�क उसम� Defined Functions, Class, Constants आ�द को अपने Current
C/C++ Program म� Use कर सक� ।

उदाहरण के �लए C/C++ म� <stdio.h> नाम क� Header File म� scanf() नाम के Function को
प�रभा�षत (Define) �कया गया है, जो �क Keyboard से अपने वाले Input Data को �कस तरह से
Accept करना है, इस बात को Describe करता है।

इस�लए जब तक हम हमारे C/C++ Program म� <stdio.h> Header File को Include न कर�, तब


तक हम हमारे Program म� Keyboard से Input नह� ले सकते क्य��क Input कै से लेना है, इस बात
क� जानकारी के वल scanf() Function के अन्तगर्त Specify �कया गया है और ये Specification,
<stdio.h> नाम क� Header File म� �लखा गया है।

प�रणामस्व�प जब हम ऐसे C/C++ Program को Compile करते ह�, �जसम� User Input Accept
करने के �लए scanf() Function को तो Use �कया गया है, ले�कन <stdio.h> Header File को
Include नह� �कया गया है, तो Compilation के दौरान C/C++ का Compiler, Program म� Use

22
Android in Hindi

�कए गए scanf() Function का Description खोजता है, ता�क उसे पता चल सके �क उस इस
Function के माध्यम से क्या और कै से करना है।

�कन क्य��क हमने हमारे C/C++ Program म� <stdio.h> नाम क� Header File को Include ही
नह� �कया है, इस�लए Compiler को पता ही नह� चलता �क scanf() नाम के Code को Execute
कै से करना है, फलस्व�प Program Compile नह� होता और Compiler हम� “Missing Symbol
: scanf” का Error दे त ा है।

ठ�क इसी तरह से उपरोक्त Code म� xmlns Attribute के माध्यम से हम Android Framework के
XML Parser को बताते ह� �क Current XML File म� �लखे गए XML Codes को कै से Parse
करना है।

अत: य�द हम xmlns Attribute को Specify न कर�, और <TextView … /> UI Element को


Specify करते �ए Activity Screen पर कोई Text Display करना चाह�, तो उस �स्थ�त म� Android
Platform के XML Parser को पता ही नह� होगा �क <TextView … /> Element �मलने पर उसे
करना क्या है, क्य��क <TextView … /> XML Code �मलने पर उसे एक Text Message को
Display करना है, इस बात का Description उस URI म� है, �जसे xmlns Attribute म� Value के
�प म� Set �कया जाता है। इस�लए जब हम �नम्नानुसार xmlns Specify करते ह�:

xmlns:android=http://schemas.android.com/apk/res/android
xmlns:tools=http://schemas.android.com/tools

तो हम Android Platform के Layout/View XML Parser को ये बता रहे होते ह� �क Screen पर


�दखाई दे ने वाले �व�भन्न Visual User Interface Controls को Mobile/Tablet Screen पर कहां
और कै से Render करना है।

क्य��क Layout/View XML File क� Parsing के दौरान <TextView … /> XML Code �मलने
पर एक Label Control बनना चा�हए और <Button … /> XML Code �मलने पर Screen पर
एक Button �दखाई दे ना चा�हए, XML Parser को इस बात का Description, xmlns Attribute म�
Value के �प म� Specify �कए गए URI द्वारा ही चलता है और हम अपने View (User Interface)
को Create करने से सम्बं�धत �जतने भी Symbols (<RelativeLayout … />, <TextView … />,
<Button … />, आ�द) Use करते ह�, उन सभी का Description इसी URI से सम्बं�धत होता है।

य�द �बल् कु ल ही सरल शब्द� म� कह�, तो ये xmlns Attribute म� Value के �प म� Specify �कए गए
जाने वाले ये URIs एक �कार से C/C++ क� Header Files के समान ही होते ह� अत: य�द xmlns म�
इन्ह� Specify नह� �कया, तो User Interface नह� बनेगा, ठ�क उसी तरह से, �जस तरह से य�द
<stdio.h> Header File को अपने C/C++ Program म� Include नह� �कया, तो Keyboard से
Input Accept नह� होगा।

XML Specification हम� एक ही XML File म� एक से ज्यादा URI से सम्बं�धत Symbols यानी
XML Elements को एक ही XML File म� ठ�क उसी तरह से Use करने क� सु�वधा Provide करता
है, �जस तरह से हम �कसी C/C++ Program म� एक से ज्यादा Header Files को Include करते
�ए उनक� Functionalities को समान Program File म� �ाप्त कर लेते ह�। ले�कन �कसी XML File
म� एक से ज्यादा URI से सम्बं�धत Symbols को Use करने के �लए हम� xmlns के Prefix Concept
का �योग करना पडता है।

23
Android in Hindi

उदाहरण के �लए उपरोक्त XML Code के xmlns:android Attribute म� xmlns Namespace


है जब�क Colon के बाद Specify �कया गया android शब्द Prefix है। इसी तरह से xmlns:tools
Attribute म� xmlns Namespace है जब�क Colon के बाद Specify �कया गया tools शब्द
Prefix है।

इस �कार से Prefix युक्त URI Specify करके हम दो अलग Namespaces से सम्बं�धत


Descriptions पर आधा�रत Symbols (XML Codes or XML Elements) को समान XML File
म� Use कर सकते ह� और दोन� Namespaces से सम्बं�धत Symbols द्वारा Provide क� जाने वाली
Functionalities को समान XML File म� �ाप्त कर सकते ह�।

Prefix युक्त Namespaces को Specify करने का एक फायदा ये भी होता है �क य�द दोन�


Namespaces म� समान Symbol (XML Element) को Define �कया गया हो, तब भी दोन� के
बीच Name Conflict नह� होता।

उदाहरण के �लए य�द xml:android Attribute से Associated URI क� Definition म� <red>


नाम का एक Symbol यानी XML Element है, �जसे Use करने पर XML Parser एक Red Color
क� Line Draw करता है, जब�क xml:tools Attribute से Associated URI क� Definition म� भी
<red> नाम का एक Symbol यानी XML Element है, ले�कन इसे Use करने पर XML Parser
एक Error Message Display करता है।

हम समझ सकते ह� �क दोन� ही URI Definitions म� <red> Symbol Exist है, ले�कन XML File म�
जब हम <android:red … /> XML Element Use करते ह�, तो Parsing के बाद Output म� एक
Red Line Render होता है, जब�क <tools:red … /> XML Element Use करते ह�, तो
Parsing के बाद Output म� एक Error Message Render होता है और हम इन Prefixes को तभी
Use कर सकते ह�, जब�क हमने Prefix युक्त Namespaces को Specify �कया हो। य�द हमने इन्ह�
Prefixed तरीके से Specify न �कया हो, तो उस �स्थ�त म� एक से अ�धक Namespaces म� समान
Symbol होने पर XML Parsing के दौरान Name Conflict होगा।

चूं�क Android Platform व इसका Development Environment दोन� अभी पूरी तरह से Stable
नह� ह� और Google इनम� समय-समय पर उपयुक्त Modifications करके Different Defaults Set
करता रहता है। इसी�लए Android Studio 2.2 तक जब भी कोई नया Android Project Create
करते थे, Default �प से RelativeLayout आधा�रत Layout ही Create होता था। ले�कन
Android Studio 2.2 के बाद के Versions वाले Android Studio म� हम जब भी कोई नया
Project Create करते ह�, तो Default Layout के �प म� RelativeLayout के स्थान पर अब
ConstraintLayout Create होता है �जसका XML Codes �नम्नानुसार होता है-

<?xml version="1.0" encoding="utf-8"?>


<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bccfalna.helloworld.MainActivity">

24
Android in Hindi

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

क्य��क Google ने RelativeLayout को ही और बेहतर करके इसके Improved Version को


ConstraintLayout क� तरह Android Studio के �व�भन्न Projects के �लए Default क� तरह Set
कर �दया है।

ले�कन Android Studio हम� ये सु�वधा दे ता है �क हम इस Default ConstraintLayout को अपनी


ज�रत के अनुसार �फर से RelativeLayout म� Convert कर सकते ह� और इसके �लए हम� के वल
मा� इतना ही करना है �क हम उपरोक्त XML Code म� Highlighted ConstraintLayout Code
को �नम्नानुसार RelativeLayout से Replace कर द� -

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bccfalna.helloworld.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</ RelativeLayout>

जैसे ही हम उपरोक्तानुसार ConstraintLayout को RelativeLayout से Change करते ह�, हमारा


Layout एक Relative Layout बन जाता है।

हालां�क इस Section म� हमने जो भी Discussion �कया वो RelativeLayout के XML Codes पर


आधा�रत था ले�कन इस बात से कोई फकर् नह� पड़ता क्य��क Layout Change करने के बावजूद
हमने Namespace व Prefix से सम्बं�धत जो भी Discussion �कया, वो सबकु छ ज्य� का त् य� है
और क्य��क अब Google, Android Apps के �लए Default Layout के �प म�

25
Android in Hindi

ConstraintLayout को ही Recommend करता है इस�लए अब आप जब भी कोई नया Android


App Create कर�, ज हां तक सम्भव हो, उसे ConstraintLayout के आधार पर ही Develop कर�।

चूं�क Android अभी पूरी तरह से �वक�सत Platform नह� है ब�ल्क ज�रत के अनुसार �नरंतर
�वकासशील है इस�लए Google समय-समय पर Android Studio के �व�भन्न �कार के Defaults
को भ�वष्य म� भी Change करेगा। इस�लए अब ConstraintLayout ही हम�शा के �लए Android
Studio का Default Layout रहेगा, ऐसा मान लेना ठ�क नह� है ब�ल्क हो सकता है �क Google इस
ConstraintLayout को भी और Improve करके कु छ और नए तरह का Layout Define कर दे जो
�क आने वाले भ�वष्य म� Android Studio का Default Layout बन जाए।

अत: Google जब भी कोई नया Recommendation दे , हम�शा उसी को Follow करना अपने
Android App को Long Term तक Maximum Android Devices के �लए Useful व
Supported बनाए रखने का एकमा� तरीका है।

Activity
Activity एक User Interface (UI) Concept होता है जो सामान्यत: �कसी Android
Application क� एक Single Screen को Represent करता है। इस User Interface Screen
पर ज�रत के अनुसार एक या अ�धक Views हो सकते ह� ले�कन Views का होना Compulsory
नह� होता। यानी एक ऐसा Android App भी हो सकता है �क �जसक� Activity म� कोई भी View न
हो।

�कसी Activity को हम हमारे Android App का एक ऐसा Part मान सकते ह�, जो User को कोई
Action Perform करने म� मदद करता है। सरल शब्द� म� कह� तो Activity, User Interface के �प
म� वह माध्यम होता है, जो User Interactions के कारण Perform होने वाले �व�भन्न Actions को
Handle करता है।

उदाहरण के �लए जब User �कसी Android App क� �कसी Screen पर �दखाई दे ने वाले �कसी
Button को Tap करता है, तो उस Tapping Action के Response म� Perform होने वाले Task
को इसी Activity Part म� Specify व Implement �कया जाता है।

मानलो �क हम चाहते ह� �क जब User �कसी Button को Click करे, तो वह Android App Close
हो जाए।

इस ज�रत को पूरा करने के �लए Button Click Action के Response म� Android App को
Close करने से सम्बं�धत Programming Codes (Program Logics) को Activity के अन्तगर्त
ही �लखा जाता है, जो �क एक Java Class होती है।

क्य��क Android App क� �त् येक Activity एक Java Class File ही होती है �जसके Program
Codes द्वारा इस Java Class File से Linked Layout View File के User Interface द्वारा जो
भी Action Perform �कया जाता है, उसे Linked Activity Class File द्वारा ही Handle �कया
जाता है।

�कसी Activity के अन्तगर्त Data View करना, Data Create करना व Data Edit करने से सम्बं�धत
ज�रत� को पूरा �कया जाता है। सरल शब्द� म� कह� तो CRUID (Create, Read, Update, Insert,
Delete) Operations को Android App के Activity Part म� Perform �कया जाता है।

26
Android in Hindi

Activity �कसी भी Android App का एक Compulsory Part होता है और �कसी भी Android


App को Open करने पर जो सबसे पहला Screen Display होता है, वह Activity ही होता है। साथ
ही हर Activity म� User Interface को या तो Hard Code के �प म� ज�र Specify �कया गया
होता है अथवा View नाम क� एक Separate XML File के �प म� ज�र Create �कया गया होता
है, जो �क Activity के साथ Associate रहता है।

सरल शब्द� म� कह� तो कोई भी Activity �बना User Interface के नह� हो सकता। �फर भले ही User
Interface, View नाम क� एक Separate XML File के �प म� हो अथवा User Interface को
Activity Class म� ही Hard Code �कया गया हो।

साथ ही जैसा�क हमने पहले कहा �क �कसी भी Android App म� एक या अ�धक Activity हो सकते
है, ले�कन सभी Activities म� एक ऐसा Activity होता है, जो �क उस Android App का Entry
Point होता है और एक Android App म� ऐसा के वल एक ही Activity हो सकता है, �जसे सामान्यत:
Launcher Activity अथवा Main Activity के नाम से Refer �कया जाता है। यही वह Activity
होता है, जो उस Android App के Start होते ही सबसे पहले Screen पर �दखाई दे ता है।

�कसी भी Android App क� �त् येक Activity का एक �न��त Life Cycle भी होता है, �ज सके
�वषय म� हम आगे �वस्तार से जान�गे।

Activity मूलत: एक Java Class File होता है। इस�लए य�द हम चाह� तो User Interface Create
करने से सम्बं�धत �व�भन्न Program Logics को इसी Class File म� Hard Code के �प म� �लख
सकते ह�।

ले�कन सामान्यत: एक Android App को MVC Pattern पर आधा�रत Application के �प म�


Develop �कया जाता है, �जसके अन्तगर्त Activity एक Controller का Role Play करता है,
जब�क User Interface को View के �प म� Define �कया जाता है।

प�रणामस्व�प MVC Pattern के कारण हम Separation of Concerns का Rule Follow कर


पाते ह� �जसक� वजह से App के Program Logics को User Interface से सम्बं�धत Visual
Logics से Separate रखा जाना सम्भव हो जाता है और अपने App को Develop, Modify,
Extend व Manage करना आसान हो जाता है।

Fragment
जब �कसी Android App क� Screen इतनी बड़ी हो �क उसक� सभी Functionalities को एक
Single Activity म� Manage करना क�ठन हो, तो इस �स्थ�त म� उस बड़ी Activity को कई छोट�–
छोट� Sub-Activities म� Divide कर �दया जाता है। इन्ह� छोट�–छोट� Sub-Activities को
Fragments कहते ह� और एक Activity समान समय पर एक या अ�धक Fragments को Screen
पर Display कर सकता है।

जब Screen छोट� होती है, तब एक Activity म� सामान्यत: के वल एक ही Fragment होता है और


वही Fragment बड़ी Screen पर भी समान �प से �दखाई दे ता है।

27
Android in Hindi

Fragments क� सबसे बडी �वषेशता यही है �क एक बार Create कर लेने के बाद हम �जतनी चाह�
उतनी Activities म� इन्ह� बार-बार Reuse कर सकते ह�। साथ ही Activity क� तरह ही �त् येक
Fragment का स्वयं का भी एक अलग Lifecycle होता है और हर Fragment स्वयं स्वतं� �प से
Separate Input Events Receive कर सकता है और उसे Response कर सकता है, �जनका
Main Activity से कोई Direct संबंध नह� होता।

�कसी Fragment को हम�शा �कसी न �कसी Activity म� Embedded होना ज�री होता है और �जस
Activity म� कोई Fragment Embedded होता है, उसक� Lifecycle का Direct Effect,
Fragment क� Lifecycle पर पड़ता है। यानी Parent Activity क� Lifecycle का End हो जाए, तो
Fragment क� Lifecycle चाहे Run ही क्य� न हो रही हो, उसका भी End हो जाता है। इसी तरह से
जब Parent Activity Pause होता है, तो उसके सभी Embedded Fragments भी Pause हो
जाते ह�।

हालां�क जब Activity Resumed यानी Running Stat म� होता है, तो उस �स्थ�त म� उसके सभी
Fragments को हम स्वतं� �प से Access व Manipulate कर सकते ह�। यानी हमारी ज�रत के
अनुसार एक या अ�धक Fragments को अपनी �कसी भी Activity म� स्वतं� �प से Add/Remove
कर सकते ह�।

जब हम �कसी Fragment को अपनी Activity Layout के एक Part के �प म� Add करते ह�, तो वह


Fragment हमारी Activity के View Hierarchy के Layout यानी ViewGroup के अन्दर ही रहता
है और वह� पर अपना स्वयं का अलग Fragment Layout Define करता है।

�कसी Fragment को अपनी Activity Layout म� Insert करने के �लए हम� हमारे Activity क�
Layout File म� <fragment> Element को Existing ViewGroup के अन्दर ही Use करना
होता है अथवा अपने Application क� Code File म� Code के माध्यम से भी इसे Add �कया जा
सकता है, �जसके बारे म� हम आगे जान�गे।

हालां�क हम हमारी ज�रत व इच्छानुसार �कसी Fragment को अपनी Activity म� Add कर सकते ह�,
ले�कन �कसी भी Android App म� इसे Compulsory �प से Use करना ज�री नह� होता और �बना
Fragment का �योग �कए �ए भी हम हमारा पूरा Android App Create कर सकते ह�। साथ ही जब
हम �कसी Fragment को Use करते ह�, तब ये भी ज�री नह� होता �क हमारे Fragment का UI
Part भी Create �कया जाए। य�द हम चाह�, तो Fragment को �बना UI के एक Invisible
Background Worker के �प म� भी Create कर सकते ह�, जो �क हमारी Main Activity के �लए
ज�री �कसी Functionality को Invisibly Fulfill करता हो।

Intents
Intents वास्तव म� System Messages होते ह�, जो �क Android Platform को Device के अन्दर
Running रखते ह� और उस Android Platform पर Run होने वाले �व�भ� Applications को
�व�भ� �कार के Events के �लए Notify करते ह�।

यानी �जस �कार से हमारे Computer System म� Operating System �व�भ� �कार के
Hardware व Software Events को Trigger करके Applications को कोई Specific Task
Complete करने के �लए Notify करता है, ठ�क उसी तरह से Android Device म� �कसी भी �कार
के Hardware State Change (जैसे �क SD Card को Device म� Insert या Remove करने)
अथवा Software State Change (जैसे �क SMS के �प म� नए Incoming Data के आने अथवा

28
Android in Hindi

जाने या �फर Application के Menu Option को Touch करने, आ�द) के �प म� �व�भ� �कार के
Events के Trigger होने पर भी Android System, Android App को �कसी Specific Task के
Complete होने के �लए Notify करता है।

अन्य शब्द� म� कह� तो �जन्ह� अन्य Operating Systems म� Messages या Events के नाम से
जाना जाता है, उन्ह� ही Android Platform के अन्तगर्त Intents कहते ह� और हम न के वल �कसी
Intent को Respond कर सकते ह�, ब�ल्क अपनी ज�रत के अनुसार नया Intent Create भी कर
सकते ह� और उन Intents के Response म� �कसी Specific Activity को Launch भी कर सकते ह�
अथवा इस बात को तय कर सकते ह� �क वह Situation कब आएगी, जब कोई Specific Intent
Trigger होगा।

उदाहरण के �लए य�द हम� �कसी Intent को उस समय Trigger करना हो जब�क वह �कसी Specific
Location के 200 Meter के दायरे म� आए, तो इस �कार के Intent को Schedule करने के �लए
हम� हमारे स्वयं के Intent Create करने क� ज�रत पडती है।

य�द एक Android Developer के �प म� Intent के महत् व को सरल शब्द� म� समझने क� को�शश


कर�, तो Intent हम� �कसी Specific Hardware/Software Event Trigger होने के Response म�
एक Activity से �सरी Activity पर Move करने क� सु�वधा दे ता है।

उदाहरण के �लए मानलो �क हमारे Android App म� Main Activity पर एक Button है, �जसे Click
करने पर एक नया Alert Box Display होता है। इस �स्थ�त म� एक Button के Click होने पर
Response �प म� Display होने वाला Alert Box एक �कार का Intent होता है।

Intents का �योग करते �ए हम एक Activity के Data को �सरी Activity बीच Pass करने का काम
करते ह�। हम अपनी �कसी Specific ज�रत को पूरा करने के �लए एक Intent के माध्यम से ही सम्पूणर्
Current Activity को भी एक Object क� तरह �सरी Activity पर Pass कर सकते ह�। इतना ही नह�
हम चाह� तो Intents का �योग करते �ए �कसी नए Android Application को भी Open कर सकते
ह� अथवा �कसी Service को Launch/Activate कर सकते ह�, जो �क Background म� Run होते
�ए Current Android Application क� �कसी Requirement को Invisibly पूरा करने लगता है।

सरल शब्द� म� कह� तो Intent ही वह तरीका ह�, �जनके माध्यम से Current Android Application
क� Current Activity के �कसी Trigger होने वाले Event के Response म� Current Application
अथवा �कसी अन्य Android Application क� �कसी �सरी Activity को Launch कर सकते ह�।
जब�क सामान्यत: �कसी Intent को Current Activity के User Interface म� �स्थत �कसी UI
Control को Click करने पर Trigger होने वाले Click Event के Response म� ही Fire �कया जाता
है।

Intents का �योग सामान्यत: कोई SMS Send करने, �कसी Service को Start करने, �कसी
Activity को Launch करने, �कसी Webpage को Display करने, Contact List को Display
करने, कोई Phone Number Dial करने अथवा �कसी Phone Call को Receive करने जैसी
ज�रत� को पूरा करने के �लए �कया जाता है।

Intents को हम�शा Android App द्वारा ही Initiate �कया जाता हो, ऐसा ज�री नह� है, ब�ल्क इन्ह�
Android Operating System द्वारा भी Initiate �कया जाता है ता�क वह हमारे Android
Application को कोई Specific Notification दे सके ।

29
Android in Hindi

उदाहरण के �लए जब आप �कसी Android App को Use कर रहे होते ह�, उसी समय कोई SMS
आता है तो आपको उस नए आने वाले SMS का जो Notification �ाप्त होता है, वह एक Intent के
माध्यम से ही �ाप्त होता है, ले�कन इस Intent को �कसी Application द्वारा नह� ब�ल्क Android OS
द्वारा Initiate �कया गया होता है।

Intents, Implicit व Explicit यानी Automatic व Manual दोन� तरीक� से Initiate हो सकते ह�।
उदाहरण के �लए जब आप अपने Android Device के Mail App म� आए �ए �कसी Email म� Exist
�कसी URL को दे खने के �लए उसे Tap करते ह�, तो आपके Intention को समझते �ए उस URL से
Associated Webpage को �दखाने के �लए आपके Android Device का Operating System
स्वयं Intent के माध्यम से Web Browser Application को Launch कर दे ता है क्य��क Android
OS को पता है �क एक URL को Web Browser द्वारा ही दे खा जा सकता है। इस �स्थ�त म� Create
होने वाला Intent, Android System द्वारा Automatically (Implicitly) Create होता है।

जब�क अपने Android App के �कसी Button को Click करने पर Web Browser Application
को Launch के �लए, हम� हमारे Intent को Manually Create करके Execute करना पडता है और
इस Situation म� हमारा Intent, Trigger होने वाले Action (Event) और उसके Response म�
Execute होने वाले Action Handler या Event Handler के साथ Loosely Coupled रहता है।

Activities, Views व Intents मा� इन तीन� का �योग करते �ए भी हम एक Completely


Working Android App Create कर सकते ह� और ढेर� ऐसे Android Apps पहले से उपलब्ध ह�,
�ज न्ह� मा� इन तीना चीज� का �योग करते �ए ही Develop �कया गया है।

Services
Activities का Lifetime काफ� कम होता है और वे कभी भी Shut-Down हो सकते ह� अथवा
ज�रत के अनुसार उन्ह� Close �कया जा सकता है। जब�क Services वे Background Programs
होते ह�, जो User क� जानकारी के �बना Background म� Continually Run होते रहते ह�।

Services को हम Background Processes भी कह सकते ह� और �नम्न �च�ानुसार Windows


OS के Task Manager म� �दखाई दे ने वाले Background Processes क� तरह मान सकते ह�,
�जनका कोई User Interface नह� होता, ब�ल्क वे Background म� Invisibly Run हो रहे होते ह�
और �व�भन्न �कार क� System व Application Related Requirements को Fulfill कर रहे होते
ह�:

30
Android in Hindi

उदाहरण के �लए जब हम हमारे Android Device पर कोई Music सुन रहे होते ह�, उसी दौरान हम
अपने WhatsApp Application पर �कसी को Reply भी कर रहे होते ह� अथवा Hangone App या
Facebook App पर �कसी के साथ Chat भी कर रहे ह�, ले�कन हमारा Music, WhatsApp,
Facebook या Hangout App को Use करते समय भी Continuously Run हो रहा होता है,
क्य��क वह हमारी जानकारी के �बना Background म� एक Service क� तरह Run हो रहा होता है।

Services क� यही �वशेषता है �क उनका कोई User Interface होना ज�री नह� होता और �बना
User Interface के भी वे Background म� Invisibly Run होते �ए हमारी �कसी Requirement
को पूरा कर रहे होते ह�।

Services, Android OS का एक ऐसा तरीका ह�, �जनके माध्यम से हम �कसी Operation को


Background म� Invisibly Running रख सकते है। इस�लए जब हम� �कसी Task को लम्बे समय
तक Running रखना होता है, जैसे �क �कसी बड़ी File को Upload/Download करना, तब इस
�कार क� ज�रत को पूरा करने के �लए हम Service Create करते ह�।

चूं�क Services के �लए कोई User Interface होना ज�री नह� होता, इस�लए Services के Start,
Activate, Pause, Resume या End आ�द से सम्बं�धत Stat Related Information को
Notifications के माध्यम से Handle �कया जाता है।

Services Create करने के हम�शा दो तरीके होते ह�:

31
Android in Hindi

1. पहले तरीके के अन्तगर्त �कसी Service को Activity के माध्यम से Create �कया जाता है।
इस �कार क� Services, उस Activity के Stop होने के साथ ही समाप्त हो जाती ह�, �जसके
माध्यम से इन्ह� Create �कया गया होता है।

2. जब�क �सरे तरीके के अन्तगर्त इन Activities को स्वतं� �प से Create �कया गया होता है,
�जसक� वजह से ये �कसी Application क� �कसी Activity के साथ Bound नह� होते,
प�रणामस्व�प �कसी Application के Start या Stop होने से इनके Run होने पर कोई
�भाव नह� पड़ता और एक बार Start होने के बाद ये Background म� Invisibly
Continually Run होते रहते ह�।

इसी बात को य�द हम �सरे तरीके से कह� तो एक Android System, Local Service व
Remote Service के �प म� दो �कार क� Services Define कर सकता है। Local Service के
�प म� जो Service Create क� जाती है, उसे Current Device का के वल वही Applications Use
कर सकता है, �जसने Service को Create �कया होता है, जब�क Remote Service के �प म� �जस
Service को Create �कया गया होता है, उसे उस Device के �व�भन्न Applications अपनी ज�रत
के अनुसार Use कर सकते ह�।

अत: Local Service को हम �कसी Activity द्वारा �कसी Application के माध्यम से Create क� गई
Service कह सकते ह�, जब�क Remote Service को हम एक स्वतं� �प से Create क� गई
Service कह सकते ह�।

Services को हम एक �न��त समयान्तराल पर �कसी Specific Task के Complete होने के �लए


बार-बार Execute होने हेत ु Schedule भी कर सकते ह� और ये Scheduling करने के �लए हम
Cron-Jobs Setup कर सकते ह�, �जनके बारे म� हम आगे �वस्तार से जान�गे।

Content Providers
ऐसे Data, �जन्ह� Device के Multiple Applications द्वारा Access �कया जाना हो, को इन
Applications हेत ु Access करवाने के �लए �जस तरीके का �योग �कया जाता है, उसे Content
Provider कहते ह�।

यानी Android Development Model हम� Content Providers के माध्यम से Data को इस


�कार से Develop करने क� सु�वधा Provide करता है, ता�क उन्ह� Device के अन्य Applications
भी उपयोग म� ले सक� । साथ ही हमारे Data पर इन Content Providers का पूरा Control भी होता
है, जो इस बात को �न��त करते ह� �क �व�भ� Applications हमारे Data को �कस तरह से Access
व Manipulate कर सक� गे।

यहां Content Providers द्वारा Provide �कए जाने वाले Content को हम �कसी भी �कार का ऐसा
Content मान सकते ह�, �जसे हमारे Application म� Use �कया जा सकता हो। उदाहरण के �लए
RSS Feed, Local SQL Database, �कसी Text File म� Stored Data आ�द, सभी Content
के Example ह�, क्य��क हम इन्ह� हमारे Android Device के �कसी भी Application म� Android
Architecture म� Defined Content Providers के माध्यम से Use कर सकते ह�।

उदाहरण के �लए हमारे Android Device का Contacts App, एक Content Provider का Best
Example है क्य��क हम हमारे �कसी भी SMS या Phone Dialer Android App म� इस Contact
App के माध्यम से Stored Contact List को Access कर सकते ह�।

32
Android in Hindi

इसी �कार से य�द हम हमारे Android App के Data को Store करने के �लए SQLite Database
Use करना चाहते ह�, तो SQLite Database को Access व Manipulate करने के �लए Android
Architecture के Content Providers को Use कर सकते ह�, जो �क हम� एक Developer के
�प म� �कसी भी �कार के Content को Access/Manipulate करने हेतु आसान Encapsulated
Access Provide करता है।

इस �कार से Content Providers वास्तव म� हम� हमारे Android Device म� Stored Data को
Android Applications के माध्यम से Share करने क� सु�वधा Provide करता है, जो �क Android
Architecture द्वारा Define �कया गया एक Standard Mechanism है, �जसम� Data Sharing
हेत ु Underlying Storage, Structure व उनके Implementation को Expose करना ज�री नह�
होता।

AndroidManifest.xml
�त् येक Android App म� AndroidManifest.xml नाम क� एक Configuration File भी होती है,
�जसम� Android App से सम्बं�धत सभी Activities को Define व Specify �कया गया होता है साथ
ही Main Activity अथवा Android App क� Launcher Activity को भी इसी
AndroidManifext.xml File म� Mark �कया जाता है। यानी इसी File म� इस बात को तय �कया जाता
है �क हमारे Android App क� �व�भन्न Activities म� से कौन सी Activity Screen पर सबसे पहले
Display होगी।

सामान्यत: हर नया Android Developer एक मुख्य गलती ये करता है �क वह जब भी अपने


Android App म� कोई नई Activity Add करता है, उसे AndroidManifext.xml File म� Specify
करना भूल जाता है और जब तक �कसी Activity को इस File म� Specify नह� �कया जाता, तब तक
हमारा Android App उसे नह� पहचानता। इस�लए जब भी कभी नया Activity Create कर�, सबसे
पहले उसे इस Manifest File म� Specify कर�।

Android App – The Architecture Extensions


उपरो�ानुसार �व�भ� Core Elements के अलावा कु छ और Elements भी होते ह�, जो Android
Application के Development व उपयोग म� अपना महत्वपूणर् Role Play करते ह�, जो �क �नम्नानुसार
ह�:

Storage
हम हमारे Application से सम्बं�धत ऐसे Elements जो �क Change नह� होते जैसे �क Icons,
Help Files आ�द को अपने Application क� Data Files के �प म� Package कर सकते ह�। साथ
ही �जस Device पर हमारा Android Application Run होना होता है, उस Device पर Database
या Files के �लए कु छ Extra Space भी Reserved कर सकते ह�। इस Reserved Space पर उस
Database या File को Store �कया जाता है, �जसम� वे Data होते ह�, �जन्ह� User स्वयं हमारे
Android Application को Use करते समय उसम� Input करता है अथवा य�द User SD Card के
�प म� Extra Storage Use करता है, तो उस Extra Storage म� Application से सम्बं�धत Data
Files को ज�रत के अनुसार Read व Write �कया जा सकता है।

33
Android in Hindi

Network
Android Devices सामान्यत: Internet Ready होते ह�। यानी इन Devices पर Use होने वाले
ज्यादातर Applications �कसी न �कसी तरह से Internet से Connected रहते �ए ही Operate व
Update होते ह�। इस�लए हम हमारे Android Application म� ज�रत के अनुसार Java Sockets
का �योग करते �ए अथवा WebKit-Based Web Browser Widget को Embed करते �ए अपने
Application म� Internet Feature को Use कर सकते ह�।

Multimedia
Android Devices सामान्यत: Multimedia Ready भी होते ह�। यानी ये Devices Audio/Video
को Record व Playback करने क� क्षमता से यु� होते ह�। हालां�क Different Devices म� इन
Multimedia Devices क� Capabilities व Qualities म� अन्तर हो सकता है, ले�कन हम हमारे
Application द्वारा इस बात का पता लगाने के �लए Device क� Query कर सकते ह� �क उसम�
Audio, Video, Camera आ�द से सम्बं�धत क्या-क्या Capabilities Exist ह�।

Location Services
Android Devices सामान्यत: Location Providers जैसे �क GPS व Cell Triangulation
जैसी Services को Access करने म� सक्षम होते ह�, �जसक� वजह से ये Device इस बात को
Identify कर सकते ह� �क वे पूरी ��नयां म� धरती के �कस �हस्से पर ह� और इस बात क� जानकारी को
हम हमारे Application म� उपयोग म� ले सकते ह�।

साथ ही हम Location Data का उपयोग अन्य तरीक� से करते �ए Location का Map भी Display
कर सकते ह�, �जसक� वजह से Devices के Movements को Track करते �ए उस �स्थ�त म�
Device क� Location का पता लगा सकते ह�, जब�क वह चोरी हो गया हो अथवा खो गया हो।

Phone Services
चूं�क Android Devices मूलत: Phone ही होते ह�, इस�लए हमारा Application इन Devices पर
New Phone Calls को Initiate कर सकता है, SMS Messages Send/Receive कर सकता है
और वो सबकु छ कर सकता है, जो एक Modern Telephone के साथ �कया जा सकता है।

हालां�क उपरोक्तानुसार Specified Android App Architecture को ठ�क से समझ कर हम आसानी


से एक Basic Android App Create कर सकते ह�, ले�कन एक High Quality के Android
Application को Develop करने के �लए हम� सम्पूणर् Android Architecture को ठ�क से समझना
ब�त ज�री है �जसम� ब�त सारे Elements होते ह� और हर Element �कसी �व�शष्ट �कार क� ज�रत
को पूरा करता है।

ले�कन सम्पूणर् Android Architecture अपने आप म� काफ� Technical व Theoretical है, इस�लए
इस Architecture के �व�भन्न Elements को �वस्तार से समझने से पहले हम एक Basic Android
App Create करना सीख�गे, ता�क जब हम Android Architecture के �व�भन्न Elements को
Discuss कर�, तो उन्ह� बेहतर तरीके से समझने के �लए छोटे -छोटे Android Apps Create करते �ए
Practical Approach Follow कर सक� क्य��क Practical Approach को Follow करने से ही App
Development का Confidence आता है।

यहां एक और बात समझना ज�री है �क Android App वास्तव म� Android Framework पर


आधा�रत है जो �क Windows क� तरह ही एक सम्पूणर् Operating System है और �जस तरह से
Windows Operating System के �लए Application Develop करने हेतु हम� Visual Studio जैसे

34
Android in Hindi

�कसी IDE को Use करना होता है, ता�क हमारा Development Speed Fast हो सके उसी तरह से
Android App Develop करने का काम भी हम �कसी IDE का �योग करते �ए ही कर�गे।

क्य�?

हालां�क हम चाह� तो �बना कोई IDE Use �कए �ए भी मा� Notepad जैसे Text Editor का �योग
करते �ए Android Application Develop कर सकते ह�, ले�कन जब हम इस �कार के Manual
Approach का �योग करते �ए अपना Application Create करते ह�, तब अपने Android App को
Compile, Run, Build, Debug, Test व Deploy करने से सम्बं�धत सारे काम हम� Command
Line Tools के माध्यम से Manually करने पड़ते ह�, �जससे हमारे App के Develop होने क� Speed
काफ� कम हो जाती है।

जब�क य�द हम अपने Android App को �कसी IDE का �योग करते �ए Develop करते ह�, तो उस
�स्थ�त म� अपने App को Compile, Run, Build, Debug, Test व Deploy करने से सम्बं�धत �व�भन्न
काम� को ये IDE स्वयं अपने स्तर पर Automatically कर दे ते ह�। प�रणामस्व�प हम हमारा पूरा ध्यान
अपने App को Develop करने पर लगा सकते ह�, �जससे हमारे App Development क� Speed
काफ� तेज हो जाती है।

एक और महत् वपूणर् बात ये है �क हम चाहे �जस �कसी भी Operating System के �लए Application
Develop कर�, हर Operating System का काम करने का अपना अलग तरीका होता है �ज सके माध्यम
से वह Underlying Hardware के साथ Interact करता है और Device के �व�भन्न Hardware को
Access व Manipulate करने के �लए �जन Functions क� ज�रत होती है, सामान्यत: उन्ह�
Assembly या C/C++ जैसी Hardware Level क� Programming Languages म� ही Define
�कया गया होता है।

ले�कन क्य��क इन Hardware Level क� Programming Languages म� Applications Develop


करना काफ� ज�टल काम होता है, इस�लए Operating System Provide करने वाली Companies
अपने Operating System के �लए Applications Develop करने हेतु एक High Level API भी
Provide करते ह� और APIs के साथ इन APIs को Use करते �ए Develop �कए जाने वाले
Application Software को आसानी से Develop, Compile, Debug, Test, Deploy आ�द करने
हेत ु कु छ Tools भी Provide करते ह�, �जन्ह� सामान्यत: SDK (Software Development Kit) के
नाम से जाना जाता है।

Windows Operating System के �लए Application Software Develop करने हेतु Microsoft
Company जो API Provide करता है, उसे Win32 API के नाम से जाना जाता है। Java
Programming Language का �योग करते �ए Application Software Develop करने हेतु
Oracle Company द्वारा हम� APIs के साथ Tools का जो Set �ाप्त होता है, उसे JDK के नाम से
जाना जाता है। ठ�क इसी तरह से Android Platform के �लए Apps Develop करने हेतु Google भी
हम� APIs के साथ कु छ Tools Provide करता है, �जन्ह� Android SDK के नाम से जाना जाता है।

Operating System के �लए Applications को आसानी से Develop �कया जा सके , इस�लए


Microsoft हम� Visual Studio के �प म� IDE Provide करता है। इसी तरह से Oracle, Java
आधा�रत Application Development के �लए NetBeans नाम का IDE Provide करता है। ठ�क
इसी तरह से Android आधा�रत Apps Develop करने के �लए Google हम� Android Studio नाम
का IDE Provide करता है।

35
Android in Hindi

ले�कन सामान्यत: Android Apps Development का काम भी Windows/Linux Operating


System पर आधा�रत Desktop Computers पर �कया जाता है, जो �क Android APIs से पूरी तरह
से अनजान होते ह�। इस�लए Android Apps Develop करने हेतु हम� इन Desktop Computers पर
पूरा Android Application Development Environment Setup करना पडता है और इस
Environment को Setup करने से सम्बं�धत सभी ज�री Tools, Google द्वारा Provide �कया जाता
है।

Android Applications को Windows/Linux आधा�रत Computer System पर Develop करने


हेत ु पूरा Environment Setup करने के बाद Windows/Linux Computer System पर न के वल
Android API Setup होता है, ब�ल्क एक Android Emulator भी Setup होता है, �जस पर हम हमारे
Develop �कए जा रहे Android Application को Live Simulate करते �ए उसक� Working को
Test व Debug कर सकते ह� और सम्पूणर् Android App Development Environment को Setup
व Configure करने से सम्बं�धत �वस्तृत वणर्न Next Chapter म� �कया गया है।

36
Android in Hindi

Development
Environment

37
Android in Hindi

Android – Development Environment


एक Android Application व Device के Basic Architecture के बारे म� जानने के बाद जब हम आगे
बढते ह�, तो सबसे पहले हम� Android Application को Develop करने से सम्बं�धत Environment
को Setup करना होता है, क्य��क �बना ये Environment Setup �कए �ए, Android Application को
सु�वधाजनक तरीके से Develop नह� �कया जा सकता। तो च�लए, Android Application
Development से सम्बं�धत सम्पूणर् Setup को Step-by-Step �वस्तार से समझने क� को�शश करते
ह�।

Setup Java SDK


जैसा�क हमने �पछले Chapter म� भी कहा �क Android Applications वास्तव म� Java
Applications ही होते ह�, �जन्ह� Java Programming Language आधा�रत Source Codes के
माध्यम से Define �कया जाता है और �फर Android Platform आधा�रत Compiler के माध्यम से
Dalvik Bytecode के �प म� Compile करके एक .apk File क� तरह Android Package Create
कर �लया जाता है, जो �क Android Platform पर Run होने वाला Executable होता है।

इस�लए Android Application Develop करते समय सबसे पहले Step के �प म� हम� हमारे
Computer System पर Java SDK को Install व Setup करना होता है, ता�क हम हमारे Android
Application के �लए Java Classes Create कर सक� , �जन्ह� Android Platform द्वारा .apk
Package File के �प म� Dalvik Bytecode म� Compile करने के �लए Use �कया जा सके ।

चूं�क Java SDK, Oracle Company द्वारा Free Provide �कया जाता है। इस�लए सबसे पहले
Oracle क� Website से Java SE Development Kit (JDK) के Latest Version को
Download करके अपने Computer System पर Install करना होता है।

यहां ये बात ध्यान रखना ज�री है �क हम� पूरा Java SDK Install करना होता है के वल JRE नह�,
क्य��क Android Application, Java Compiler (javac) व Core Classes का �योग करते �ए
ही Android Applications को Dalvik Bytecode म� Compile करता है।

अपने Computer पर Installed Operating System (Windows, Linux, MacOS, etc…) व


Operating System के Architecture (32-Bit, 64-Bit, etc…) के आधार पर Appropriate Java
Version को Download करने के बाद उसे Install करना होता है, �जसे Install करने से सम्बं�धत
Detailed Information को इसी Oracle क� Website से �ाप्त �कया जा सकता है।

चूं�क, Android Application पूरी तरह से Java Source Codes पर आधा�रत होते ह�, इस�लए
Android Application तभी Develop �कया जा सकता है, जब�क आपको Java Programming का
अच्छा ज्ञान हो। इस�लए य�द आपको Java Programming का ठ�क-ठ�क ज्ञान न हो, तो बेहतर यही
होगा �क आप पहले Java क� Basic Programming सीख� �जसम� हमारी अन्य पुस्तक “Java in
Hindi” आपक� काफ� मदद कर सकती है।

हालां�क आपको कम से कम �नम्न Java Concepts का Basic ज्ञान होना ज�री होता है, तभी आप
एक Android Application Develop कर सकते ह�:

38
Android in Hindi

• Language fundamentals (flow control, etc.)


• Classes and objects
• Methods and data members
• Public, private, and protected
• Static and instance scope
• Exceptions
• Threads and concurrency control
• Collections
• Generics
• File I/O
• Reflection
• Interfaces

Downloading and Installing Android SDK Tools


Java SDK को Install करने के बाद हम� Android SDK को Install करना होता है, जो �क हम� हमारे
Android Application को अपने Local Computer पर Develop, Design, Test व Debug करने
से सम्बं�धत सभी ज�री Functionalities Provide करता है।

Android SDK का Installation वास्तव म� दो �हस्स� म� Divide होता है, जहां पहले �हस्से के अन्तगर्त
हम� Android Platform के Base Tools को Install करना होता है और �सरे �हस्से के अन्तगर्त
Android Platform से सम्बं�धत अन्य Add-On को।

सबसे पहले हम� http://developer.android.com/sdk/index.html से �नम्न �च�ानुसार “SDK Tools


Only” Section से अपने Computer System पर Installed Operating System के अनुसार
Appropriate “SDK Tools” को Download करना होता है:

39
Android in Hindi

चूं�क हमारे Computer System पर Windows Operating System Installed है, इस�लए हमने
उपरो� �च�ानुसार Windows Operating System के �लए Recommend Executable File को
Download �कया है। हालां�क हम इसी Webpage पर �दखाई दे ने वाले “Android Studio Bundle
Package” को भी Download कर सकते ह�, जो �क वास्तव म� Google Provided IDE के साथ सभी
ज�री SDK Tools यु� पूणर् Package होता है और इस IDE का �योग करते �ए अपना Android
Development कर सकते ह�।

ले�कन SDK Tools को Manually Install and Setup करने के बारे म� जानना हमारे �लए काफ�
उपयोगी सा�बत होता है, क्य��क इस Manual तरीके से Android SDK को Setup करके हम �कसी भी
IDE या Text Editor को Android Development के �लए स्वतं� �प से Use करने के बारे म� बेहतर
तरीके से समझ लेत े ह� व अपने Application को Different IDEs व Text Editors का �योग करते �ए
Develop, Compile, Test व Debug करने क� क्षमता �ाप्त करते ह�, जो �क हम� �कसी Specific
IDE या Editor से Bound नह� करता।

साथ ही Manual Configuration व Installation सीख लेने के बाद हम बडी ही आसानी से �कसी भी
IDE को आसानी से उपयोग म� लेत े �ए Android Development कर सकते ह�। ले�कन य�द हम सीधे ही
�कसी IDE के माध्यम से Development शु� करते ह�, तो कई बार हम� IDE Configuration व Setup
के दौरान ब�त सारी परेशा�नय� का सामना करना पडता है, क्य��क हम� पता ही नह� होता �क IDE
Internally �कस �कार से Android SDK, Java SDK, Text Editor आ�द को Combined �प म�
�प करते �ए Application Development के �लए उपयु� Environment Create करता है।

40
Android in Hindi

चूं�क हम Android SDK को Windows Operating System के �लए Manually Install करना
चाहते ह�, इस�लए जैसे ही हम Windows के �लए Download �कए गए Android Installer को
Execute करते ह�, हमारे सामने �नम्न �च�ानुसार Dialog Box Display होता है:

इस Dialog Box पर �दखाई दे ने वाले “Next >” Button को Click करना होता है, �ज सके
प�रणामस्व�प �नम्नानुसार अगला Wizard Screen Display होता है, जो �क हमारे Computer
System पर Installed Java Interpreter के Path को Retrieve करता है:

41
Android in Hindi

य�द हमने पहले से ही Java SDK को Install न �कया हो, तो Android SDK Tools Setup
Wizard का इसी Screen पर अन्त हो जाता है, क्य��क Android SDK Tools का Installation करने
से पहले Computer System पर Java SDK का Install होना ज�री होता है।

अब हम� इस Wizard Screen पर �दखाई दे ने वाले “Next >” Button को �फर से Click करना होता है,
�ज सके प�रणामस्व�प �नम्नानुसार अगला Wizard Screen Display होता है:

इस Screen पर Appropriate Radio Button को Select करके �फर से “Next >” Button को
Click करना होता है, �ज सके प�रणामस्व�प �नम्नानुसार अगला Wizard Screen Display होता है:

42
Android in Hindi

इस Screen पर हम� “Browse…” Button को Click करके वह “Destination Folder” Specify


करना होता है, जहां हम हमारे Android SDK Tools को Install करना चाहते ह�।

Destination Folder को Specify करने के बाद हम� �फर से “Next >” Button को Click करना होता
है, �ज सके प�रणामस्व�प �नम्नानुसार अगला Wizard Screen Display होता है:

जहां हम� Finally “Install” Button को Click करना होता है, �ज सके प�रणामस्व�प �नम्न �च�ानुसार
Android SDK Tools का Installation होने लगता है:

43
Android in Hindi

Android SDK Tools का Installation पूरी तरह से Complete होने के बाद हम� �फर से “Next >”
Button को Click करना होता है, �ज सके प�रणामस्व�प �नम्नानुसार अगला Wizard Screen
Display होता है:

इस Screen से हमारे Android SDK Installation का �सरा Part शु� होता है। यानी इस Wizard
Screen पर �दखाई दे ने वाले Checkbox “Start SDK Manager (to download system images,
etc.)” को Checked रखते �ए “Finish” Button पर Click करने पर Android SDK Tools का

44
Android in Hindi

SDK Manager Program Execute होता है, जो �क हमारे Android Development के �लए ज�री
अन्य Add-Ons, Packages, Images आ�द को Download करने के �लए उपयोगी होता है।

हालां�क य�द हम चाह� तो इस Screen पर �दखाई दे ने वाले Checkbox को Uncheck करते �ए भी


“Finish” Button पर Click करके Android SDK Tools Setup Wizard का अन्त कर सकते ह�।
क्य��क SDK Manager को हम �नम्न �च�ानुसार Android Installation के Destination Folder से
भी Execute कर सकते ह�:

जैसे ही Android SDK Manager Program Execute होता है, �नम्न �च�ानुसार Android
Development के �लए ज�री सभी Core Packages को Automatically Select कर लेता है:

45
Android in Hindi

यानी ये Manager उन Minimum Packages को Automatically Select कर लेता है, �जन्ह� Install
�कए �बना Simplest Android Application भी Develop नह� �कया जा सकता।

य�द हम उपरो� �च� म� ही दे ख�, तो कु ल 17 Packages Automatically Select �ए ह�, �जन्ह�


Compulsory �प से Download करके Install करना ज�री है और इन 17 Packages के Install
�ए �बना Simple से Simple Android Application भी Develop नह� �कया जा सकता।

इस�लए इन Minimum Android Packages को Install करने के �लए हम� इस Android SDK
Manager Window पर �दखाई दे ने वाले “Install 17 packages…” Button को Click करना होता
है, �ज सके प�रणामस्व�प �नम्न �च�ानुसार अगला Screen Display होता है:

46
Android in Hindi

इस Dialog Box पर हम� “Accept License” Radio Button को Select करके “Install” Button
को Click करते �ए अपने सभी Selected Packages को Download करके Install कर सकते ह�।

हम� हम�शा Latest Android SDK Tools, Android SDK Platform-Tools व Android SDK
Build-Tools को ही Download करना चा�हए, हालां�क हम �कसी भी Version के API को
Download कर सकते ह�, �जससे Supported Android Platform के �लए हम हमारा Application
Develop करना चाहते ह�।

उदाहरण के �लए य�द हम API 8 Download करते ह�, तो हम Android 2.2 तक के Device के �लए
अपना Application Develop कर सकते ह�। जब�क य�द हम API 15 Download करते ह�, तो हमारा
Android Application Run होने के �लए कम से कम वह Device Use करना पडेगा, �जस पर
Android 4.0 Installed हो।

Path Configuration for Command Prompt


एक बार Android SDK Tools Install करने के बाद हम� “Android SDK Tools” Directory म�
Exist “tools”, “platform” व “platform-tools” Folders को भी Path Variable म� Add होना
ज�री होता है, ता�क Operating System इन Folders म� Exist Tools व Commands को �कसी
भी Location से Directly Access कर सके ।

इन तीन� Folders को Path Environment Variable म� Set करने के �लए सबसे पहले हम�
Command Window को "Administrator" Mode म� Open करना होता है। यानी Command
Window के Icon पर Right Click करना होता है �ज सके प�रणामस्व�प �नम्न �च�ानुसार एक Popup
Menu Display होता है:

47
Android in Hindi

और इस Popup Menu म� �दखाई दे ने वाले "Run as administer" Option को Click करना होता,
�ज सके प�रणामस्व�प �नम्न �च�ानुसार एक Command Prompt Window Open होता है:

इस Command Prompt म� हम� �नम्नानुसार SETX Command Execute करने होते ह�:

SETX /M PATH "%PATH%;C:\Android\tools;C:\Android\platforms;C:\Android\platform-


tools"

जैसे:

जैसे ही हम इन Commands को Execute करते ह�, हमारे Computer System के "Path" नाम के
Global Environment Variable म� "tools", "platforms" व "platform-tools" नाम के तीन�
Folders Set हो जाते ह�, �जनम� Exist �कसी भी Command Line Tools को अब �कसी भी Drive
से और �कसी भी Directory से Directly Execute �कया जा सकता है।

इस बात का पता लगाने के �लए �क ये तीन� Folders Global Path Environment Variable म� Set
�ए या नह�, हम� एक नया Command Prompt Window Open करना होता है क्य��क Current
Command Prompt Window म� �कया गया Change हम� इसी Window म� Reflect नह� होता।

इस�लए जब हम नया Command Prompt Window Open करके उसम� Current Path को Echo
करते ह�, तो हम� �ाप्त होने वाला Output �नम्नानुसार होता है:

48
Android in Hindi

हम दे ख सकते ह� �क उपरो� �च� क� अ�न्तम दो Highlighted Lines म� वही Path �दखाई दे रहा है,
�जसे हमने �पछले Command Window द्वारा SETX Command के माध्यम से Add �कया था।

हमारे Android से सम्बं�धत Tools, Path Variable म� Set �ए या नह� इस बात का पता लगाने का
एक तरीका और है �ज सके अन्त गर्त य�द हम Command Prompt Open कर� और उसम� “adb
devices” Command Enter कर�, तो हम� �नम्नानुसार Output �ाप्त होता है:

जो इसी बात का Indication है �क Currently हमारे Computer System से कोई भी Actual


Android Device या Android Emulator Attached है, �जस पर Develop �कए जाने वाले
Android Application को Test �कया जा सके ।

यानी हमारा Android-Tools पूरी तरह से Path Environment Variable म� Set है, इसी वजह से हम
Android SDK के "tools" Directory म� Exist adb.exe File को उपरो� �च� म� दशार्ए अनुसार
Connected Devices क� List �ाप्त करने हेतु Execute कर पा रहे ह�।

हालां�क य�द हम चाह� तो अपने "Path" नाम के Environment Variable को GUI तरीके से भी Set
कर सकते ह�, �ज सके अन्त गर्त हम� "My Computer" पर Right Click करना होता है और Display
होने वाले Popup Menu से "Properties" Option को Select करना होता है। प�रणामस्व�प �नम्न
�च�ानुसार System Window Display होता है:

49
Android in Hindi

इस System Window म� उपरो� �च� म� दशार्ए अनुसार "Advanced system settings"


Option को Click करने पर �नम्न �च�ानुसार एक "System Properties" Dialog Box Display
होता है:

इस "System Properties" Dialog Box म� �दखाई दे ने वाले "Environment Variables…"


Button को Click करते ही हमारे सामने �नम्न �च�ानुसार "Environment Variables…" नाम का
Dialog Box Display होता है:

50
Android in Hindi

इस Dialog Box के "System variables" List Box म� उपरो� �च� म� दशार्ए अनुसार "Path"
Option को Select करके "Edit…" Button को Click करते ही हमारे सामने �नम्न �च�ानुसार "Edit
System Variable" नाम का Dialog Box Display होता है:

बस इसी Dialog Box के "Variable value:" Textbox म� �दखाई दे ने वाली String के अन्त म� एक
Semicolon लगाकर हम� हमारे उस Folder का Path Specify करना होता है �जसे हम Configure
करना चाहते ह�, क्य��क �त्येक नए Path को हम�शा एक Semicolon से ही Separated रखा जाता है।

Creating New Android Project with Command Line Tools


जब एक बार SDK Tools को Install कर �लया जाता है तथा उसके "tools", "platforms" व
"platform-tools" Directories को उपरो�ानुसार SETX Command का �योग करते �ए Path
नाम के Environment Variable म� Set कर �लया जाता है, उसके बाद हम Android SDK के �व�भ�
Android Tools का �योग करते �ए अपना नया Android Project, Command Prompt के माध्यम
से भी Create कर सकते ह�।

51
How to Get Complete PDF EBook
आप Online Order करके Online या Offline Payment करते हुए इस Complete EBook को तुरन्त
Download कर सकते हैं ।

Order करने और पु स् तक को Online/Offline Payment करते हुए खरीदने की पू री प्रक्रिया की क्रिस् तृत नानकारी प्रा‍त
करने के क्रिए आप BccFalna.com के क्रनम्न Menu Options को Check Visit कर सकते हैं ।

How to Make Order


How to Order?

How to Buy Online


How to Pay Online using PayUMoney

How to Pay Online using Instamojo

How to Pay Online using CCAvenue

How to Buy Offline


How to Pay Offline

Bank A/c Details

नक्र‍क हरारे Old Buyers के Reviews भी दे ख सकते हैं ताक्रक आप इस ‍ात का क्रनर्ण य िे सकें क्रक हरारे Buyers हरारे
PDF EBooks से क्रकतने Satisfied हैं और यक्रद आप एक से अक्रिक EBooks खरीदते हैं , तो Extra Discount की
Details भी Menubar से प्रा‍त कर सकते हैं ।

You might also like