שו"ב על גבי אנדרואיד A True Story אפקה – מי אנחנו? מכללה אקדמית להנדסה בתל אביב – הוקמה 1996 2200סטודנטים 5מחלקות תואר ראשון – תוכנה ,חשמל ,מכונות ,תעשיה וניהול, ורפואית 2מסלולים לתואר שני – מערכות ,אנרגיה (עוד בדרך)... אפקה – מי אנחנו? - ACMiXמרכז פיתוח ויעוץ לתעשיה לחוויית משתמש חכמה במערכות ניידות -הוקם – 2012ערן אהרונסון וד"ר טליה פורת מסלול לתואר ראשון בהנדסת תוכנה עם התמחות במערכות ניידות – – 2012ערן אהרונסון יחיד מסוגו בארץ אולי בעולם... צעדים ראשונים הצעת פרויקט – מר .אורי ברקן -אלישרא שו"ב על גבי אנדרואיד (קוד פתוח) צעדים ראשונים הצעת פרויקט – מר .אורי ברקן -אלישרא שו"ב אנדרואיד מערכת הפעלה ניידת מבוססת לינוקס JAVA SDK Activity Emulator ... ...... צעדים ראשונים הצעת פרויקט – מר .אורי ברקן -אלישרא שו"ב ? אנדרואיד מערכת הפעלה ניידת מבוססת לינוקס JAVA SDK Activity Emulator ... ...... צעדים ראשונים זה מה יש ועם זה ננצח! תקציב – + ₪ 0טאבלט ( )~ ₪ 1200 צוות פיתוח - סטודנט שנה שלישית להנדסת תוכנה – שגיא מסר ~ 1שנה ניסיון ב – JAVA ניסיון ב 1~ – Androidחודש מנחה – ערן אהרונסון -רקע עשיר (תעשיה) במערכות ניידות לו"ז - התחלה: סיום: 1.3.2012 ( 1.5.2013אתמול) זמן מוקצב של צוות פיתוח -שליש משרה בעיקר בשעות עבודה קונבנציונליות ()1:00am – 5:00am פגישת עבודה ראשונה – 29.3.2012 דרישות – או "מה זה בעצם שו"ב"... מערכת שליטה ובקרה מבוססת קוד פתוח או אמצעים חינמיים הצגת מטרות אויב ועמית על מפה (תצ"א). דיווחים על מטרות מגיעות מחיישנים הפרושים בשטח. חיישנים מדווחים כל אינטרוול זמן מסוים על מצבם ועל מטרות בטווח הגילוי שלהם. תצוגת דיווחים ע"ג טאבלט דיווח על מטרות ומצב החיישן גילוי מטרה ע"י חיישן דרישות – או "מה זה בעצם שו"ב"... מערכת שליטה ובקרה מבוססת קוד פתוח או אמצעים חינמיים על מפה: מטרות אויב ועמית מיקום סוג מסלול כיוון תנועה סטיית חיישן (אליפסה /כוון) חיישנים מיקום טווח גילוי מצב החיישן ()online, offline, cal דרישות – או "מה זה בעצם שו"ב"... מערכת שליטה ובקרה מבוססת קוד פתוח או אמצעים חינמיים תצוגה אלפאנומרית: מטרות אויב ועמית מיקום סוג זמן איתור ראשון ,זמן איתור אחרון חיישן מזהה דיווחים אחרונים חיישנים מיקום שם סוג ,סוג תוצר (אליפסה /כוון) סטטוס זמן דיווח אחרון רשימת מטרות דרישות – או "מה זה בעצם שו"ב"... מערכת שליטה ובקרה מבוססת קוד פתוח או אמצעים חינמיים תכונות נוספות קבלת תמונת מצב עדכנית בעת החיבור אפשרות למחיקה טוטלית של כל המידע בטאבלט הגדרת גבול גזרה – מלבני – סינון מידע לפי גבול גזרה סינון תצוגות על המפה ועוד... דרישות – או "מה זה בעצם שו"ב"... מערכת שליטה ובקרה מבוססת קוד פתוח או אמצעים חינמיים המערכת תרוץ על טאבלט – Samsung Galaxy Tab 10.1 Android HoneyComb 3.0 + ממשק משתמש "עתידני" מוכוון מגע חוויית משתמש חדשנית ופשוטה – אפליקציה ביטחונית עם חווית משתמש של אפליקציה אזרחית המערכת תהיה בלמ"ס דרישות – או "מה זה בעצם שו"ב"... פיתוח תוכנת שרת מדמה -סימולטור מבוסס קוד פתוח או אמצעים חינמיים יאפשר יצירת סימולציות של חיישנים ומטרות יאפשר הרצת סימולציות והעברת דיווחים ,בזמן אמת ,של חיישנים מדומים. תקשורת אלחוטית – WIFIומאובטחת ()SSL protocol ישמש פלטפורמת בדיקה דרישות – או "מה זה בעצם שו"ב"... עיצוב קונספט ראשוני 1.5.12 - מפה ,מטרות ,חיישנים, סטיות ומיקום הטאבלט מצבי חיישנים תצוגות אלפאנומריות נתוני מיקום וכיוון הטאבלט למה? למה לפתח מערכת כזו ,מבוססת קוד פתוח? עלות אפסית -יחסית למערכות קיימות עלות פיתוח עלות תחזוקה קוד פתוח -שימוש בקוד ואמצעים קיימים קיצור זמן פיתוח – TTM שימוש ברכיבים קיימים התאמת המערכת לצרכים שלנו במקום להתאים את הצרכים למערכת קהילה - יצירת פרויקט קוד פתוח חדש – עידוד יצירתיות וקדמה!! למה? תכנון ראשוני – או "ועכשיו לבעיות"... תצורת Client - Serverמבוססת תקשורת WIFIמאובטחת נתונים? אנדרואיד אפליקציית שו"ב PC תוכנת שרת תכנון ראשוני – או "ועכשיו לבעיות"... אתגרים: הפרויקט בלמ"ס -לא ראינו מערכת אמיתית! – תמונות מהרשת מראות מערכות שולחניות שעברו הסבה לניידות. סטיילוס?! באמת?! איך נמציא חוויית שימוש חדשה למוצר שלא נגענו בו? חיפשנו תשובות במערכות לא אמיתיות (משחקים) , FPSמשחקי אסטרטגיה. תכנון ראשוני – או "ועכשיו לבעיות"... אתגרים: מפות מורכבות מתצלומי אויר ,קוד פתוח או חינמי? לא קוד פתוח ,אבל קרוב -חינמי על אנדרואיד לא ממש בנוי למידע משתנה /דינאמי איך הופכים Point of Interestל ?Area of Interest איך נכתוב שרת עם מפות? Google Mapsמגיע בשני "טעמים": אנדרואיד ו JavaScript תכנון ראשוני – או "ועכשיו לבעיות"... אתגרים: איך להעביר מידע מהשרת לטאבלט? אפשרות להתממשק למערכת אמיתית בעתיד (אולי)?.. אפשרות להתממשק למערכות אחרות – לא ידוע אילו? פשוט לשינויים קל ליצר ולפרסר. ?JSON ?Serialized Objects !>!<XML "...תכנון ראשוני – או "ועכשיו לבעיות <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <simulationReport reportTime="01/01/2013 00:00:05"> <SensorReport lastOnline="01/01/2013 00:00:05" onlineSince="01/01/2013 00:00:00" range="10000.0" reportTime="01/01/2013 00:00:05" sensorId="Sen5222" sensorName="" sensorProductType="ELLIPTIC" sensorStatus="ONLINE" sensorType="OBSERVATION"> <sensorPosition latitude="32.761871730333105" longitude="35.79002380371094"/> <TargetReport firstTimeSeen="01/01/2013 00:00:00" lastTimeSeen="01/01/2013 00:00:05" targetId="Tar4631" targetTypeIdentifier="Tank"> <Detections> <Detection xsi:type="ellipseDetectionReport" detectionTime="01/01/2013 00:00:05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <center latitude="32.75044772327267" longitude="35.76931473703411"/> <new>true</new> <ellipticSensorDeviation halfHeight="231.6013083908268" halfWidth="154.4008722605512" brg="236.74266480489237"/> </Detection> </Detections> <mobile>true</mobile> <new>false</new> </TargetReport> </SensorReport> <SensorReport lastOnline="01/01/2013 00:00:05" onlineSince="01/01/2013 00:00:00" range="1.7976931348623157E308" reportTime="01/01/2013 00:00:05" sensorId="BLUEFORCE" sensorName="" sensorProductType="EXACT" sensorStatus="ONLINE" sensorType="BLUEFORCE"> <sensorPosition latitude="0.0" longitude="0.0"/> </SensorReport> </simulationReport> One way data flow – ארכיטקטורה ארכיטקטורת סימולטור ארכיטקטורת אפליקציית שו"ב Google Maps for Android SQLite JaxB SSLSocket SSLSocket JavaFX Android OS בשידורXML מאובטח WIFI + SSL ...ללכלך את הידיים פיתוח לאנדרואיד ADT(Android development Tools) Eclipse Plugin :אינטגרציה מלאה וחלקה כוללת לתוך סביבת העבודהAndroid SDK אינטגרציית כלים מ עורכי קוד עורכי ממשקי משתמש DDMS – Dalvik Debug Monitor Server Logcat Thread & heap information ...ועוד הרבה +XML Android SDK ללכלך את הידיים... 3קליקים ,ומוכנים לעבודה File->New Project-> Android Project היררכיית פרויקט מסודרת ומוכנה לעבודה! ללכלך את הידיים... 3קליקים ,ומוכנים לעבודה File->New Project-> Android Project היררכיית פרויקט מסודרת ומוכנה לעבודה! ...ללכלך את הידיים מבנה פרויקט- ומוכנים לעבודה, קליקים3 קוד- קבצי סורס Dependencies Resources – Images, sounds, Layouts Values – strings (locality - easy) ללכלך את הידיים... חיי אפליקציית אנדרואיד -או "התורה" ללכלך את הידיים... חיי אפליקציית אנדרואיד -או "התורה" תמונת מצב עדכנית בהתחברות הטאבלט ...ללכלך את הידיים ... או לא, XML - יצירת מבנה מסך ! על החיים מקלXML ...או public RelativeLayout createSimpleView(){ RelativeLayout rl = new RelativeLayout(context); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); TextView tc = new TextView(context); tc.setLayoutParams(params); tc.setTextAlignment(TextView.TEXT_ALIGNMENT_CENTER); tc.setText(R.string.hello_world); rl.addView(tc); return rl; } ללכלך את הידיים... דברים שלמדנו בדרך או "איך ללכלך את הידיים פחות" Logcatיכול להציל חיים! ;)”Log.e(“MyObject”,”'did a no no Allocation Tracker )שים לב ל(DDMS) (Heap- ללכלך את הידיים... דברים שלמדנו בדרך או "איך ללכלך את הידיים פחות" Eclipse MAT (Memory Analyzer Tool) plugin פרויקט קוד פתוח http://www.eclipse.org/mat/ מאתר זליגות זיכרון. מזכיר את האובייקט הזמני שייצרת בלולאה שעושה 1000איטרציות בשניה... ללכלך את הידיים... דברים שלמדנו בדרך או "איך ללכלך את הידיים פחות" מפתח מובייל אמיתי מפתח ומדבג על המכשיר!!! אמולטור טוב – אבל לא יותר מזה... מובייל זה לא !!!!PC צריך להרגיש בידיים – להתעסק ,לשחק... חוויית משתמש ( )UXזה הכל! ללכלך את הידיים... דברים שלמדנו בדרך או "איך ללכלך את הידיים פחות" Wireless Device Debugging !!The Bomb כן ,זה כל כך פשוט... Device Debugging מפתח מובייל אמיתי Emulator )(AVD לא מומלץ לאפליקציות מורכבות 3דרכים לעשות DEBUG ללכלך את הידיים... פיתוח על אנדרואיד – יתרונות מערכת פתוחה – אפשרויות בלתי מוגבלות! (ממש) קלות פיתוח – מי שיודע , JAVAיודע ANDROID עדכונים – עדכוני SDKשוטפים אינטגרציה טובה מאוד ל Eclipse - Eclipseכלי טוב! הכל חינם!! הרבה אוטומציה – פרויקט אנדרואיד – הכל מסודר מראש עזרים – MAT, DDMS, ADT, LogCatעובדים לטובת המפתח יצירת מסכים – XMLפשוט מאוד! – עורכי מסכים ,עוד יותר! הרבה דוגמאות וספריות עזר -גם רשמיים וגם לא רשמיים ללכלך את הידיים... פיתוח על אנדרואיד – חסרונות ריבוי מכשירים ריבוי מסכים – גדלים ,רזולוציות – יגרור בעיות Layout יעבוד על מכשיר אחד ,אולי לא יעבוד על אחר ריבוי גרסאות תוכנה זיכרון במכשירים מסוימים ( Galaxyראשונים) – יכול להיות אסון! אחריות ניהול זיכרון – Garbage Collectorזה לא תירוץ לבזבז! Heapמוגבל – שימוש לא זהיר בזיכרון יגרור בעיות UXו !Performance תמיד לזכור שהאפליקציה שלנו לא לבד! – אולי תעבור לרקע ,אולי תיהרג! תהליכי רישום מורכבים – בעיקר המוצרים נלווים של Google רישום ל ( APIלמשל מפות) חתימת אפליקציה – AndShobYשו"ב טקטי מבוסס אנדרואיד מסקנות... היתרונות עולים בהרבה על החסרונות! Eclipse + Android SDK + ADT pluginחבילה מעולה! כוללת כל מה שצריך על מנת לפתח מערכות פשוטות וכן מורכבות! אנדרואיד משתפר כל הזמן – בלתי ניתן לעצירה! פיתוח על פלטפורמה בעלת קהילה גדולה – יתרון ענק! הדבר הכי חשוב שלמדנו...
© Copyright 2024