Sunday, October 28, 2012

תכנות לאנרדואיד בקלות פרק 4 – קצת על מבנה פרוייקט Android

בפרק זה נבצע drill down לתוך עץ התיקיות של פרוייקט אנדרואיד, נשתמש באותו העץ אשר ראינו באפליקצית Hello World מפרק 3.
clip_image002
מלמעלה למטה:
- SRC
תיקייה זאת מכילה את כל קוד ה java אותו אנו כותבים. נהוג לחלק את התיקייה ל packages על מנת לאפשר עבודה מודולרית ומסודרת, כמו כן מאפשרת חלוקה של הקוד לחלקיים לוגיים.
לדוגמא: com.example.helloworld.models הינו package אשר מכיל מודלים (יישויות) איתם אנו עובדים בפרוייקט.
- GEN
הינה תיקייה אשר נוצרת ומתעדכנת באופן אוטומטי בזמן הכתיבה שלנו, לחלוטין אסור לערוך את הפריטים בתיקייה הזאת באופן ידני מכיוון שזה יכול ליצור קשיי build אשר eclipse לא מצליח להתמודד איתם באופן מוצלח.
- ה Android SDK שאליו מפתחים
במקרה שלנו 2.2, יופיע כ class library אשר משרת את כל הפרוייקט בספריות השונות שלו, גם כן מתווסף באופן אוטומטי לפרוייקט ברגע שמחליטים לאיזה גרסת API מפתחים.
- Android Dependencies
תיקייה הנוצרת באופן אוטומטי ומתוופסת לפרוייקט, ברגע שאנחנו משתמשים באיזשהו שירות או SDK חיצוני, כדוגמת support libraries, או Annotations (נרחיב על כך בהמשך)
- Assets
תיקייה זאת מכילה קבצים שאנו משתמשים בהם באפליקציה שלנו כדוגמת sound/video (לא תמונות, לשם כך יש לנו תיקיות ייעודיות)
- Bin
תיקייה זו מכילה את כל קבצי ה .class אשר מיוצרים על ידי המהדר על מנת ליצור את קובץ ה APK, קבצים אלה נוצרים באופן אוטומטי ואין לעשות שינויים בתיקייה.
- Libs
בעת שימוש בספריות חיצוניות , הרפרנס אליהן בקביעת ה build path של הפרוייקט מייצר את תיקיית Libs עם קובץ ה jar הרלוונטי
- Res
תיקייה המכילה את קבצי ה resources הבאים:
א. Drawable-hdpi ,Drawable-mdpi ,Drawable-ldpi ,Drawable-xhdpi
בתיקיות אלה יש לשים את כל קבצי הגרפיקה של האפליקציה, כאשר החלוקה היא ע"פ מימדים, ז"א שעל מנת לתמוך בגדלים שונים של מסכים, יש לשכפל את הקבצים עבור 4 הגדלים.
ב. Layout
תיקייה זו תכיל את כל קבצי ה XML אשר מגדירים layouts עבור האפליקציה,בד"כ כל Activity יהיה משוייך לקובץ layout לכן כדאי לשמור על תאימות בשמות הקבצים.
ג. Menu
תיקייה זו תכיל את קבצי התפריט/ים אשר מתקבלים באפליקציה ע"י לחיצה על לחצן menu הפיזי/לא פיזי של המכשיר. קובץ ה menu הינו קובץ XML אשר מכיל היררכיה ספציפית אשר מתארת את הכיתוב , סדר, ו icon של האפליקציה.
ד. Values
תיקיה זו תכיל את כל המשאבים הקבועים לדוגמא: strings, styles, dimensions עבור localization. שימוש בתיקיה strings יאפשר כמו כן גם re-use מאוד פשוט בקוד והפרדה בין ערכים לבין שמות הערכים.
- AndroidManifest.xml
לדוגמא:
clip_image004
מרכיבים:
1. שם ה package
2. גרסת קוד
3. מס' גרסא (לצורך יישום של updates ל Google play store)
4. שימוש ב SDK מינימלי, ו SDK מטרה
5. Icon עבור האפליקציה
6. שם האפליקציה
7. Theme עבור האפליקציה
8. Permissions – הרשאות לרכיבים שונים במכשיר כגון: אינטרנט/מלצמה/אנשי קשר/ Bluetooth...
9. פירוט של ה activities/services/broadcast receivers/Intent filters
ללא הגדרה של רכיבים אלה, לא יתאפשר שימוש ברכיבים וכתוצאה מכך האפליקציה תיפול ברגע שתתבצע בקשה ולא תיתמך בקובץ ה manifest.
ניתן לערוך את קובץ ה XML הנ"ל באופן XML-י, או באמצעות אשף עם תפריטים לגישה נוחה יותר.