שו"ב על גבי אנדרואיד
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 2025