Archived

This topic is now archived and is closed to further replies.

ஈசன்

அன்ட்ரொய்ட் மென்பொருள் எழுதுவோமா ?

Recommended Posts

அன்ட்ரொய்ட் மென்பொருள் எழுதுவோமா ?
 
அன்ட்ரொய்ட் மென்பொருள் எழுத வேண்டிய‌ தேவை ஒன்று ஏற்பட்டுள்ளது. இன்னும் ஒருக்காலும் இந்த இயங்கு தளத்தில் எழுதியதே இல்லை. லைனெக்ஸ் இயங்கு தளத்திற்கு எழுதியிருக்கிறேன். இந்த இயங்கு தளம் லைனெக்ஸ் அடிப்படையில் எழுதப்பட்டது என்றபடியால் கற்றுக் கொள்ள முடியும் என நினைக்கிறேன்.
 
மெல்ல மெல்ல நேரம் கிடைக்கும் போது கற்பவற்றை இங்கு பகிர்ந்து கொள்கிறேன். எனக்கும் மீள்பயிற்சி போல் இருக்கும். ஆர்வமுள்ளவர்கள் பகிரலாம்.. கலந்தாலோசிக்கலாம்... அறிவுரை சொல்லலாம்.
 
கீழ்வரும் ஒழுங்கில் பதிவுகள் போகும்..
 
 
 
1. அன்ட்ரொய்ட் கட்டமைப்பு   ( Architecture )
2. அன்ட்ரொய்ட் மென்பொருள் கட்டமைப்பு   ( Android App Architecture)
3பாவனையாளர் திரை வடிவமைப்பு    (User Interface Design)
 
 
 
 
 
 
Reason For Edit: Ongoing Edition
 

Share this post


Link to post
Share on other sites

எனக்கும் இதில் சிறிதளவு ஆர்வம் உள்ளது.. ஆவலுடன் எதிர்பார்க்கிறேன்.. :D

Share this post


Link to post
Share on other sites
முதலில் புள்ளிவிபரங்கள்..
 
  • ஒரு நாளைக்கு சராசரியாக 10 லட்சம் அன்ட்ரொய்ட் கருவிகள் சந்தைக்கு வருகின்றன.
  • ஒருமாதத்தில் 150 கோடி அன்ட்ரொய்ட் அப்ஸ் தரவிறக்கம் செய்யப்படுகின்றன.
  • அன்ட்ரொய்ட் உரிமையாளர் மென்பொருள் அசுரன் கூகுளே. 
 
கூகுள் இன்னும் மாபெரும் அசுரனாகி இன்னும் பல்லாண்டு நிலைக்கப் போவதால்  அன்ட்ரொய்ட் புரொகிறாமிங்கில் நாம் எம் பொன்னான நேரத்தை செலவளித்து நம்பிக்கையோடு களமிறங்கலாம்.
 
 
 
இனி..
 
 
அன்ட்ரொய்ட் கட்டமைப்பு ( Architecture )
 
 
வின்ட்டோசில் மென்பொருள் எழுதிப் பழகிய‌ர்களுக்கு கொஞ்சம் வித்தியாசமாக இருக்கும்.
 
மூன்று படைகளாக ஒழுங்கு படுத்தப்பட்டிருக்கும். ( 3 Layers)
 
ஆக அடியில் இருக்கும் படை லைனெக்ஸ் இயங்கு தளத்தின் உள்ளுடல். (Kernal  - கேர்னல். லெப். கேர்னல் அல்ல!) இவரின் வேலை எந்தக் கருவியில் இது வேலை செய்கிறதோ அந்தக் கருவியின் வன்பொருள் - ஹார்ட்வெயாரோடு கதைத்து ஆக வேண்டிய வேலையைப் பார்ப்பது. லைனெக்ஸ் பல்லாண்டுகள் வாழ்ந்த / வாழும் ஒரு இயங்கு தளம். களம் பல கண்ட ஜாம்பவான். அன்ட்ரொய்ட் உருவாக்கும் போது இந்த லைனெக்ஸ் ஜாம்பவானின் பெறுமதியான ஐடங்களை கூகுள் "உருவி" எடுத்துள்ளார்கள். 
 
இவருக்கு மேலே அடுத்ததாக உள்ள படை அன்ட்ரொய்ட்டின் லைபிறரிகளாகும் ( Libraries ). இவர்களின் வேலை தங்களுக்குக் கீழே உள்ள லைனெக்ஸ் கர்னலை ஏய்ப்பதாகும். இவர்கள் ஒவ்வொருவரும் ஒவ்வொரு ஸ்பெஷல் படைப்பிரிவைச் சேர்ந்தவர்கள். உதாரணமாக ஒருவர் முப்பரிமான படங்களைக் காட்டுவதில் ஸ்பெஷலிஸ்ட். அதற்கு என்னென்ன வேலையாக வேண்டுமோ அதற்கேற்ற வகையில் லைனெக்ஸ் கர்னலை ஏய்ப்பார்.
 
இந்தப்படைக்கு மேலே உள்ள படையைச் சேர்ந்த‌வர்கள் தாம் நாம் எழுதும் அப்ஸை தாளாட்டி சீராட்டி ஏந்திப்பிடிப்பவர்கள். அப்ஸுக்கு தேவையானதைத் தருவார்கள். அப்ஸ் கொடுப்பதை வாங்கிக் கொள்வார்கள். இவர்களை நாம் அப்ஸ் கட்டமைப்புப் படை (Application Frame Work ) என்று சொல்லுவோம்.
 
 
 
.
 

Share this post


Link to post
Share on other sites

நல்ல முயற்சி, தொடருங்கள்  ஈசன்; பலருக்கு உபயோகமாக இருக்கும்

 

 

Share this post


Link to post
Share on other sites
அன்ட்ரொய்ட் இயங்குதளத்தின் படைகளை மேலோட்டமாகப் பார்த்தோம்.
 
இனி இவற்றைப் பற்றி கொஞ்சம் விரிவாகப் பார்ப்போம். குறிப்பாக ஆக மேலே உள்ள அன்ட்ரொய்ட் அப்ஸ் கட்டமைப்புப் படை ( Application Frame Work இதை இனிமேல் AF என்று அழைப்போம்). நாம் எழுதும் அப்ஸ் "டீல்" பண்ணப் போவது பெரும்பாலும் இந்தப்பகுதியோடு தான் என்பதால் இது ஒரு முக்கியமான படை.
 
அதற்கு முன்பாக நடுவில் இருக்கும் படையான லைபிறரி பகுதி பற்றி மேலும் ஒரு சிறு குறிப்பு.
 
இங்கேயே அன்ட்ரொயிட்ன்  "இயங்கு தளம்" என்று சொல்லப்படுகின்ற (Run Time - "RT" )காணப்படுகின்றது. இந்த ‍‍RT இல் தான் நாம் ஜாவாவில் எழுதும் அப்ஸ் கால் பதித்து ஓடப் போகின்றது. ஒங்கு "கால் பதிப்பது" என்பது முக்கியமானது. எங்கள் AF படை நம் அப்ஸோடு பல வழிகளில் டீல் பண்ணினாலும் கால் பதிக்க இடம் கொடுக்கப் போவது இந்த Run Time தான். பொதுவாக ஜாவா அப்ஸ்கள் ஓடும் இந்த இடத்தை Java Virtual MachineJVM ) என்பார்கள். ஆனால் அன்ட்ரோய்ட்டில் ஸ்பெஷலாக "டெல்விக் Virtual Machine" என்பார்கள்.
 
கடைசியாக மீண்டும் ஒருமுறை அன்ட்ரொய்ட் கட்டமைப்பை பார்ப்போம்.
 
ஆக அடியில் கருவியின் ஹார்ட்வெயார் (Mother Board).
அதன் மேல் லைனெக்ஸ் கேணல்.
அதன் மேல் ஜாவா இயங்குதளத்தைக் கொண்ட லைபிறரிகள்.
அதன் மேல் பலவகையான செயற்பாடுகளைக் கொண்ட AF படை.
ஆக மேல்  நம் அப்ஸ்!!
 
இனி இந்தப்படைகளைக் காட்டும் ஒரு படம்.
 
 
 
system-architecture.jpg

Share this post


Link to post
Share on other sites

கொஞ்சம் விளங்கினமாதிரி இருக்கு.. தொடருங்கள் ஈசன்.. :D

Share this post


Link to post
Share on other sites

ஆங்கிலத்தில் எழுதுவதை விட தமிழில் இப்படியான கட்டுரைகள எழுதுவது கடினம். ஆனால், ஈசன் இதனை தெளிவாக எழுதுகின்றீர்கள். என்னால் எவ்வளவு முயன்றாலும் இப்படியான தொழில்நுட்ப விடயங்களை தமிழில் எழுத முடியாது.

 

Android மென்பொருட்களை Windows இயங்குதளத்தில் நிறுவ விரும்புகின்றவர்கள்  Android SDK (SDK- Software Development Kit) இனை இங்கு  இலவசமாகத் தரவிறக்கம் செய்ய முடியும். இதனை நிறுவ உங்கள் Windows கணணியில் Java இருக்க வேண்டும். Java வினை இங்கு இலவசமாகப் பெறலாம்.

 

 

 

 

Share this post


Link to post
Share on other sites
சரி ஏன் இப்படி ஒரு இயங்குதள வடிவமைப்பை ( Architecture Design ) கூகுள் தெரிவு செய்தது ? நேரடியாகவே C/C++ மூலம் லைனெக்ஸ் இயங்கு தளத்திற்கு மென்பொருள் எழுதியிருக்கலாமே ? எதற்கு ஜாவா ? 
 
இதற்கு விடையளிப்பதற்கு முன் அப்பிளின் ஐபோன் / ஐபாட்டிற்கான இயங்கு தளமான ஐ.ஒ.எஸ்ஸும் யுனிக்ஸ்ஸிலிருந்து ( லைனெக்ஸ் சகபாடி ) உருவப்பட்டு மீள் வடிவமைக்கப்பட்டவை என்பதையும் சொல்லவேண்டும். ஆனால் அங்கே ஜாவா இல்லை.
 
அப்படியானால் அன்ட்ரொய்ட் எதற்கு மேலதிகமாக ஒரு ஜாவா இயங்குதளப் படையை ஏற்றியுள்ளது ?
 
இங்கேதான் அன்ட்ரொய்ட்டின் இன்னுமொரு அனுகூலம் வெளிப்படுகின்றது. 
 
ஜாவா படையை இடையில் சொருகியதன் மூலம் அன்ட்ரொய்ட் இயங்கு தளம் தனியே கூகுளினால் உற்பத்தி செய்யப்படும் ஹார்ட்வெயாரில் மாத்திரம் அல்லாது சாம்சங், ஏசுஸ், நொக்கியா, ஜிகபைட் இப்படிப் பல ஹார்ட்வெயார்களிலும் ஓடும் வல்லமையை தருகின்றது. ஜாவா இயங்குதளம் தனக்குக் கீழே இருக்கின்ற ஹார்ட்வெயாருக்கு ஏற்ப நடந்து கொள்ளும் தன்மை கொண்டதாகையால் அப்ஸை எழுதுபவர் தான் எழுதும் அப்ஸ் சாம்சங்கில் ஓடப்போகிறதா இல்லை நொக்கியாவில் ஓடப்போகின்றதா என்று மூளையைக் கசக்கத்தேவையில்லை. 
 
ஆனால் அப்பிளிற்கு அப்ஸ் எழுதினால் அது அப்பிளில் மாத்திரம் ஓடும்.
 
ஆகவே கூகுளின் அன்ட்ரொய்ட் இயங்குதள வடிவமைப்பு நன்கு திட்டமிடப்பட்டது என்பதும், விரிந்த சந்தையை நோகியது என்பதும் தெரிகின்றது.     

Share this post


Link to post
Share on other sites

ஒரு இடம் புரிய வில்லை. எனக்கு இதில் அப்பிள் சம்பந்தமான விளக்கம் விளங்க வில்லை.  அடிமட்டத்தில் Linux Kernel தான் படத்தில் காட்டப்படுகிறது. அப்படியாயின் Linux இல்லையா உபகரணத்துடன் தொடர்பில் இருக்கும்.    மேலும் அப்பிள் Unix அடிப்படை வைத்திருக்கிறதென்கிறீர்கள்.  இதுவும் அப்பில் மென்பொருள்கள் அன்றோயிட் உபகரணங்களுக்கு பொருந்தாமல் போக வைக்காதா?

Share this post


Link to post
Share on other sites

இதை தெரிந்தவர்கள் ஒரு அருஞ்சொற் கோவையை (தமிழ்-ஆங்கிலம்) தயாரித்து போட்டால் உதவியாக இருக்கும். 

Share this post


Link to post
Share on other sites
இப்படி யோசிக்கலாம் மல்லை..
 
அடியில் உள்ள ஹார்ட்வெயார் மாறும் போது லைனெக்ஸ் கேணலும் மாறுகின்றது. ஹார்ட்வெயாருக்கு ஏற்ப.
 
அந்த லைனெக்ஸ் மாற்றத்திற்கேற்ப ஜாவா  RT  இன் அடிப்பகுதி மாறுகின்றது. ஆனால் ஜாவா  RT  இன் மேற்பரப்பு மாறுவதில்லை. எங்கள் அப்ஸ் இந்த மேற்பரப்பிலேயெ கால் வைப்பதால் அதற்கு கீழ் படைகளில் உள்ள மாற்றங்கள் தெரியாது.
 
ஒரு டப்ளட் உற்பத்தியாளர் அன்ட்ரொய்ட் இயங்கு தளத்தை அதில் போட்டுத்தான் விற்பார். அப்படிப் போடும் போது தன் ஹார்ட்வெயாருக்கு ஏற்ற அன்ட்ரொய்ட் தான் போடுவார். ஆனால் அதன் ஜாவா  RT  இன் மேற்பரப்பு ஏனைய ஹார்ட்வெயார் உற்பத்தியாளர்களின் ஜாவா மேற்பரப்பு போலவே இருக்கும். 
 
ஆகவே எல்லா அன்ட்ரொய்ட் இயங்கு தளங்களிலும் எழுதும் அப்ஸ் ஓடும். ( Theoretically )
 
 
ஜாவா RT தனக்குக் கீழே உள்ள சிக்கல்களை மறைத்து எல்லாருக்கு ஒரே முகத்தையே காட்டும். லைனெக்ஸ் கேணலால் இதைச் செய்ய முடியாது.   :)

 

 
 
.

Share this post


Link to post
Share on other sites

விளங்குகிறது என்று நினைக்கிறேன். 

 

 

5. அப்பிலிக்கேசன் -இது நாம் எழுதப் போகிறோம்.

4. AF கட்டமைப்பு படை - இதை எப்படி பெறுவது?

3. JAVA RT இயங்குதளம் -இதை  எப்படி பெறுவது?

2. JAVA Libraries - இது உபகரணத்துடன் வருமா?

1. அன்ரொயிட்- உபகரணத்துடன் வரும்

 டபலெட் தாய்ப்பலகை

 

இீது சரியா? இந்த மாதிரியா மென்பொருள் படைகளின் அடுக்கு இருக்கும்?

 

(உடனே பதில் அளிக்கத்தேவை இல்லை.)

 

Share this post


Link to post
Share on other sites

 

5. அப்பிலிக்கேசன் -இது நாம் எழுதப் போகிறோம்.

4. AF கட்டமைப்பு படை - இதை எப்படி பெறுவது?

3. JAVA RT இயங்குதளம் -இதை  எப்படி பெறுவது?

2. JAVA Libraries - இது உபகரணத்துடன் வருமா?

1. அன்ரொயிட்- உபகரணத்துடன் வரும்

 டபலெட் தாய்ப்பலகை

 

இீது சரியா? இந்த மாதிரியா மென்பொருள் படைகளின் அடுக்கு இருக்கும்?

 

 

 

இங்கு லைபிறரிகள் ஜாவாவினது அல்ல. மற்றப்படி நீங்கள் சொல்கின்ற 1 - 4 வரையானவை எல்லாம் நீங்கள் வாங்கும் அன்ட்ரொய்ட் கருவியில் உள்ள அன்ட்ரொய்ட் இயங்கு தளத்தோடே சேர்ந்து வரும். இவையனைத்தையும் சேர்த்துத் தான் அன்ட்ரொய்ட் இயங்குதளம்.

Share this post


Link to post
Share on other sites
இனி அன்ட்ரொய்ட் AF படையப் பற்றிப் பார்ப்போம்.
 
இதில் உள்ள முக்கியமான ஆட்களின் தொழிலை முதலில் மேலோட்டமாகப் பார்ப்போம்.
 
1. Activity Manager
 
இவரின் தொழில் அன்ட்ரொய்ட்டில் ஓடும் அப்ஸ் களின் வாழ்க்கையை "மனேஜ்" பண்ணுவதாகும். அன்ட்ரொய்ட் மைக்குரோசொஃப்ட் வின்டோஸிலிருந்து பலவிதத்தில் வேறுபட்டது. ஒரு அன்ட்ரொய்ட் அப்ஸ் அதன் வாழ்வில் பின்வரும் நிலைகளில் காணப்படலாம். 
 
1. ஓடும் நிலை ( Running )
2. தற்காலிகமாக நிறுத்தப்பட்ட நிலை ( Paused )
3. நிறுத்தப்பட்ட நிலை ( Stopped )
4. அழிக்கப்பட்ட நிலை ( Destroyed )
 
கருவியின் வளங்கள் ( Memory, CPU) என்ன நிலையில் இருக்கின்றன, அப்ஸ் பாவிக்கப்படாமல் பின்ணனிக்குத் தள்ளப்பட்டுள்ளதா போன்றவற்றை ஆராய்ந்து பார்த்து அப்ஸை மேற்சொன்ன நான்கு நிலைகளில் பொருத்தமான நிலைக்கு Activity Manager  தள்ளும். வின்டோஸில் நாம் எழுதும் அப்ஸ்கள் இப்படி மரியாதை இல்லாமல் நடாத்தப்படுவதில்லை. ஆனால் அன்ட்ரொய்ட் சிறிய கருவிகளிற்கு என்று எழுதப்பட்டதால் கருவியின் வளங்கள் கவனாமாகக் கண்காணிக்கப்பட வேண்டும். ஆகவே இப்படி ஒரு கண்கானி அவசியம்.
 
அப்ஸின் ஒவ்வொரு திரையும் (வின்டோவும்) ஒரு தொழிலைச் செய்யும். இதையே அக்ரிவிரி ( Activity ) என்போம். ஒரு அப்ஸில் ஒன்றுக்கு மேற்பட்ட அக்ரிவிரிகள் இருக்கலாம். உண்மையில் நம் அக்ரிவிரி முகாமையாளர் ( Activity Manager ) இந்த அக்ரிவிரிகளின் வாழ்க்கை வட்டத்தைத்தான் ஆளுகின்றார்.
 
நாம் அப்ஸ் ஒன்றை உருவாக்கும் போது ஆககுறைந்தது ஒரு அக்ரிவிரியாவது அங்கே உருவாக்க வேண்டும். அப்படிச் செய்வதற்கு இவருடன் நம் புறோகிறாம் சற்று கதைக்க வேண்டும். (இது பிற்பாடு..)
 
 
activity.JPG
 
 
 
2. View System
 
இவரே நம் அப்ஸிற்கு உருவம் கொடுப்பவர். ஒரு வின்ட்டொவிற்கு / அக்ரிவிரிக்குத் தேவையான பட்டன்கள், சட்டங்கள், மெனு போன்றவற்றைத் தந்து உதவுவார். அக்ரிவிரியின் உடலமைப்புத் தேவைகளுக்கு நம் அப்ஸ் இவருடன் கதைக்க வேண்டும். ( இதுவும் பிற்பாடு..)  
 
 
3. Content Provider
 
இவரின் தொழில் நம் அப்ஸிற்கு தேவையான தகவல்களை வளங்குதல். உதாரணமாக நம் சிலேடையில் இருக்கும் நம் தொடர்புகள் ( Contacts ) சம்பந்தமாக தகவல்கள் தேவைப்பட்டால் நம் அப்ஸ் இவருடன் கதைக்க வேண்டும். 
 
ஒரு தகவல் வளங்கி ஒரு தகவல் தளம் ( Data Base ) ஆகக்கூட இருக்கலாம். இவர் அந்த தகவல் தளத்துடன் கதைத்து மிச்சத்தைப் பார்த்துக் கொள்வார். நம் அப்ஸ் இவருடன் கதைத்தால் போதுமானது. இப்படி பல்வேறு விதமான தகவல் வளங்கிகளிடம் இருந்து தகவலைப் பெற்றுத்தர இவரோடு ஒரே விதமாக அணுகினாலே போதுமானது. இவரில்லாவிட்டால் ஒவ்வொருவருடனும் ஒவ்வொரு விதமாக அணுக வேண்டி வரும்.   
 
 
.
 

Share this post


Link to post
Share on other sites
4. Resource Manager
 
இவரின் வேலை நம் அப்ஸ் பயன்படுத்தும் படங்கள், சொற்கள் போன்றவற்றை சேகரித்து வளங்குதல். இங்கு நாம் பல்வேறு படங்களையும் சொற்களையும் ஒரு அக்ரிவிரிக்கே மாற்ற வேண்டியிருக்கலாம். உதாரணமாக அப்ஸின் முகப்பிற்கு, கைத்தொலைபேசிக்கு ஒரு படமும் சிலேடைக்கு இன்னுமொரு படமுமாக எந்தக்கருவியில் அப்ஸ் ஓடுகிறதோ அதற்கேற்ப தெரிவு செய்யலாம். இவர் அதற்கு சில வேலைகளைச் செய்வார்.
 
 
5. Location Manager
 
இவர் நம் அப்ஸ் ஓடும் கருவியில் GPS  இருக்குமானால் அதனுடன் கதைத்து இடம் சம்பந்தமான தகவல்களை தருவார்.
 
6. Telephony Manager

 

இவர் கருவியின் தொலைபேசியோடு நம் அப்ஸ் இணைந்து செயல்பட வழிவகுப்பார்.   
 
7. Package Manager
 
இவரின் தொழில் கருவியில் தரவேற்றப்பட்டுள்ள அப்ஸ்களின் பட்டியலை பேணுவது. இது வின்டோசில் உள்ள கன்ட்ரோல் பனலில் இருக்கும் "அட் ஒ ரிமூவ் புறோகிராம்" போன்றது.
 
8. Notification Manager
 
இவர் கருவியின் பாவனையாளரை டென்ஷனாக்கும் எச்சரிக்கை ["அலேர்ட்"] மற்றும் சிறிய அறிவுப்புகளை  நம் அப்ஸ் அனுப்புவதற்கு உதவி செய்வார்.
 
 
 
இதுவரை நாம் பார்த்த AF  படையில் உள்ள பல்வேறு முகாமையாளர்கள் நம் அப்ஸ் பலவிதமான தொழிற்பாடுகளைச் [ Functionality ] செய்வதற்குத் தேவையான பொறிமுறையை வளங்குவதைப் பார்த்தோம்.   
 
ஆனால் ஒரு அப்ஸை உருவாக்கி அதன் சகல தேவைகளையும் பூர்த்தி செய்யும் வல்லமை இந்த முகாமையாளர்களிடம் இல்லை. 
 
இதனை நிவர்த்தி செய்ய  AF படைக்கு அடுத்ததாக கீழே உள்ள லைபிறரிகளைப் பற்றி சிறிது பார்க்க வேண்டும்.

Share this post


Link to post
Share on other sites
லைபிறரி என்றால் என்ன ?
 
மென்பொருளியலில் லைபிறரி என்பதற்கும் சாதாரண வழக்கில் உள்ள வாசிக சாலைக்கும் உள்ள சம்பந்தம் இரவல் வாங்கும் முறையே. இங்கு லைபிறரி என்பது மீள்பாவனை செய்யக்கூடிய மென்பொருள் வரிகளின் தொகுப்பு எனலாம்.
 
மென்பொருள் எழுதும் போது வரி வரியாக ஆங்கிலத்தில் எழுதி கம்பைல்[ Compile ] செய்வார்கள். இப்படி கம்பைல் செய்யப்பட்ட வரிகளை வேறொரு மென்பொருள் இரவல் வாங்கி அவற்றைப் பாவிக்கலாம். இப்படி இரவல் கொடுக்கும் பொறிமுறை இல்லாவிட்டால் மென்பொருள் எழுதுபவர் இரவல் வாங்க வழியின்றி அனைத்து வரிகளையும் தானே எழுத வேண்டும். இது மென்பொருள் எழுதுபவர் மிக விரைவில் தன் வாழ்க்கையை வெறுப்பதற்கு வழிவகுக்கும்.
 
அன்ட்ரொயிட் இப்படி பல வகையான தொழிற்பாடுகளைச் செய்யும் மென்பொருட்களை லைபிறரிகளாக இந்தப் படையில் கொண்டுள்ளது. நம் அப்ஸும் பிரச்சனை இல்லாமல் இரவல் வாங்கலாம். 
 
இந்த லைபிறரி படையில் நான்கு விதமான லைபிறரி மென்பொருட்க‌ள் உள்ளன.
 
 
1. டல்விக் இயங்குதளத்திற்கான [ DVM ] லைபிறரிகள்.  
 
டல்விக் இயங்கு தளத்தையே ஆட்டி உசுப்பும் மென்பொருள் எழுதும் நோக்கம் எமக்கு இல்லையாகையால், இவற்றைப்பற்றி நாம் பெரிதாக கவனிக்கத் தேவையில்லை.
 
 
2. சாதாரண ஜாவா லைபிறரிகள்.
 
ஜாவா மொழியைப் பாவித்தே நாம் மென்பொருள் எழுதப் போகிறோம். அந்த மொழிக்குரிய செங்கல், அரிகல், மண், சீமேந்து இத்யாதி ஐடங்கள் இங்கே இருக்கும்.  ஆனால் சாதாரண கணனியில் பாவிக்கப்படும் ஜாவா லைபிறரிகள் போல் அல்லாது இவை எண்ணிக்கையிலும் வீரியத்திலும் சற்றுக் குறைந்தவை.
 
 
3. ஜாவா அன்ட்ரொய்ட் லைபிறரிகள்.
 
இவர்கள் தான் அப்ஸிற்குத் தேவையான சகல - ‍சகல வேலையும் செய்யும் வேலையாட்கள். இவர்கள் ஜாவாவினால் எழுதப்பட்டவர்கள். ஆகவே ஜாவாவில் எழுதப்படும் நம் அப்ஸ் இவர்களின் வரிகளை இரவல் வாங்கி அந்த வரிகள் செய்யும் வேலையை செய்விக்கலாம். உதாரணமாக ஒரு கானொலியைக் காட்ட வேண்டும் என்றால் android.media என்னும் லைபிறரியின் வரிகளை இரவல் வாங்கி படம் காட்டும் வேலையை தொடங்க வேண்டியது தான்.
 
இங்கு வரிகளை இரவல் வாங்குவது என்னும் போது, அந்த வரிகள் ஆங்கில வரிகள் அல்ல. கம்பைல் செய்யப்பட்ட டிஜிடல் வரிகளின் பிரதியே. 
 
இவர்கள் தான் அப்ஸிற்குத் தேவையான சகல - சகல வேலையும் செய்யும் வேலையாட்கள் என்று சொன்னோம். உண்மையில் இவர்கள் வேலையாட்கள் அல்ல. இடைத்தரகர்கள். ஏன் என்பது கீழே 4 ஆவதில்.
 
 
4. C/C++ லைபிறரிகள்.
 
இவர்கள் தான் உண்மையான வேலையாட்கள். தமக்குக் கீழே உள்ள லைனெக்ஸ் கேணலுடன் கதைத்து தேவையான வேலையைச் செய்பவர்கள். C/C++ இல் எழுதப்பட்டவர்கள். நாம் மேலே 3இல் சொன்ன ஜாவா அன்ட்ரொய்ட் லைபிறரிகள் இடைத்தரகர்கள். இந்த இடைத்தரகர்களின் வேலை ஜாவா மொழிக்கும் C/C++ இற்கு இடையே தரகர் வேலை செய்வது. இந்த இடைத்தரகர்கள் இல்லாவிட்டால் ஜாவாவில் நாம் எழுதும் அப்ஸை இந்த வேலையாட்களுக்கு மொழி பெயர்ப்பது யார் ?
 
இந்த லைபிறரிகளின் பூரண விபரம் நமக்கு தற்சமயம் தேவையற்றது. 
 
இருப்பினும் சிலர் இந்த லைபிறரியைப் பாவிக்க முனைவர். இதில் உள்ள கடினம் என்னவென்றால் இந்த லைபிறரிகள் ஹார்ட்வெயாருடன் சற்று நெருக்கமானவை. ஹார்ட்வெயார் மாறும் போது எழுதிய அப்ஸ் எதிர்பார்த்தபடி வேலை செய்யாமல் போகலாம்.
 
ஆனால் ஜாவா அன்ட்ரொய்ட் லைபிறரி இடைத்தரகர்களைப் பாவிக்கும் போது ஹார்ட்வெயாரிடம் இருந்து சுதந்திரம் கிடைக்கிறது.
 
ஆகவே ஜாவா அன்ட்ரொய்ட் லைபிறரிகள் பற்றிய அறிவே முக்கியம். 
 
 
 
 
 
.

Share this post


Link to post
Share on other sites
அன்ட்ரொய்ட் இயங்குதள ஒழுங்கமைப்பைப் பார்த்தோம். அதன் படையமைப்பை புரிந்து கொண்டோம். மென்பொருள் எழுதுவதற்கு இவ்வறிவு உதவியாக இருக்கும்.
 
இனி..
 
 
இந்த இயங்குதளத்தில் வேலை செய்யும் மென்பொருளின் கட்டமைப்பு எத்தகையது ? மென்பொருளின் கட்டமைப்பு இயங்கு தளத்தோடு பொறுந்தி இயங்கும் வகையில் இருக்க வேண்டும். உதாரணமாக நிலத்தின் மேல் கட்டப்படும் கட்டடங்கள் சில கட்டமைப்பு விதிகளைப் பின்பற்றவேண்டும். அத்திவாரம், தரைநிலம், தூண்கள், சுவர்கள், கூரை இப்படி..
 
 
 
 
அன்ட்ரொய்ட் மென்பொருள் கட்டமைப்பு
  
 
 
கம்போனன்ட்ஸ் [Components] என்பவை யாவை ?  இவை கொஞ்சம் பெரிய உருப்படிகள். உதாரணமாக கட்டடத்தின் செங்கல், அரிகல் போலல்லாது கொங்கிரீட் தூண்கள், ஜன்னல், கதவுகள் போல் கொஞ்சம் பெரியவை. ஒன்றுக்கு மேற்பட்ட தொழிலைச் செய்யக்கூடியவை.
 
அன்ட்ரொய்ட் மென்பொருள் கட்டமைப்பு இப்படியான கம்போனன்டுகள் இணைவதால் உருவாகிறது. இந்த அடிப்படைக் கம்போனன்டுகள் நான்கு வகைப்படும்.
 
 
 
1. Activity  அக்ரிவிரி.
 
இது பாவனையாளர் உறவாடும் அப்ஸின் ஒரு திரை [ Screen ]. அன்ட்ரொய்ட்டில் ஒரு திரையானது மைக்குரோசொஃப்ட் வின்டோஸ் அப்ஸ் போலல்லாது சுதந்திரமாக தனித்து இயங்கக்கூடியது. அன்ட்ரோய்ட் அப்ஸ் இப்படி ஒன்றுக்கு மேற்பட்ட அக்ரிவிகளைக் கொண்டிருக்கலாம். ஆனால் இந்த அக்ரிவிரிகள் ஒன்றின் மேல் ஒன்று தங்கி இருக்காது. இந்த சுதந்திரம் எத்தகையது எனில் ஒரு அப்ஸின் ஒரு அக்ரிவிரியை இன்னுமொரு அப்ஸ் தொடக்கி இயக்கலாம். உதாரணமாக அன்ட்ரொய்ட் கருவியில் இருக்கும் கமாரவில் இருந்து படமெடுக்கும் அக்ரிவிரியை உங்கள் அப்ஸ் இயக்கி படமெடுக்கலாம். இப்படி அக்ரிவிரிகள் மீள்பாவனைக்கு உட்படக்கூடியவையாக இருப்பதால் மென்பொருள் எழுதும் வேலை குறைகிறது.
 
அன்ட்ரொய்ட் அப்ஸின் கட்டமைப்பு அக்ரிவிரிகளால் கட்டப்பட்டிருக்கலாம்.
 
 
.
 
 

Share this post


Link to post
Share on other sites
2. Service சேர்விஸ் - சேவைகள்
 
 
இவர் வின்டோஸ் சேர்விஸ் போன்றவர். பின்ணனியில் இருந்து தொழிலைச் செய்வார். பாவனையாளரோடு உறவாடும் முகம் -- திரை இவருக்கு இல்லை. நம் அப்ஸ் இப்படியான ஒரு சேர்விஸ் ஆகக்கூட இருக்கலாம். இப்படியான ஒரு சேர்விஸ் அக்ரிவிரி எனப்படும் ஒரு திரையுடன் கைகோர்த்து தனக்கு ஒரு முகத்தையும் தேடிக் கொள்ளலாம் -- பாவனையாளருடன் உறவாடலாம்.  இப்படியான சேர்விஸ் அப்ஸுக்கு உதாரணமாக உங்கள் கையடக்க கருவியில் இருந்து யாழ் இணையத்துடன் கதைத்து புதிதாக ஏதாவது செய்தி இணைக்கப்பட்டால் அதை திரைக்குக் கொண்டுவரும் ஒரு சேர்விஸாகக் கூட இருக்கலாம்.
வின்டோசில் ஒரு சேர்விஸ் ஒரு திரையுடன் இப்படி தொடர்பை ஏற்படுத்துவ‌தற்கு நேரடி வழி இல்லை. 
 
 
3. Content Providers தகவல் வழங்கிகள் / வாங்கிகள்
 
 
இவரை உங்கள் அப்ஸின் கட்டுமானத்தில் சேர்த்துக் கொள்வதன் மூலம் உங்கள் அப்ஸ் ஏனைய அப்ஸிற்கு தகவல்களை வழங்கும் / வாங்கும் வல்லமையைப் பெறுகின்றது. அப்ஸ்களிடையே தகவல்களைப் பரிமாற்றம் செய்யும் ஒரு ஒழுங்கமைப்பே இந்த "கன்டென்ற் புறவைடேர்ஸ்". ஒரு அப்ஸ் இன்னுமொரு அப்ஸின் தகவல் சேமிப்பை புதிப்பிக்கலாம். அல்லது அதனிடமிருந்து தகவல்களை வாங்கி தான் பாவிக்கலாம்.
 
வின்டோஸில் இப்படி அப்ஸ்களிடையே தகவல்களைப் பரிமாற அவற்றின் கட்டமைப்புப் பகுதி பங்கெடுக்காது. ஒன்றில் TCP / IP அல்லது Message Queue  அல்லது Files மூலம் தான் பரிமாறலாம். இவை வினைத்திறன் மிக்கவை அல்ல. அன்ட்ரோய்ட் இப்படி அப்ஸின் கட்டமைப்பிலேயே தகவல் பரிமாற்ற வல்லமையை வழங்கியிருப்பது முன்னேற்றமான ஒரு அம்சம்.
 
 
4. Broadcast Receivers அறிவிப்பு வழங்கிகள் / வாங்கிகள்.
 
அன்ட்ரொய்ட்டில் அறிவிப்புகள் "இன்டென்ட்" [ Intents ] எனப்படும் தகவல் "சொட்டுக்களாக" ஓடித்திரிவார்கள். உதாரணமாக கருவியின் பற்றரியின் சேமிப்பு முடிவடைகின்றதென்றால் கருவி இப்படி ஒரு "இன்டென்டை" ஒரு ரவுண்டு அனுப்பிவிடும். உங்கள் அப்ஸ் இந்த இன்டென்டை வாங்கி வாசிப்பதற்கு ஏற்பாடு செய்து வைத்திருப்பீர்களென்றால் இன்டென்ட் வந்ததும் அதை வாசித்து அதற்கேற்ப நீங்கள் சொல்லி வைத்ததை அப்ஸ் செய்யும். இப்படி அறிவிப்பு வழங்கி / வாங்கியை உங்கள் அப்ஸ் தன் கட்டமைப்பில் கொண்டிருந்தால் மற்ற அப்ஸ் அல்லது கருவியின் அறிவுப்புகளுக்கேற்ப நடவடிக்கைகளை மேற்கொள்ள முடியும். அல்லது தானே அறிவுப்புகளை மேற்கொன்டு ஆக வேண்டியதை பார்த்துக் கொள்ளும். இந்த இன்டென்டுகள் மூலம் இன்னுமொரு அப்ஸையோ அல்லது சேர்விஸையோ தொடக்கவும் முடியும்.
 
 
மேலே சொல்லிய நான்கு வகையான அடிப்படைக் கட்டமைப்புகளைப் பாவித்து அப்ஸை கட்டியெழுப்பலாம். இந்த அடிப்படை கட்டமைப்புகள் இரண்டு முக்கியமான விசயத்தைச் சொல்கின்றன.
 
1. அப்ஸ்களின் தொழிற்பாடுகள் மீள்பயன்பாட்டில் பங்கெடுத்தல் (ஒரு அப்ஸின் தொழிலை இன்னுமொரு அப்ஸ் பாவித்தல்)
2. அப்ஸ்கள் கூட்டாக தொழிற்படுதல்  

Share this post


Link to post
Share on other sites
பாவனையாளர் திரை வடிவமைப்பு  -  User Interface Design
 
 
அன்ட்ரொய்ட் அப்ஸ் எழுதுவதில் உள்ள ஒரு முக்கிய செயற்பாடு அப்ஸின் பாவனையாளர் திரையை வடிவமைப்பதாகும்.
 
திரையை வடிவமைக்க மூன்று விதமான மூலப்பொருட்களைப் பயன்படுத்தலாம்.
 
1. விஜட்டுகள் [ Widget ]
2. கூட்டு விஜட்டுகள் [ Composite Widgets]
3. காட்சி விரிப்புகள் [ Layouts ]
 
இவை அனைத்தும் "வியூ" [ Views ] என்ற அன்ட்ரொய்ட் லைபிறரியைச் சேர்ந்தவை. [ Android.View ]
 
 
1. விஜட்
 
இது அன்ட்ரொய்ட் கருவியின் திரையில் ஒரு சதுர அல்லது நீள் சதுர மேற்பரப்பை எடுத்துக்கொள்ளும் ஒரு உருவம். இவை பல்வேறு வடிவங்களில் வருபவை. பல்வேறு தொழில்களைச் செய்பவை. உதாரணமாக இவை "கிளிக்" செய்யும் பட்டனாக இருக்கலாம். எழுதும் எழுத்துப் பெட்டியாக [ Text Box ] இருக்கலாம்.
 
வின்டோஸில் இவற்றைக் கன்ட்ரோல்கள் [ Controls ] என்போம்.
 
இந்த விஜட்டுகள் அவற்றுக்கேற்ற வடிவம் தொழில் என்பவற்றோடு அவை தொடர்பான சில நிகழ்வுகளையும் [ Events ] கொண்டவை.  
 
அன்ட்ரொய்ட் லைபிறரி கொண்டுள்ள விஜட்டுகள் போதுமானவை தான். சில சமயம் நாமே சில விஜட்டுகளையும் வடிவமைக்க வேண்டியும் வரலாம்.
 
 
2. கூட்டு விஜட்டுகள்
 
இவை ஒன்றுக்கு மேற்பட்ட விஜட்டுகளைச் சேர்த்து ஒரு தனி விஜட்டாக வேலை செய்ய வைப்பதைக் குறிக்கும். உதாரணமாக கீழே உள்ள படத்தில் "தெரிவு பட்டன்கள்" [ Radio Buttons ]  மூன்றும் கூட்ட்டாக ஒரு தனி விஜட்டாக வேலை செய்யும் படி செய்யலாம்.
 
radio_button.png
 
3. காட்சி விரிப்புகள்
 
இவை விஜட்டுகளை எப்படி ஒழுங்குபடுத்தி காட்சிப்படுத்தலாம்  என்பதில் பங்காற்றுகின்றன. ஆகவே இவை கொள்கலன்களாகும் [ Containers ]. இவற்றின் மீது விஜட்டுகளை பல ஒழுங்கமைப்பில் பரவி திரையை உருவாக்கலாம்.
 
இந்த ஒழுங்கமைப்பைப் பொருத்து இவை வகைப்படுத்தப் படும்.
 
a. நேரிய ஒழுங்கமைப்பு [ Linear Layout ]
 
         ஒரு நேர் வரியாக [ Row ] அல்லது ஒரு நேர் நிரையாக [ Column ] விஜட்டுகளை ஒழுங்கு படுத்தும்  விரிப்பு.
 
b. சதுரங்க ஒழுங்கமைப்பு [ Table Layout ]
 
         ஒன்றுக்கு மேற்பட்ட வரிகள், நிரைகளாக விஜட்டுகளை ஒழுங்கு படுத்தலாம்.
 
 
3x3grid.gif

Share this post


Link to post
Share on other sites
c. பட்டியல் ஒழுங்கமைப்பு [ List Layout ]
 
இங்கே விஜட்டுகளை பட்டியலில் உள்ள ஐடங்கள் போல் ஒழுங்கு படுத்தலாம்.
 
listview.png
 
 
 
 
d. சார்பு ஒழுங்கமைப்பு [ Relative Layout ]
 
 
relativelayout.png
 
 
அதிகம் பயன்பாட்டில் உள்ள் ஒழுங்கமைப்பு இதுவே. இங்கே விஜட்டுகள் ஒன்றை ஒன்று சார்ந்து ஒழுங்கு படுத்தப்படலாம். இது இணையப்பக்கம் [ Web Page ] வடிவமைப்பது போன்றது. இதன் அனுகூலம் யாதெனில் ஒரு இணையப்பக்கம் பாவனையாளர்களுடைய கணனி திரை அளவுகளிற்கேற்ப [ Screen Size ] அதன் உள்ளடக்கங்களை சார்பாக அசைத்து சரி செய்து கொள்வது போல் நம் அப்ஸும் பாவனையாளர் திரை அளவிற்கேற்ப விஜட்டுகளை நகர்த்தி சரி செய்து கொள்ளும். ஆகவே நாம் அப்ஸை வடிவமைக்கும் போது மாறுபடும் பாவனையாளர் கருவிகளின் திரை அளவு ஒரு பெரிய இடைஞ்சலாக இருக்காது.
 
பாவனையாளர் திரை விஜட்டுகள் மூலம் உருவாக்கலாம் என்று பார்த்தோம். என்னென்ன விஜட்டுகள், அவை ஒவோன்றினது நீள் அகல பருமன்கள், என்னென்ன ஒழுங்கமைப்பில் அவை ஒழுங்கு படுத்தப்பட்டுள்ளன போன்ற விபரங்கள் நம் அப்ஸிற்கு மூன்று வழிகளில் போகலாம்.
 
1. ஜாவா புறோகிறாமின் வரிகள் மூலம் [ Using Java Code in the program itself.]
2. ஒரு எக்ஸ்.எம்.எல் கோர்வை [ XML File ] மூலம்
3. நாம் புறோகிராம் எழுதப்பாவிக்கும் மென்பொருள் மூலம். [ Tools in the Development Environment  ]
 
XML File முலம் வடிவமைப்பதையே பலரும் விரும்புவர். இதில் உள்ள அனுகூலம் மிகவும் நுண்ணிய அளவில் [ Fine Control ] விஜட்டுகளை ஒழுங்குபடுத்தும் வல்லமை கிடைக்கிறது. அத்தோடு மாற்றங்கள் செய்வதும் இலகுவானது. 
 
 
 
 
XML ( eXtensible Markup Language ) என்றால் என்ன ?
 
 
இது தகவல்களை எழுதும் ஒரு பொறிமுறை. எளிமையான அதேநேரம் அதீத பிரயோகம் உள்ள ஒரு பொறிமுறை.
 
XML மூலம் தகவல்களை மாத்திரம் எழுத முடியும். புறோகிராம் அல்ல. [ Only Data. No Code. ]
 
தகவல்களை XML  இனுள் போடும் பொழுது இரண்டு விசயங்கள் தான் யோசிக்க வேண்டும்.
 
1. தகவலைப்பற்றிய தகவல் [ Data of Data. i.e. Description of Data.]
2. தகவல் [ Data ]
 
ஒரு பொதுப்படையான XML File கீழே.
 
 
<?xml version="1.0" encoding="utf-8"?>
<Users>
<User>Inayavan</User>
<User>Esan</User>
<User>Nizhalss</User>
<User>Poongai</User>
<User>Abarajithan</User>
</Users>

Share this post


Link to post
Share on other sites

நல்ல முயற்சி, தொடருங்கள்  ஈசன்! :lol:

 

 

எனக்கும் இதில் சிறிதளவு ஆர்வம் உள்ளது.. ஆவலுடன் எதிர்பார்க்கிறேன்.. :D

 

 

Thank you Gentlemen.

Share this post


Link to post
Share on other sites

ஈசன் இன்றுதான் இந்தப் பதிவைப் பார்த்தேன். நல்ல பயனுள்ள முயற்சி.

எனக்கும் ஆர்வம் இருக்கிறது. தொடருங்கள்!

Share this post


Link to post
Share on other sites
சரி..  :)  :)
 
 
XML கோர்வை மூலம் பாவனையாளர் திரை சம்பந்தமான தகவல்களை அப்ஸிற்கு வளங்கலாம் என்று பார்த்தோம். இந்தக் கோர்வை, திரை ஒழுங்கமைப்பு [ Lay Out ] மற்றும் திரை கொண்டுள்ள விஜட்டுகள் (கன்ட்ரோல்கள்) என்னென்ன அவற்றின் பரிமானங்கள் [ Dimensions ] என்னென்ன போன்ற தகவல்களையும் உள்ளடக்கும் என்றும் பார்த்தோம்.  
 
இனி..
 
அடுத்தகட்டமாக மேற்சொன்ன ஒழுங்கமைப்புகளினுள் போடக்கூடிய‌ விஜட்டுகள் எவை என்று பார்ப்போம். எம்முடைய தேவைக்கேற்ப விஜட்டுகளைத் தெரிவு செய்து பாவையாளர் திரையை வடிவமைக்கலாம். விஜட்டுகள் ஒவ்வொன்றாக, அவற்றின் தொழில், அவற்றினால் என்னென்ன நிகழ்வுகளைத் [ Events ] தோற்றுவிக்கலாம், அவற்றின் இயல்புகள் [ Properties ], அவற்றை எவ்வாறு எம்முடைய கோர்வையில் குறிப்பிடுவது போன்றவற்றைப் பார்ப்போம்.
 
 
 
அடிப்படை விஜட்டுகள் (கன்ட்ரோல்கள்)
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
  1. பட்டன்கள் [ Buttons ]
  2. தெரிவு பட்டன்கள் [ Radio Buttons ]
  3. ஆளி பட்டன்கள் [ Toggle Buttons ]
  4. தெரிவுப் பெட்டிகள் [ Check Boxes]
  5. எழுத்துப் பெட்டிகள் [ Text Fields ]
  6. சுழல் தெரிவுகள் [ Spinners ]
  7. திகதிநேரத் தெரிவுகள் [ Date, Time Pickers ]
 
இந்த விஜட்டுகள் தம்மிடையே வேறுபட்டாலும் அவை எல்லாம் அடிப்படையில் சில இயல்புகளை கட்டாயம் கொண்டிருப்பார்கள். உதாரணமாக அவற்றின் பெயர், நீளம், அகலம், பின்ணனி நிறம் , முன்ணனி நிறம் (அவற்றின் மேல் உள்ள எழுத்தின் நிறம்), அவற்றின் மேல் உள்ள எழுத்துகள் [ Text ].  இவற்றை விட ஒவ்வொரு விஜட்டும் தமக்கென சில தனித்துவமான இயல்புகளையும் கொண்டிருப்பார்கள். 
 
அப்ஸிற்கு விஜட்டுகளைத் தெரிவு செய்யும் போது மூன்று விசயங்களை கவனிக்க வேண்டும்.
 
  1. அவற்றின் தொழில் [ Functions ]
  2. அவற்றின் இயல்புகள் [ Properties ]
  3. அவற்றின் நிகழ்வுகள் [ Events ]    

Share this post


Link to post
Share on other sites
1. பட்டன் [button]
 
buttons1.png
 
 தொழில் : பாவனையாளர் தெரிவை வாங்கிக் கொள்தல். 
 இயல்புகள்: பெயர் (ஐடி), நீளம் , அகலம், அதன் மேல் உள்ள சொற்கள், படங்கள், பின்ணனி, ஸ்டைல்..
 நிகழ்வுகள்: "கிளிக்" [ Click ]
 
பட்டன் வெறுமனே சொற்களைத் தன் மீது கொண்டிருக்கலாம் அல்லது படமொன்றைக் கொண்டிருக்கலாம் அல்லது படத்தையும் சொற்களையும் ஒரே நேரத்தில் தன்மீது கொண்டிருக்கலாம். பட்டனின் இயல்புகளை XML  கோர்வையில் குறிப்பிடும் போது இவற்றை மாற்றிக்கொள்வதன் மூலம் பட்டன் சொல் பட்டனா அல்லது பட பட்டனா அல்லது சொற் பட பட்டனா என்று நாம் மாற்றிக் கொள்ள முடியும்.  
 
 
button-types.png
 
 
இந்த பட்டன் சம்பந்தமான விசயங்களை எப்படி XML கோர்வையில் போடுவது ? கீழே ஒரு XML கோர்வை ஒன்றின் பட்டனைப் பற்றிக் குறிப்பிடும் பகுதி தரப்பட்டுள்ளது. 
 
 
<Button
    android:id="@+id/button_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage"
    android:background="@drawable/button_custom"  />
 
 
 
இங்கே  <  ,  /> ஆகிய குறியீடுகளினுள் இருப்பது ஒரு "ஐடம்" எனலாம். XML இல் ஒரு ஐடம் "<Item>" இல் தொடங்கி "</Item>" முடியும்.  ஆகவே இங்கே பட்டன் ஐடம் இப்படி இருக்கும். 
 
<பட்டன்> </பட்டன்>
 
அதையும் சுருக்கி இப்படிப் போடலாம்.
 
<பட்டன்/> 
 
XML இல் ஒரு ஐடத்தின் இயல்புகளை [ Attributes ] அந்த ஐடத்தின் "< >" வைரக் [ Diamond ] குறியீட்டினுள்ளேயே இயல்பின் பெயரைக் குறிப்பிட்டு பின் சமன் (  ' = ' ) போட்டு பின் இரட்டை மேற்கோளினுள் அந்த இயல்பின் பெறுமதியைப் போட வேண்டும். 
 
உதாரணமாக : அந்த பட்டனின் நீளம் 80 பிக்ஸல்கள் என்றால்..
 
<பட்டன் நீளம்="80பிக்ஸ்"/>      
 
அகலமும் 120 பிக்ஸல் என்றால்..
 
<பட்டன் நீளம்="80பிக்ஸ்" அகலம்="120பிக்ஸ்" />
   
 
(XML ஐ யுனிகோட்டில் தமிழிலும் எழுதலாம். அன்ட்ரொய்ட் புறோகிராமிற்கு ஆங்கிலம் தான் தேவை)
 
XML இற்கு இரண்டு விசயங்கள் தேவை என்றோம். அவை தகவல், தகவலைப் பற்றிய தகவல்.
 
இங்கே தகவல் : அந்த ஐடம் அதாவது பட்டன்.
தகவலைப் பற்றிய தகவல்: ஐடத்தின் இயல்புகள் -- பட்டனின் நீளம்.
 
 
இனி மேற்சொன்ன உதாரணக் கோர்வையில் உள்ள விசயங்களைப் பார்ப்போம். இங்கே உள்ள ஐடத்தின் இயல்புகளில் பல ஏனைய ஐடங்களிற்கு (ஏனைய விஜட்டுகளுக்கும்) பாவனையில் வரும். 
 
 
  android:id = என்பது விஜட்டின் பெயர் 
  android:layout_width = விஜட்டின் அகலம்
  android:layout_height = விஜட்டின் உயரம்
  android:text =  விஜட்டின் மேல் உள்ள சொற்கள்
  android:background  விஜட்டின் பின்ணனி
  android:src =  விஜட்டின் மீதுள்ள படம்
  android:drawableLeft = படம் எப்பக்கம் (இடமா, வலமா, மேலா, கீழா..)
  android:onClick= "கிளிக்" செய்யும் போது செய்ய வேண்டியது 
  
இதில் கிளிக் செய்யும் போது செய்ய வேண்டியத்தை தவிர ஏனையவை விஜட்டின் இயல்புகளாகும்.
 
இனி இந்த பட்டனை ஒரு பட பட்டனாக மாற்ற கோர்வையில் சிறிது மாற்றம் செய்வோம்.
 
 
 
 
<Button
    android:id="@+id/button_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/button_icon"
    android:onClick="sendMessage"
  />
 
 
 
பட்டனை படமும் எழுத்தும் சேர்ந்த பட்டனாக்குவோம். 
 
படம் சொல்லின் இடப்புறம்..
 
 
<Button
    android:id="@+id/button_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   android:drawableLeft="@drawable/button_icon"
    android:onClick="sendMessage"
  />
 
 
 
 
படம் சொல்லின் வலப்புறம்..
 
 
 
<Button
    android:id="@+id/button_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   android:drawableRight="@drawable/button_icon"
    android:onClick="sendMessage"
  />
 
 

 

 

.

Share this post


Link to post
Share on other sites