1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [סמינר] [אנדרואיד (עכשיו עם סוכריות ג'לי!)] 2 00:00:02,610 --> 00:00:04,210 [ירדן Jozwiak] [אוניברסיטת הרווארד] 3 00:00:04,210 --> 00:00:06,780 [זה CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> שלום לכולם, וברוכים הבאים ליישומי אנדרואיד (עכשיו עם סוכריות ג'לי!) סמינר. 5 00:00:11,600 --> 00:00:14,530 זה נקרא עכשיו עם סוכריות ג'לי, כמובן, כי 6 00:00:14,530 --> 00:00:17,310 את הגרסה האחרונה של מערכת ההפעלה נקראת שעועית ג'לי. 7 00:00:17,310 --> 00:00:22,950 כשדיברתי על אנדרואיד בשנה שעברה ועשיתי את זה בעצם אותו סמינר 8 00:00:22,950 --> 00:00:29,150 אני היה מציג את תבניות העיצוב ובחירות סגנוניות לGingerbread, 9 00:00:29,150 --> 00:00:31,250 למרות שהגלידה סנדוויץ יצא באותו הזמן, 10 00:00:31,250 --> 00:00:33,680 וזה משהו שנדברנו על קדימה קצת. 11 00:00:33,680 --> 00:00:35,720 אנדרואיד, כמובן, יש לו כמה בעיות עם פיצול, 12 00:00:35,720 --> 00:00:40,240 כך מערכת ההפעלה האחרונה של Google היא בדרך כלל 13 00:00:40,240 --> 00:00:44,710 לא ממש הולך להיות נפוצה בקרב המשתמשים לפוטנציאל של עד שנה, למרבה הצער. 14 00:00:44,710 --> 00:00:49,960 >> אבל התעלמות זה, נדבר על הרבה סיבות מדוע 15 00:00:49,960 --> 00:00:53,000 אנדרואיד היא הרבה יותר טובה מאשר iOS. 16 00:00:53,000 --> 00:00:56,410 אוקיי, נדבר על אנדרואיד לעומת iOS, 17 00:00:56,410 --> 00:00:59,770 כמה פרדיגמות עיצוב, כיצד תוכל לקבל להגדיר רק שקופית אחת, 18 00:00:59,770 --> 00:01:03,410 וההבדל הגדול בין זה לבין השנה שעברה הוא שאני רק רוצה 19 00:01:03,410 --> 00:01:06,860 זום דרך כמה דברים רעיוניים שעובדים עם 20 00:01:06,860 --> 00:01:09,950 מערכת ההפעלה ולאחר מכן ללכת לדוגמה באמת בסיסית. 21 00:01:09,950 --> 00:01:13,730 למעשה, רק בדוגמא שגוגל מתארת ​​לבניית האפליקציה הראשונה שלך, 22 00:01:13,730 --> 00:01:17,070 ואנחנו נעבור את זה ביחד ורק לתאר. 23 00:01:17,070 --> 00:01:22,100 >> אני יודע שהרבים מכם מקודדים רק ב-C, ולכן ג'אווה כבר הולכת להיות 24 00:01:22,100 --> 00:01:27,220 נקודת מבט שונה, ודרך זה תוכל לקבל את הרגליים רטובות 25 00:01:27,220 --> 00:01:31,540 ולהרגיש קצת יותר בנוח עם זה בתקווה. 26 00:01:31,540 --> 00:01:35,330 סיכום מהיר, אנדרואיד לעומת iOS. 27 00:01:35,330 --> 00:01:39,200 באנדרואיד יש דמי מפתח חד פעמי של 25 $, 28 00:01:39,200 --> 00:01:42,390 אף דבר זה 100 דולרים לשנה מ. 29 00:01:42,390 --> 00:01:45,440 אין הגבלות, מה שאומר שאם אני רוצה להגיש אפליקציה, 30 00:01:45,440 --> 00:01:51,560 אני רק להגיש אותו, ואין שום תהליך אישור כמו שיש עבור iOS. 31 00:01:51,560 --> 00:01:53,890 אתה מקבל לפתח עם Java באמצעות Eclipse, 32 00:01:53,890 --> 00:01:57,090 אשר הוא חוצה פלטפורמה, כך שזה לא משנה אם יש לכם מק, 33 00:01:57,090 --> 00:01:59,600 Windows, או איזה מכונת לינוקס. 34 00:01:59,600 --> 00:02:03,730 כמובן, עם iOS יש לך להשתמש במקינטוש Xcode, 35 00:02:03,730 --> 00:02:06,930 ואנדרואיד משמש אנשים רבים יותר, 36 00:02:06,930 --> 00:02:11,580 כך שאם אתה רוצה האפליקציה שלך יש איזשהו נראות או אולי 37 00:02:11,580 --> 00:02:14,110 לעשות קצת כסף מפרסומות 38 00:02:14,110 --> 00:02:17,450 אתה כנראה יותר עשוי ליהנות מאנדרואיד. 39 00:02:17,450 --> 00:02:20,630 >> ודבר אחד שתמיד היה ידוע על אנדרואיד 40 00:02:20,630 --> 00:02:25,100 היא הכמות הקיצונית של התאמה אישית, ואילו iOS הוא מאוד מקובע בדרכים שלהם 41 00:02:25,100 --> 00:02:29,380 כדי שנוכל לשמור על ביטחון ושליטה על כל היבט קטן 42 00:02:29,380 --> 00:02:34,180 של העיצוב בתוך מערכת ההפעלה שלהם ואת היישומים הבודדים. 43 00:02:34,180 --> 00:02:40,180 אנדרואיד היא צורה החופשית מאוד, ויש כל כך הרבה יותר אפשרויות. 44 00:02:40,180 --> 00:02:42,530 אוקיי, כמה פרדיגמות עיצוב. 45 00:02:42,530 --> 00:02:49,600 שימו לב כאן בדיוק כמו iOS יש טבליות וiPhones ונוגע iPod 46 00:02:49,600 --> 00:02:53,840 הם צריכים לתמוך בו, אומרים, כמו תריסר מכשירים, אם אתה רוצה לתמוך 47 00:02:53,840 --> 00:02:55,450 דברים היסטורי, כמו גם. 48 00:02:55,450 --> 00:02:58,410 עם אנדרואיד יש לך כדי לתמוך במאה מכשירים, 49 00:02:58,410 --> 00:03:01,240 אז יש כמה דברים שגוגל כבר מנסה ליישם 50 00:03:01,240 --> 00:03:04,970 כדי להפוך למשתמש לחוות קצת יותר עקבי, 51 00:03:04,970 --> 00:03:08,560 אבל אנחנו גם נדבר על איך זה שאומר שיש בעיות של פיצול 52 00:03:08,560 --> 00:03:11,700 כי אתה כל הזמן צריך להיות מודע לתמיכה. 53 00:03:11,700 --> 00:03:16,140 פיצול אומר שיש מערכות הפעלה רבות ושונות, 54 00:03:16,140 --> 00:03:20,330 טלפונים רבים ושונים עם חומרה שונה פועלים אנדרואיד כולם באותו הזמן, 55 00:03:20,330 --> 00:03:29,680 כך הגרף הזה כאן חוזר במשך כ -6 חודשים. 56 00:03:29,680 --> 00:03:36,460 כן, 6 חודשים, ואתה יכול לראות איך הלהקה האפלה ביותר 57 00:03:36,460 --> 00:03:39,330 בחלקו התחתון הוא ג'לי בין, שיצא בקיץ, 58 00:03:39,330 --> 00:03:42,970 ואתה יכול לראות עכשיו כנראה כ -2% מהטלפונים שיש לו. 59 00:03:42,970 --> 00:03:45,520 >> גלידת סנדוויץ יצא לפני למעלה משנה, 60 00:03:45,520 --> 00:03:47,770 ורבע מהטלפונים שיש לו. 61 00:03:47,770 --> 00:03:53,910 יש עדיין הרבה טלפונים שמשתמשים בגרסת מערכת הפעלה מלפני שנים. 62 00:03:53,910 --> 00:03:57,820 דבר אחד שגוגל ניסתה לעשות על מנת להפוך את חוויית המשתמש 63 00:03:57,820 --> 00:04:01,400 הרבה יותר עקביים באפליקציות הוא מתחיל עם כוורת, 64 00:04:01,400 --> 00:04:04,320 המהווה את גרסת מחשב הלוח, ולאחר מכן כריך גלידה וג'לי בין, 65 00:04:04,320 --> 00:04:06,750 הם באמת מנסים להדגיש שימוש בסרגל פעולה זו, 66 00:04:06,750 --> 00:04:10,430 וזה מה שאתה יכול לראות בחלק העליון כאן, 67 00:04:10,430 --> 00:04:14,730 הכל נכון כאן, כולל כפתור ההגדרות הקטן הזה. 68 00:04:14,730 --> 00:04:16,079 זה בחירת העיצוב. 69 00:04:16,079 --> 00:04:18,000 עכשיו, בכל פעם שאתה רואה את 3 נקודות זה אומר ללחוץ על זה, 70 00:04:18,000 --> 00:04:21,880 ולא יהיה תפריט נפתחת, שבו יש איזשהו הגדרות. 71 00:04:21,880 --> 00:04:28,900 זה מראה עד רק משום שאני לוחץ על הכפתור הזה. 72 00:04:28,900 --> 00:04:32,040 זה משהו שהם מנסים להשתמש בו כדי להפוך את היישומים קצת יותר עקבי 73 00:04:32,040 --> 00:04:39,210 על פני לוח ואז יש למשתמש תחושה של חוויה אחידה יותר טובה. 74 00:04:39,210 --> 00:04:42,640 >> אוקיי, אז במקרה שאתה לא עשית את זה כבר או אם אתה צופה בבית 75 00:04:42,640 --> 00:04:50,210 אז אתה יכול לעקוב אחר הצעדים הבאים כדי להגדיר את סביבת הקידוד שלך. 76 00:04:50,210 --> 00:04:52,630 זה יהיה כרוך הולכים לאתר כאן. 77 00:04:52,630 --> 00:04:56,260 אתה יכול Google התקנת אנדרואיד SDK 78 00:04:56,260 --> 00:04:59,130 ואחרי כמה תיאורים שם. 79 00:04:59,130 --> 00:05:01,310 הם אומרים לך את הכל. 80 00:05:01,310 --> 00:05:05,160 הם יש לך להתקין, גרסת SDK הורדת Eclipse קלסי, 81 00:05:05,160 --> 00:05:07,450 למרות, כמובן, שאנחנו קידוד ב-Java. 82 00:05:07,450 --> 00:05:12,190 הם ממליצים על זה, ולאחר מכן ADT זה, את כלי פיתוח אנדרואיד, 83 00:05:12,190 --> 00:05:17,300 הוא תוסף שאתה מתקין לתוך Eclipse אשר מאפשר לך 84 00:05:17,300 --> 00:05:20,550 יש לי ניסיון הרבה יותר יעיל עם אנדרואיד בתוך Eclipse. 85 00:05:20,550 --> 00:05:24,070 זה ייתן לך כמה ממשקי משתמש גרפיים 86 00:05:24,070 --> 00:05:29,610 לעיצוב הנוף, וזה ייתן לך הרבה יותר תמיכה 87 00:05:29,610 --> 00:05:34,840 והיכולת לשגר עם אמולטור וכל דברים מהסוג הזה. 88 00:05:34,840 --> 00:05:36,090 במסגרת יישום. 89 00:05:36,090 --> 00:05:41,590 >> אני רוצה לדבר על אופן שבו הפרויקטים בתוך אנדרואיד בנויים, 90 00:05:41,590 --> 00:05:44,830 ואז נלך לדוגמה מהירה, ואני מקווה 91 00:05:44,830 --> 00:05:48,820 אתה יכול לשאול שאלות בכל נקודה ולהרגיש בנוח עד סוף אותו. 92 00:05:48,820 --> 00:05:50,090 יש לנו כמה ז'רגון ראשון. 93 00:05:50,090 --> 00:05:55,330 פעילות היא כמו המסך שאתה רואה כשאתה השקת אפליקציה. 94 00:05:55,330 --> 00:05:57,840 כל החוויה היא הפעילות עצמה, 95 00:05:57,840 --> 00:06:00,790 כך שאתה יכול לחשוב על זה כמסך או נוף, 96 00:06:00,790 --> 00:06:04,540 אבל זה בעצם צד קוד המקור שלו. 97 00:06:04,540 --> 00:06:12,680 אנחנו עדיין קוראים לחלק הממשק בפועל של אותו נוף. 98 00:06:12,680 --> 00:06:17,230 זה קצת כמו באופן pset 7 היה לנו הבקר ולאחר מכן את הנוף. 99 00:06:17,230 --> 00:06:20,690 הפעילות היא פחות או יותר את הבקר, 100 00:06:20,690 --> 00:06:23,360 והנוף הוא מה שאנחנו עושים במונחים של ה-XML 101 00:06:23,360 --> 00:06:25,260 המשויך לפעילות זו. 102 00:06:25,260 --> 00:06:29,340 ברים הם משהו שיושם בהולך הגלידה סנדוויץ קדימה. 103 00:06:29,340 --> 00:06:36,380 זה רק רעיון של לקחת חלקים מהתצוגה או הפעילות 104 00:06:36,380 --> 00:06:39,990 ולחלק אותם לאזורים נפרדים, כך שאנחנו יכולים 105 00:06:39,990 --> 00:06:45,030 להפוך את הקוד שלנו יותר שמיש עבור מכשירים רבים ושונים אלה 106 00:06:45,030 --> 00:06:51,890 שאנחנו צריכים לתמוך בו, וזה רק דרך לנסות 107 00:06:51,890 --> 00:06:54,290 גם גורם נוסף קוד. 108 00:06:54,290 --> 00:07:01,090 שירותים הם רקע דברים כמו השמעת מוסיקה או כיווני ניווט פוטנציאלי. 109 00:07:01,090 --> 00:07:05,640 ספקי תוכן, אלה APIs בתוך מערכת ההפעלה 110 00:07:05,640 --> 00:07:09,070 שיאפשר לך גישה לנתונים משותפים, כגון פרטי קשר, 111 00:07:09,070 --> 00:07:12,790 ולאחר מכן כוונה היא משהו שאנו נשתמש כאשר אנו רוצים להשיק 112 00:07:12,790 --> 00:07:17,210 פעילות חדשה מהפעילות הנוכחית שלנו. 113 00:07:17,210 --> 00:07:20,980 >> שלום אנדרואיד, זה הולך להיות פרויקט שנדברנו עליו. 114 00:07:20,980 --> 00:07:25,410 אני באמת אעשה את זה בשבילך, ואז אנחנו נעשה את דבר שבו אנו לוחצים על לחצן 115 00:07:25,410 --> 00:07:27,650 עם קצת טקסט ולהשיק פעילות חדשה. 116 00:07:27,650 --> 00:07:30,110 מאוד פשוט, אבל אני רוצה לעבור 117 00:07:30,110 --> 00:07:34,480 מה שייכנס לפרויקט כזה. 118 00:07:34,480 --> 00:07:39,260 כאשר אתה מבצע את הפרויקט החדש שתראה באקליפס 119 00:07:39,260 --> 00:07:41,900 יש הפרויקט הזה שנקרא שלום אנדרואיד. 120 00:07:41,900 --> 00:07:43,470 אז יש חבורה שלמה של תיקיות כאן. 121 00:07:43,470 --> 00:07:46,760 את אלו שאתה באמת מודאג עימם את תיקיית המקור, 122 00:07:46,760 --> 00:07:54,540 תיקיית המשאבים, מיל, ובמידה מסוימת את תיקיית libs ספריות למידה. 123 00:07:54,540 --> 00:08:00,070 ורק כדי שאנחנו על אותו הדף עם זה 124 00:08:00,070 --> 00:08:03,240 אם היית ליצור פרויקט חדש, 125 00:08:03,240 --> 00:08:08,270 אתה יכול לעשות את זה כאן, כך שאם אני רוצה לקרוא לזה HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 ואז זה באופן אוטומטי עושה חבורה שלמה של המידע עבורנו. 127 00:08:11,100 --> 00:08:14,110 שם החבילה אמור להיות מזהה ייחודי 128 00:08:14,110 --> 00:08:16,710 שבדרך כלל קשור לאתר, אם היה לך אחד. 129 00:08:16,710 --> 00:08:24,430 >> לדוגמה, אני אקרא net.cs50.helloandroid זה. 130 00:08:24,430 --> 00:08:30,070 ואני כבר עשיתי את הפרויקט הזה פעם אחת. 131 00:08:30,070 --> 00:08:40,059 אוקיי, מצטער. בואו נקראים לזה HelloCS50. 132 00:08:40,059 --> 00:08:42,929 ואז זה ישאל את הדברים כמו איזה סוג של סמל האם אנחנו רוצים לעשות. 133 00:08:42,929 --> 00:08:48,840 כל זה בגלל של ממשק אנדרואיד מפתחי כלים, 134 00:08:48,840 --> 00:08:53,350 התוסף שהוספנו לליקוי חם, ולכן אנחנו יכולים לבחור דברים כמו 135 00:08:53,350 --> 00:08:58,320 מה שסמל שאנחנו רוצים, ושניכנס לעומק שאם אנחנו רוצים. 136 00:08:58,320 --> 00:09:04,360 אבל בסופו של הדבר, רק לעשות את הפרויקט, 137 00:09:04,360 --> 00:09:07,040 וכל מה שמופיע כאן. 138 00:09:07,040 --> 00:09:10,030 כפי שהראיתי על המסך האחר, 139 00:09:10,030 --> 00:09:14,070 יש לנו את תיקיית המקור, ואני אדבר על מה שכל זה אומר שבקרוב, 140 00:09:14,070 --> 00:09:19,090 אבל אתה יכול לראות כי מייד זה לוקח אותנו למסך HelloCS50. 141 00:09:19,090 --> 00:09:24,690 יש כמה לחצנים לכאן להוספת פריסות שדה טקסט וטקסט. 142 00:09:24,690 --> 00:09:28,910 זה כמו סוג של Xcode אך למרבה הצער לא כל כך יעיל. 143 00:09:28,910 --> 00:09:37,790 אבל את הסרטונים יהיו חבר שלך וADT בפרט לעושים את זה. 144 00:09:37,790 --> 00:09:40,920 >> אוקיי, את תיקיית המקור בו היא 145 00:09:40,920 --> 00:09:43,820 את קבצי Java מתקיימים, ואת זה הוא למעשה השקה של התכנית שלך. 146 00:09:43,820 --> 00:09:45,990 זה בעצם כמו הבקרים. 147 00:09:45,990 --> 00:09:49,020 תיקיית המשאב או מיל מקום שבו אנחנו נשמור פריסות מסך, 148 00:09:49,020 --> 00:09:54,110 תמונות, צלילים, טקסט, אנימציה וכל דבר אחר, LIBS, כמובן, ספריות. 149 00:09:54,110 --> 00:10:01,700 ומניפסט, זה אופן שבו מערכת אנדרואיד יודעת 150 00:10:01,700 --> 00:10:03,130 איך לתקשר עם האפליקציה שלך. 151 00:10:03,130 --> 00:10:07,980 זה אומר לו אודות הרשאות ומה בעצם פעילות תהיה לרוץ. 152 00:10:07,980 --> 00:10:12,350 זה כל המידע החיוני שהדבר נדרש כדי להפעיל את היישום שלך. 153 00:10:12,350 --> 00:10:17,990 תיקיית המקור היא-אם להרחיב אותו כפי שאתה יכול לראות ממש כאן. 154 00:10:17,990 --> 00:10:23,920 ודוגמה שקוד היה נראה זה הוא קוד ברירת המחדל. 155 00:10:23,920 --> 00:10:27,930 כפי שקראנו לזה, MainActivity. 156 00:10:27,930 --> 00:10:33,230 כברירת מחדל, אנחנו מקבלים onCreate, שהיא פונקציה שנקראת כאשר עומסי פעילות זו, 157 00:10:33,230 --> 00:10:37,150 כך שאתה רוצה לקרוא לonCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 זה יהיה לשחזר את כל פיסות המידע 159 00:10:40,440 --> 00:10:44,910 במקרה האפליקציה שעצרה. 160 00:10:44,910 --> 00:10:48,790 >> יש תרשים כל מחזור חיים של פעילות שבו אתה יכול להסתכל 161 00:10:48,790 --> 00:10:50,380 כאשר אתה מקבל קצת יותר לעומק בזה, 162 00:10:50,380 --> 00:10:56,210 אבל השורה החשובה ביותר של קוד יש פונקצית setContentView זה 163 00:10:56,210 --> 00:11:00,290 אשר תהיה לטעון את קובץ המשאבים לפריסה. 164 00:11:00,290 --> 00:11:03,590 אז מה כאן בעצם onCreate עושה הוא זה אומר 165 00:11:03,590 --> 00:11:07,010 כאשר אני יוצר את הפעילות הזו אני רוצה לטעון פריסה זו. 166 00:11:07,010 --> 00:11:12,030 ונדבר על מה שהיא בפריסה שנייה. 167 00:11:12,030 --> 00:11:16,230 אם היינו להשיק כי כאן זה נראה בדיוק כמו זה, 168 00:11:16,230 --> 00:11:22,880 כברירת מחדל, וכי יש לנו ליקוי חמה עושה את זה ועושה את זה בשביל ADT 169 00:11:22,880 --> 00:11:28,210 זה כל הקוד המוכן מראש שיצר עבורנו, 170 00:11:28,210 --> 00:11:34,630 ואנחנו יכולים להמשיך הלאה ולשנות דברים כמו שאנחנו אוהבים. 171 00:11:34,630 --> 00:11:38,190 תיקיית המשאבים, כמו שאמרתי, זה שבו אנו מחזיקים את כל הפריסות, 172 00:11:38,190 --> 00:11:41,150 drawables במונחים של כל סוג של תמונות ב 173 00:11:41,150 --> 00:11:46,360 הם נקראים drawables-ולאחר מכן קבצי קול, תפריטים. 174 00:11:46,360 --> 00:11:51,170 זוהי דרכו של כל חבורה של ה-XML באופנה מסודרים נחמדה. 175 00:11:51,170 --> 00:11:58,030 כפי שאתה יכול לראות, יש. Hdpi, ldpi, mdpi ותיקיות xhdpi לdrawables. 176 00:11:58,030 --> 00:12:02,220 אלה הם צפיפות מסך שונה, צפיפות פיקסלים גבוהה כל כך לאינץ', 177 00:12:02,220 --> 00:12:05,710 צפיפות נמוכה, צפיפות בינונית, צפיפות גבוהה נוספת. 178 00:12:05,710 --> 00:12:08,900 >> זהו, שוב, כדי שנוכל לתמוך בכל ההתקנים שונים אלה, 179 00:12:08,900 --> 00:12:15,100 ובאופן אידיאלי, יהיה לך תמונות שונות לכל רזולוציה שונה. 180 00:12:15,100 --> 00:12:20,740 פריסות הן שבו אנו כוללים את כל פריסות השונות שישמשו בפעילויות שונות. 181 00:12:20,740 --> 00:12:24,150 הם יכולים גם כוללים פריסות עבור ברים, 182 00:12:24,150 --> 00:12:26,670 מה שאומר שבעצם פעילות חלקית. 183 00:12:26,670 --> 00:12:29,610 אם אתה רוצה לעשות משהו מגניב כמו בכל פעם שאתה לסובב את הטלפון 184 00:12:29,610 --> 00:12:33,900 אתה רוצה שיהיה לה פריסה שונה שאתה יכול לעשות פריסה-נוף כתיקייה אחרת, 185 00:12:33,900 --> 00:12:39,000 ויש לו באופן אוטומטי אנדרואיד חבורה שלמה של כללים אלה בתוך תיקיית המשאבים, 186 00:12:39,000 --> 00:12:44,690 כך תדע להסתכל על תיקיות שונות המבוססות על ההגדרה הנוכחית של הטלפון, 187 00:12:44,690 --> 00:12:46,740 איזה סוג של חומרה אתה משתמש. 188 00:12:46,740 --> 00:12:52,350 בדומה לכך, זה ערכים-V11 כאן וערכים-v14 189 00:12:52,350 --> 00:12:55,460 ואת ערכי ברירת המחדל עבור תיקייה זו היא, 190 00:12:55,460 --> 00:13:01,730 ובכן, ערכים של עצמו, זה יהיו את ערכי ברירת המחדל על פני כל גירסאות של מערכת ההפעלה. 191 00:13:01,730 --> 00:13:06,390 מצד השני, מתאים וV11 v14 עם כוורת 192 00:13:06,390 --> 00:13:08,780 וגלידת סנדוויץ, בהתאמה. 193 00:13:08,780 --> 00:13:12,800 שוב, אלה הם דרכים ש- בתוך תיקיות אלה הן מחרוזות שונות 194 00:13:12,800 --> 00:13:17,550 וסגנונות, כך שאתה יכול להתאים אישית את המראה של האפליקציה שלך 195 00:13:17,550 --> 00:13:22,660 או אפילו את הפונקציונליות שלו באופן פוטנציאלי, למרות שכנראה יהיה רעיון לא רע, 196 00:13:22,660 --> 00:13:25,890 המבוסס על הגרסה של מערכת ההפעלה. 197 00:13:25,890 --> 00:13:28,760 >> ואני דיבר על כל זה כאן. 198 00:13:28,760 --> 00:13:35,870 שוב, drawable, גלם, פריסה, ערכים. 199 00:13:35,870 --> 00:13:41,380 את ברירות המחדל, אם אנחנו הולכים לשלום או שלום אנדרואיד CS50 עכשיו 200 00:13:41,380 --> 00:13:43,310 זה ייראה בדיוק כמו זה. 201 00:13:43,310 --> 00:13:45,800 זה יהיה להגיד שלום עולם. 202 00:13:45,800 --> 00:13:58,430 כפי שניתן לראות כאן עם טקסט אנדרואיד 203 00:13:58,430 --> 00:14:04,420 את הטקסט לתצוגת הטקסט הזה, שהוא בעצם רק תווית, 204 00:14:04,420 --> 00:14:06,900 זה מה שאנחנו היינו קוראים לזה בiOS. 205 00:14:06,900 --> 00:14:11,580 יש לו סימון זה מצחיק @ מחרוזת / hello_world. 206 00:14:11,580 --> 00:14:16,200 זה כל כך שאנחנו יכולים, אנחנו מנסים לחלץ את כל המיתרים, 207 00:14:16,200 --> 00:14:19,740 כל המיתרים בקידוד קשיח באנדרואיד לתוך תיקייה נפרדת, 208 00:14:19,740 --> 00:14:23,610 אשר קורה להיות בvalues.strings. 209 00:14:23,610 --> 00:14:29,300 אם נסתכל כאן, אנו יכולים לראות שיש לנו מחרוזת בקידוד קשיח נשמרה כאן 210 00:14:29,300 --> 00:14:33,910 לשלום העולם, וקורא לזה שלום עולם, וזה סוג של 211 00:14:33,910 --> 00:14:39,230 החלטת עיצוב נפוצה על פני פלטפורמות רבות שברצונך, 212 00:14:39,230 --> 00:14:41,780 המיתרים הם מסוג הדברים שאנחנו רוצים להיות פוטנציאליים נוכל לשנות. 213 00:14:41,780 --> 00:14:48,050 אנחנו לא רוצים לשלוט F בקובץ קוד המקור שלנו ב-XML שלנו. 214 00:14:48,050 --> 00:14:50,760 אנחנו רוצים להיות מסוגלים לשנות את זה בכל פעם שאנחנו מקבלים את ההזדמנות. 215 00:14:50,760 --> 00:14:53,640 >> קובץ XML זה, strings.xml, הוא דרך של חילוץ 216 00:14:53,640 --> 00:14:56,710 מחרוזות בקידוד קשיח שיהיו אחר במשאבי הפריסה שלנו 217 00:14:56,710 --> 00:15:03,530 או בקוד המקור שלנו. 218 00:15:03,530 --> 00:15:08,190 המניפסט שבו אנו שומרים את המידע הזה חיוני על היישום. 219 00:15:08,190 --> 00:15:11,050 זה כולל את שם החבילה. זה חייב להיות מזהה ייחודי. 220 00:15:11,050 --> 00:15:16,020 שלא כמו ב-App Store עבור iOS את השמות של היישומים 221 00:15:16,020 --> 00:15:19,980 לא צריך להיות ייחודיים, ולמעשה אתה יכול לשנות את שמו של היישום שלך 222 00:15:19,980 --> 00:15:23,570 לאחר שתשלח אותו, כך שאם אני מתחיל עם ציפורים כועסת, 223 00:15:23,570 --> 00:15:26,840 ולאחר מכן אני עושה את עדכון, ואני לא רוצה לשחרר את גרסה חדשה 224 00:15:26,840 --> 00:15:34,230 אני מניח שאפשר לקרוא לזה 2 ציפורים כועסת בזמן שאני על אותו מחזור השחרור. 225 00:15:34,230 --> 00:15:36,780 זה פשוט היה מופיע כעדכון. 226 00:15:36,780 --> 00:15:39,790 הדבר היחיד שיש לו להיות ייחודיים הוא שם חבילה זו, 227 00:15:39,790 --> 00:15:41,280 שלא הרבה אנשים יראו. 228 00:15:41,280 --> 00:15:44,680 ובכן, היית רואה רק אם אתה מסתכל על קוד המקור או אם יש איזו שגיאה. 229 00:15:44,680 --> 00:15:47,580 הרכיבים כוללים פעילויות, ולכן אנחנו חייבים להכריז 230 00:15:47,580 --> 00:15:49,070 כל סוג של פעילות שאנו משתמשים. 231 00:15:49,070 --> 00:15:53,430 זוהי מעין רשותו של דבר. 232 00:15:53,460 --> 00:15:58,150 >> בגלל אנדרואיד אין תהליך יישום קפדני זה 233 00:15:58,150 --> 00:16:02,210 להגשת אפליקציות במקום שהם פשוט מבוססים כל מה שמחוץ להרשאות 234 00:16:02,210 --> 00:16:04,300 ושהכריז דברים במניפסט. 235 00:16:04,300 --> 00:16:06,380 גרסת SDK היא גם חשובה. 236 00:16:06,380 --> 00:16:10,330 אנו יכולים להגדיר שימוש כSDK משהו גרסה מינימאלית. 237 00:16:10,330 --> 00:16:16,010 ברור, אתה רוצה ליצור קוד 238 00:16:16,010 --> 00:16:18,570 ועיצוב למערכות ההפעלה החדשות יותר. 239 00:16:18,570 --> 00:16:20,840 אולי לא הכי חדש, אולי לא ג'לי בין. 240 00:16:20,840 --> 00:16:23,610 אולי אתה רוצה לעצב בעיקר לגלידה סנדוויץ, 241 00:16:23,610 --> 00:16:27,120 למרות שהם די דומים במונחים של החלטות עיצוב 242 00:16:27,120 --> 00:16:30,550 ואת הספריות וממשקי תכנות יישומים בפועל. 243 00:16:30,550 --> 00:16:36,250 אבל במקום שיש לי אנשים 244 00:16:36,250 --> 00:16:40,050 של אנדרואיד הגרסה המקורית כמו סופגנייה, כאשר בדרך חזרה, 245 00:16:40,050 --> 00:16:43,420 שעדיין יקרה לך להיות באמצעות שמנסה להוריד את היישום שלך, ואז אומרים 246 00:16:43,420 --> 00:16:46,160 זה לא עובד על הטלפון שלי אתה יכול להגדיר את הגרסה מינימאלית 247 00:16:46,160 --> 00:16:48,620 ויש לו להיות כריך קרם Gingerbread או קרח 248 00:16:48,620 --> 00:16:53,300 או מה שאתה מרגיש בנוח הגשת. 249 00:16:53,300 --> 00:16:57,170 וזו היא דוגמה למניפסט. אנחנו יכולים להסתכל על עצמו באחד קצת. 250 00:16:57,170 --> 00:17:00,900 >> אוקיי, אנחנו פשוט נלך קדימה עם ההדגמה עכשיו. 251 00:17:00,900 --> 00:17:08,900 זוהי ההדגמה אם גוגל אנדרואיד לבנות האפליקציה הראשונה שלך או משהו כזה. 252 00:17:08,900 --> 00:17:12,089 נלך דרך כל מה שקורה שם, 253 00:17:12,089 --> 00:17:17,690 ואני מצטער, רק בשביל שהתייחסות כאן יודעת ג'אווה במידה כלשהי? 254 00:17:17,690 --> 00:17:28,310 אוקיי, אז ג'אווה היא שפת קידוד חדשה עבור רוב האנשים שיוצאים מCS50. 255 00:17:28,310 --> 00:17:31,850 בקצרה, ללכת שוב מה שהוא אומר כאן, 256 00:17:31,850 --> 00:17:35,580 מה שאנחנו רוצים לעשות הוא לא להתאים את יישום שלום העולם הזה 257 00:17:35,580 --> 00:17:38,620 שכל שהיא עושה זה משיק וזה אומר שלום עולם 258 00:17:38,620 --> 00:17:43,580 וזה אומר שלום CS50 בראש כי זה שם הפעילות 259 00:17:43,580 --> 00:17:47,190 אנחנו הולכים לנסות להפוך את שדה טקסט וכפתור 260 00:17:47,190 --> 00:17:50,680 כך שכאשר אנו לוחצים על כפתור זה ייקח את הטקסט 261 00:17:50,680 --> 00:17:53,660 משדה הטקסט ולהשיק פעילות חדשה, ואת זה יגיד 262 00:17:53,660 --> 00:17:58,380 כל מה שאמר בטקסט את הפעילות, ואת זה הוא פשוט יחסית. 263 00:17:58,380 --> 00:18:00,650 זה לא מאוד מעניין. לא היית רוצה לשחרר את כל אפליקציה כזאת. 264 00:18:00,650 --> 00:18:03,880 אבל זה מוכיח כמה דברים חשובים לעיצוב. 265 00:18:03,880 --> 00:18:07,030 >> אנחנו נצטרך לקיים אינטראקציה עם המניפסט, עם קבצי הפריסה, 266 00:18:07,030 --> 00:18:12,440 עם קוד המקור, ואתה יכול לראות איך להשיק פעילות אחד למשנו. 267 00:18:19,740 --> 00:18:23,060 נתחיל עם הפריסה לפעילות הראשונה שלנו, 268 00:18:23,060 --> 00:18:27,320 שאני יודע שזה סוג של קטן, 269 00:18:27,320 --> 00:18:32,660 אבל כפי שאתה יכול לראות עכשיו, כל מה שזה הוא יש לו את הלוגו שלנו שיצרנו, 270 00:18:32,660 --> 00:18:36,310 שם הפעילות, וזה אומר שלום עולם במרכז. 271 00:18:36,310 --> 00:18:40,400 במקום זאת, אני ראשון הולך לעשות את זה בפריסה ליניארית, 272 00:18:40,400 --> 00:18:42,350 פריסה היחסית, וכל אלה הם הדברים 273 00:18:42,350 --> 00:18:45,870 אתה יכול להסתכל למעלה ושווה הולך על בנקודה מסוימת במונחים של הפריסות. 274 00:18:45,870 --> 00:18:47,310 זה הרבה כמו HTML. 275 00:18:47,310 --> 00:18:52,640 אנחנו אמרו שהוא לא באמת שווה את הידיעה במונחים של תחושת פרוגרמטי, 276 00:18:52,640 --> 00:18:55,840 אבל יש פריסות שונות כל כך הרבה שאתה יכול לשלוט, 277 00:18:55,840 --> 00:18:57,970 וזה בדיוק כמו CSS במונחים של סגנונות. 278 00:18:57,970 --> 00:19:01,590 >> יש הרבה קורה רק במונחים של האסתטיקה כאן, 279 00:19:01,590 --> 00:19:08,930 וכן, זה שווה את הלמידה, אבל זה מסוג הדברים שאתה צריך להסתכל למעלה 280 00:19:08,930 --> 00:19:11,810 כמו שאתה הולך ואתה מרגיש שאתה צריך משהו חדש. 281 00:19:11,810 --> 00:19:17,030 אני יכול לנצל את היתרון של כמה מהכלים ADT כאן לפחות כדי להתחיל עם. 282 00:19:17,030 --> 00:19:21,930 אני אעשה את שדה טקסט, ואני אעשה את כפתור. 283 00:19:21,930 --> 00:19:24,100 שים זכותם אחד ליד שני. 284 00:19:24,100 --> 00:19:28,200 הם כבר לשנות את הגודל כראוי. 285 00:19:28,200 --> 00:19:31,320 מצטער, שוב, חוזר אל את ההבדל בין הפריסה ליניארית ופריסה היחסית, 286 00:19:31,320 --> 00:19:34,830 פריסה ליניארית נותנת קצת יותר פונקציונליות 287 00:19:34,830 --> 00:19:38,720 במונחים של מילוי החלל ולוודא 288 00:19:38,720 --> 00:19:42,790 אנחנו בעמדת דברים אופקי או אנכי. 289 00:19:42,790 --> 00:19:46,130 ההבדל הגדול בין פריסה ליניארית ופריסה היחסית 290 00:19:46,130 --> 00:19:50,250 הוא פריסת עמדות הכול היחסי ביחס לדעות אחרות, 291 00:19:50,250 --> 00:19:52,630 והדבר טוב על זה הוא שזה לוקח פחות זמן לצייר 292 00:19:52,630 --> 00:19:56,120 מכיוון שמערכת ההפעלה מסתכלת על כל הקוד ואומרת זה הולך 293 00:19:56,120 --> 00:19:58,270 יחסית לזה כאן, כאן. 294 00:19:58,270 --> 00:20:03,170 זה אומר שהוא עושה פחות מדידות מחבורה שלמה של פריסות ליניארי מקוננות, 295 00:20:03,170 --> 00:20:06,840 שהייתי צריך לעשות אם אני רוצה ללכת דברים אנכי כאן. 296 00:20:06,840 --> 00:20:10,510 >> כבר יש לי כמה דברים הולכים בצורה אופקית, ולכן הייתי זקוק לפריסה שונה ליניארי 297 00:20:10,510 --> 00:20:14,560 אל קינם במאונך, אבל אם אני היה עושה את פריסה היחסית שיכולתי לומר 298 00:20:14,560 --> 00:20:18,140 לשמור את זה בצד השמאל, זה לימין ואת הדברים האלה בהמשך. 299 00:20:18,140 --> 00:20:21,850 אבל בגלל שאני רוצה שהם ממלאים עכשיו אני הולך להשתמש בפריסה ליניארית, 300 00:20:21,850 --> 00:20:24,510 ואתה יכול לראות את זה כבר עושה הרבה הדברים האלה בשבילנו. 301 00:20:24,510 --> 00:20:28,890 כל התצוגות צריכים רכוש של רוחב וגובה, 302 00:20:28,890 --> 00:20:33,410 וזה קורה לי במשקל של 1, ואת זה יש לו משקל של 1 303 00:20:33,410 --> 00:20:36,050 כך שהוא ממלא את כל החלל. 304 00:20:36,050 --> 00:20:38,460 אבל את הרוחב והגובה הם חשובים ביותר. 305 00:20:38,460 --> 00:20:45,880 שדה מזהה כאן זה לא חשוב בפריסה בפועל 306 00:20:45,880 --> 00:20:49,060 אלא אם כן אנו משתמשים בפריסה יחסית ואומרים שאנחנו יכולים התייחסות 307 00:20:49,060 --> 00:20:52,990 עמדת תצוגה אחת בהתייחסות למשנו. 308 00:20:52,990 --> 00:20:56,170 אם היה לנו פריסה היחסית נוכל לומר עמדה זו מתחת זו אחת 309 00:20:56,170 --> 00:20:59,390 או מעל מספר זה, אך זיהוי זה יהיה חשוב 310 00:20:59,390 --> 00:21:01,660 כאשר אנו משתמשים בו בקוד שלנו, כי אנחנו יכולים התייחסות 311 00:21:01,660 --> 00:21:05,610 צפיות בודדות אלה בדרך זו. 312 00:21:05,610 --> 00:21:10,350 >> ואז אתה יכול לראות requestFocus התג, וזה משהו שאתה בוודאי ראית בpset 7. 313 00:21:10,350 --> 00:21:15,370 היה תג פוקוס אוטומטי או משהו לאורך שורות אלה לאחד מהשדות. 314 00:21:15,370 --> 00:21:22,100 ועוד דבר אחד, כמובן, שאנחנו יכולים לעשות בדיוק כמו ב-HTML, 315 00:21:22,100 --> 00:21:25,660 ושימו לב אחד הדברים היפים בADT הוא שזה autocompletes כאן. 316 00:21:25,660 --> 00:21:29,930 אולי לא כמו יפה כפי שעשה בXcode, אבל היא עושה בכל זאת, 317 00:21:29,930 --> 00:21:32,860 ונוכל לומר רמז ולאחר מכן לתת לו איזשהו החוט 318 00:21:32,860 --> 00:21:37,070 רוצים לכתוב הודעה, 319 00:21:37,070 --> 00:21:41,300 ואם אני נותן לו לרגע, גם שם לב שאני מקבל שגיאה קטנה פה 320 00:21:41,300 --> 00:21:44,610 אומר שאנחנו צריכים להשתמש במשאב מחרוזת לזה, 321 00:21:44,610 --> 00:21:48,820 כך שאם אני נותן לו לעשות חלק מעבודתי קשה 322 00:21:48,820 --> 00:21:57,320 אני יכול לבחור במחרוזת זו, לעשות refractor אנדרואיד ומחרוזת אנדרואיד תמצית. 323 00:21:57,320 --> 00:22:00,570 אני יכול לתת לו את השם הזה, לכתוב הודעה, 324 00:22:00,570 --> 00:22:04,180 ומה שהוא עשה עכשיו זה שהחליף את המחרוזת בקידוד קשיח 325 00:22:04,180 --> 00:22:07,980 עם התייחסות למחרוזת בקובץ של המחרוזת. XML, 326 00:22:07,980 --> 00:22:10,200 מה שאומר שעכשיו זה כאן. 327 00:22:10,200 --> 00:22:15,560 >> ואני יודע שזה נראה טריוויאלי עבודה נוספת וכמו קטנה, בשלב זה, 328 00:22:15,560 --> 00:22:17,840 אבל כאשר יש לך חבורה שלמה של דברים, כל חבורה של מחרוזות, 329 00:22:17,840 --> 00:22:20,750 זה באמת חשוב, ובמיוחד ללוקליזציה 330 00:22:20,750 --> 00:22:26,920 כי כמו שציינתי קודם לכן, אנדרואיד היא מערכת הפעלה המשמשת ברחבי העולם מאוד 331 00:22:26,920 --> 00:22:35,950 שאתה יכול פשוט לעשות ערכים-en-SP או ערכים 332 00:22:35,950 --> 00:22:44,320 או משהו לשפות אנגליות או ספרדית או אחרות. 333 00:22:44,320 --> 00:22:50,210 ואז אתה כנראה לא היה לי את החוויה הזאת עדיין 334 00:22:50,210 --> 00:22:53,030 מכיוון שאנו לא עשינו הרבה JavaScript במונחים של תכנות אינטרנט, 335 00:22:53,030 --> 00:22:56,850 אבל אנחנו גם יכולים לעשות את התחום הזה שנקרא onClick לכפתור, 336 00:22:56,850 --> 00:23:02,350 וזו דרך של התייחסות בתוך הפריסה שלנו 337 00:23:02,350 --> 00:23:06,570 אנחנו רוצים שפונקציה מסוימת להיקרא בקוד המקור שלנו. 338 00:23:06,570 --> 00:23:09,420 אני הולך להתקשר sendMessage זה, 339 00:23:09,420 --> 00:23:13,390 וכדי לעשות את העבודה הזאת, כי פירושו בפעילות העיקרית כאן 340 00:23:13,390 --> 00:23:19,180 אני צריך ליצור פונקציה שהיא הציבור 341 00:23:19,180 --> 00:23:22,250 כך שניתן לגשת אליו על ידי הפריסה. 342 00:23:22,250 --> 00:23:25,930 זה מבוטל, כי אתה פשוט לא רוצה שזה יחזור כל דבר. 343 00:23:25,930 --> 00:23:37,760 אנחנו קוראים לזה sendMessage, וזה לוקח נוף, 344 00:23:37,760 --> 00:23:43,690 שהוא סוג של הקשר שאנחנו יכולים לעגן בשיטה זו 345 00:23:43,690 --> 00:23:47,160 כדי שתצוגת יחיד כאשר אנחנו מפעילים אותו. 346 00:23:47,160 --> 00:23:50,090 >> ואני לא יודע אם שמת לב היטב, לא היית שם לב, 347 00:23:50,090 --> 00:24:02,370 אבל בשלב הזה כאן 348 00:24:02,370 --> 00:24:06,930 השקפה זו היא סוג שעדיין לא נכלל, 349 00:24:06,930 --> 00:24:10,630 וכמובן, כל מה שאתה יודע מCS50 על לא כולל סוגים. 350 00:24:10,630 --> 00:24:13,120 הדבר הנחמד כמו Eclipse IDE שלו כי 351 00:24:13,120 --> 00:24:17,520 אם תשכחו לכלול סוג זה יהיה קו תחתון עם קצת אדום משורבט 352 00:24:17,520 --> 00:24:19,680 ולאחר מכן לתת לך את האפשרות לייבא את התצוגה. 353 00:24:19,680 --> 00:24:23,130 דרך מהירה לעשות זאת היא שינוי השליטה O, וזה יהיה לייבא 354 00:24:23,130 --> 00:24:27,070 את כל הקבצים שהוא צריך כדי. 355 00:24:27,070 --> 00:24:33,670 עכשיו שיש לנו sendMessage פונקציה זו, 356 00:24:33,670 --> 00:24:46,560 שהוא הולך לשלוח מסר מMainActivity לפעילות חדשה, 357 00:24:46,560 --> 00:24:55,230 אנחנו הולכים צריכים להשתמש בכוונה להשיק את הפעילות החדשה מזה, 358 00:24:55,230 --> 00:25:02,240 אז אנחנו בטח רוצים ליצור קבועים גלובלי או גם ובמיוחד מתמיד ציבור 359 00:25:02,240 --> 00:25:06,240 שיעזרו לנו לדעת איך אנחנו הולכים להפנות את המחרוזת 360 00:25:06,240 --> 00:25:09,090 משום שכאשר אנחנו יוצרים כוונה אנחנו לא רק קוראים פעילות חדשה, 361 00:25:09,090 --> 00:25:11,520 אבל אנחנו גם יכולים לתת לו חבילה של מידע. 362 00:25:11,520 --> 00:25:14,720 צרור הוא למעשה המונח שמשתמש באנדרואיד, 363 00:25:14,720 --> 00:25:21,470 וזה אומר שדרך של לתת לו נתונים נוספים, שזה לא יכול להיות מסוג נתונים מתוחכם מאוד, 364 00:25:21,470 --> 00:25:24,510 אבל אנחנו בהחלט יכולים לכלול booleans או מחרוזות או ints. 365 00:25:24,510 --> 00:25:29,750 דברים מהסוג הזה. 366 00:25:29,750 --> 00:25:34,230 >> אל תהסס לשאול על כל מוקדמות האלה כאן, 367 00:25:34,230 --> 00:25:36,900 ציבור, סופי, סטטי. 368 00:25:36,900 --> 00:25:38,610 הציבור הוא אחד החשוב. 369 00:25:38,610 --> 00:25:47,090 זה אומר שאנחנו יכולים לגשת למשתנה זה מקוד מקור קבצים אחרים 370 00:25:47,090 --> 00:25:49,590 למשל, כאשר אנו יוצרים פעילות חדשה. 371 00:25:49,590 --> 00:25:52,190 אנחנו יכולים להפנות את המחרוזת בתוך קובץ זה. 372 00:25:52,190 --> 00:25:57,160 אם זה פרטי, זה אומר שזה מוגבל לקובץ בודד זה כאן. 373 00:25:57,160 --> 00:26:02,430 אבל אנחנו קוראים לזה משהו כמו הודעה נוספת. 374 00:26:16,260 --> 00:26:23,300 עכשיו יש לנו עשינו את התפקיד הזה, ואם אנחנו לחצו על הכפתור, פונקציה זו תיקרא. 375 00:26:23,300 --> 00:26:27,970 אבל אנחנו לא עשינו שום דבר, כמובן, עם הפונקציה. 376 00:26:27,970 --> 00:26:33,130 מה שאנחנו רוצים לעשות עכשיו הוא ליצור פעילות חדשה, 377 00:26:33,130 --> 00:26:35,350 הפעילות שתושק בפועל. 378 00:26:35,350 --> 00:26:44,330 בליקוי החם שאנחנו יכולים לומר פעילות חדשה, אנדרואיד, פעילות ריקה. 379 00:26:44,330 --> 00:26:46,530 אנחנו יכולים לתת לו שם. 380 00:26:46,530 --> 00:26:57,050 בואו נקראים לזה פעילות התוצאה שלנו. 381 00:26:57,050 --> 00:27:04,430 ולאחר מכן ההורה ההיררכי תחום הזה הוא דרך של ציון 382 00:27:04,430 --> 00:27:08,180 אופן שבו הפעילויות קשורות זה לזה. 383 00:27:08,180 --> 00:27:11,020 כי זה אחד שיושק מהפעילות האחרת 384 00:27:11,020 --> 00:27:27,520 אנחנו צריכים לציין שיש לו את הפעילות העיקרית של ההורה. 385 00:27:27,520 --> 00:27:31,220 >> והייתי יכול ללחוץ על השדה הבא שם, מה שהיה אומר לנו 386 00:27:31,220 --> 00:27:33,830 כמה שדות אופציונליים שהוא כולל גם, 387 00:27:33,830 --> 00:27:38,800 אבל דבר נחמד על ADT, שוב, הוא שאם אני לגלול למטה כאן 388 00:27:38,800 --> 00:27:45,740 במניפסט לזכור שכל זה באמת היה כלול כברירת מחדל 389 00:27:45,740 --> 00:27:48,930 כשיצרנו את הפרויקט במקור, 390 00:27:48,930 --> 00:27:53,090 ועכשיו בגלל שאנחנו השתמשנו בזה ליצור פעילות חדשה ולא רק 391 00:27:53,090 --> 00:27:58,610 הוספת קובץ המחלקה שלנו כי אנחנו עברנו GUI עושים את זה 392 00:27:58,610 --> 00:28:01,930 זה כבר הוסיף את כל זה כדי להגשים עבורנו, 393 00:28:01,930 --> 00:28:06,020 שרק אומר שעכשיו מערכת ההפעלה לא תתלונן 394 00:28:06,020 --> 00:28:09,400 כאשר אנו מנסים להשיק את הפעילות הזו. 395 00:28:09,400 --> 00:28:14,620 וזה גם, כמובן, נתן לו תווית, שגם מופיעה במחרוזות. 396 00:28:14,620 --> 00:28:17,340 הוא עושה הרבה דברים על גב הסוף עבורנו. 397 00:28:17,340 --> 00:28:20,140 בכל אופן, עכשיו יש לנו פעילות שהתוצאה זו, כמו גם, 398 00:28:20,140 --> 00:28:23,810 קובץ קוד המקור הממשי בתיקיית המקור, 399 00:28:23,810 --> 00:28:33,540 ואתה יכול לראות, לגעת בקצרה על זה, 400 00:28:33,540 --> 00:28:37,790 בגלל שאנחנו סיפר לה על הורה היררכי זה 401 00:28:37,790 --> 00:28:46,640 זה נתן לי android.r.ide.home תחום זה בדבר נבחר onOption זה. 402 00:28:46,640 --> 00:28:49,020 >> מה זה בעצם אומר זה שיש עכשיו כפתור תפריט 403 00:28:49,020 --> 00:28:53,110 כי בפינה השמאלית העליונה של המסך 404 00:28:53,110 --> 00:29:02,220 אם אני חוזר לPowerPoint שבו דיברנו לראשונה על הבר פעולה 405 00:29:02,220 --> 00:29:05,380 בגלל ההורה ההיררכי עכשיו יש חץ קטן נחזור לכאן 406 00:29:05,380 --> 00:29:10,610 וזה לחיץ ולכן אנחנו צריכים להיות מסוגלים-אחרי שלמעשה להפעיל את זה App- 407 00:29:10,610 --> 00:29:15,360 לחזור לשם, וזו דרך שלנו לחסוך קצת קוד שם. 408 00:29:26,220 --> 00:29:40,180 עכשיו בתוך זה היטב, נראה שמתלונן על זה לרגע. 409 00:29:40,180 --> 00:29:43,910 בואו להגיב את זה. 410 00:29:43,910 --> 00:29:48,260 עכשיו, כדי באמת לקיים אינטראקציה עם 2 פעילויות אלה, 411 00:29:48,260 --> 00:29:55,020 אנחנו צריכים ליצור כוונה הכוללת את כל הנתונים הללו. 412 00:29:55,020 --> 00:29:58,950 בsendMessage עכשיו אני הולך להפלגה דרך כמה פיסות של קוד 413 00:29:58,950 --> 00:30:00,700 ומסביר כי כמו שאני הולך. 414 00:30:00,700 --> 00:30:06,280 כוונה, כמו שאמרתי, היא דרך להשקת פעילות אחד למשנו. 415 00:30:06,280 --> 00:30:10,000 כוונה היא לסוג. אנו יוצרים myIntent משתנה. 416 00:30:10,000 --> 00:30:13,980 >> ואת זה הוא למעשה אובייקט, וזו הסיבה שיש לנו לשיחה חדשה. 417 00:30:13,980 --> 00:30:18,500 זה שימוש בג'אווה נפוצה שם, אשר עשוי לקחת קצת זמן להתרגל אליו. 418 00:30:18,500 --> 00:30:23,900 זה אומר שאנחנו משתמשים בפעילות או MainActivity הכיתה, 419 00:30:23,900 --> 00:30:28,630 והכוונה שבדרך לוקחת פעילות שזה הולך מ 420 00:30:28,630 --> 00:30:36,060 והפעילות זה הולך, שאנו מכנים ResultActivity, 421 00:30:36,060 --> 00:30:38,170 וזה בכיתה שלו. 422 00:30:38,170 --> 00:30:41,720 כולל את זה. 423 00:30:41,720 --> 00:30:47,370 ואז כפי שציינתי בעבר, אנו מזהה שנתנו לשדה טקסט העריכה 424 00:30:47,370 --> 00:30:53,710 ותצוגת הטקסט, ולכן על מנת ללכוד תכנותי 425 00:30:53,710 --> 00:31:01,860 הטקסט שקיים בeditText 426 00:31:01,860 --> 00:31:06,710 אנו משתמשים בפונקציה זו נקראת findViewByID, 427 00:31:06,710 --> 00:31:13,660 וזה דומה למשהו שתוכל להשתמש כאשר מנסים להשיג משדות DOM. 428 00:31:13,660 --> 00:31:17,560 אולי דוד מדבר על זה בהרצאה. 429 00:31:17,560 --> 00:31:26,600 אבל זה רק דרך להגיע אלה-בגלל זה אנחנו לתייג את הדברים האלה בתחומים אלה. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 זה כבר autocompleting לי שם. 432 00:31:35,220 --> 00:31:42,010 >> ואז גם זה כולל editText עכשיו שיש לנו בתחום 433 00:31:42,010 --> 00:31:47,640 במסגרת התכנית שלנו, כל findViewByID שעשה היה בעצם 434 00:31:47,640 --> 00:31:50,870 אתה יכול לחשוב על זה כעל לתת לנו התייחסות לeditText ש. 435 00:31:50,870 --> 00:31:54,570 עכשיו אנחנו רוצים לקבל את המחרוזת או ההודעה 436 00:31:54,570 --> 00:32:00,670 בתוך editText שבו אנחנו יכולים לעשות על ידי שימוש ב- 437 00:32:00,670 --> 00:32:03,360 אתה יכול לחשוב על editText כstruct- 438 00:32:03,360 --> 00:32:07,600 אנחנו קוראים לזה אובייקט ב-Java-עם חבורה שלמה של שיטות שונות 439 00:32:07,600 --> 00:32:10,650 או שדות ותכונות קשורים אליו. 440 00:32:10,650 --> 00:32:15,510 כשאני אומר editText. זה נותן לי את ההזדמנות כדי לגשת 441 00:32:15,510 --> 00:32:19,770 שיטה כגון gettext, שתקבל את הטקסט הנוכחי 442 00:32:19,770 --> 00:32:23,990 בeditText ושלאחר מכן להמיר את זה באופן מפורש 443 00:32:23,990 --> 00:32:26,520 למחרוזת, ויש לנו שמרתי את ההודעה. 444 00:32:26,520 --> 00:32:32,730 עכשיו אנחנו באמת רוצים לעשות משהו עם זה כוונתנו נוצרה לפני כמה דקות. 445 00:32:32,730 --> 00:32:40,250 אני אשים נוספת כפי שהוא נקרא בכוונה, 446 00:32:40,250 --> 00:32:43,330 אשר, שוב, כמו שאמרתי קודם, זו דרך של יצירת החבילה 447 00:32:43,330 --> 00:32:45,980 עם חבורה שלמה של נתונים. 448 00:32:45,980 --> 00:32:50,920 הודעה נוספת היא התג שלנו ולכן אנחנו יודעים מה אנחנו חוסכים את זה מתחת, 449 00:32:50,920 --> 00:32:56,700 ואז אני כולל את ההודעה. 450 00:32:56,700 --> 00:33:04,870 >> ואז אנחנו באמת יכולים להתחיל את פעילותו על ידי מתן myIntent הפרמטר. 451 00:33:04,870 --> 00:33:10,630 וזה בעצם ישיק את הפעילות, אז עכשיו מאז ששודרגתי ל-Windows 8 452 00:33:10,630 --> 00:33:15,870 ייתכן שיש כמה טעויות כי להופיע לזמן קצר, אבל תנסה להתעלם מהם. 453 00:33:28,010 --> 00:33:30,310 ואת זה הוא אמולטור אנדרואיד. 454 00:33:30,310 --> 00:33:33,540 יש לקוות שקוד בעצם יצוץ ברגע. 455 00:33:33,540 --> 00:33:36,680 שוב, תוך התעלמות מכל הדברים קטנים האלה. 456 00:33:36,680 --> 00:33:42,290 אבל אמולטור אנדרואיד אתה יכול לחקות כל גרסה של מערכת ההפעלה 457 00:33:42,290 --> 00:33:45,180 מהמוקדמים אלה, סופגנייה, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 זה ג'לי בין 4.1. 459 00:33:49,640 --> 00:33:53,150 אבל כפי שאתה יכול לראות עכשיו, זה משהו שעשינו. 460 00:33:53,150 --> 00:33:55,780 יש לזה MainActivity, editText, כפתור. 461 00:33:55,780 --> 00:34:01,550 אני יכול להקליד כאן משהו, אבל מה שחסרנו לנו בשלב זה? 462 00:34:01,550 --> 00:34:05,190 אנחנו עשינו את השדה בMainActivity שהולך לשלוח את ההודעה 463 00:34:05,190 --> 00:34:08,570 לפעילות האחרת, אבל בשלב זה 464 00:34:08,570 --> 00:34:12,330 לא עשיתי שום דבר בפעילות האחרת, ולכן זה לא הולך לקבל שום דבר. 465 00:34:12,330 --> 00:34:18,800 בואו נסיים את החלק שלפני שאנחנו עוברים. 466 00:34:18,800 --> 00:34:25,760 >> פעילות תוצאה זו, מה שנצטרך לעשות היא שאנחנו נצטרך לעשות היא שאנחנו נצטרך- 467 00:34:25,760 --> 00:34:30,070 אנחנו יכולים גם להפנות את הכוונה במסגרת פעילות זו, 468 00:34:30,070 --> 00:34:33,580 ולכן אנחנו חייבים לתפוס את הכוונה, וזה באמת פשוט. 469 00:34:33,580 --> 00:34:40,780 זה פונקציה שנכללה בכיתת הפעילות, 470 00:34:40,780 --> 00:34:47,610 ולכן אנחנו יכולים פשוט לומר "קבלו את ההודעה מהכוונה". 471 00:34:47,610 --> 00:34:56,260 "MyIntent הכוונה = getIntent". 472 00:34:56,260 --> 00:35:00,030 וזה ייתן לנו עכשיו-myIntent הוא אובייקט, 473 00:35:00,030 --> 00:35:05,380 אשר היא התייחסות לכוונה שהובילה אותנו לפעילות זו. 474 00:35:05,380 --> 00:35:10,130 MainActivity קורא ונותן מידע נוסף כדי לגרום לפעילות. 475 00:35:10,130 --> 00:35:14,070 פעילות תוצאה נראית כעת בכוונה שהובילה אותו לכאן, 476 00:35:14,070 --> 00:35:23,540 ואנחנו יכולים לגשת להודעה שיצרנו בשנייה אחת, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, וזה יהיה השלמה אוטומטית עבורי. 478 00:35:26,370 --> 00:35:31,190 ואז לזכור, שהדרך בה אנו מתויגים קצת נתונים 479 00:35:31,190 --> 00:35:38,400 היה על ידי מתן אותו תחום זה ממש כאן, מחרוזת ציבור זה, 480 00:35:38,400 --> 00:35:42,080 המהווה את התג עבור המחרוזת שאנחנו באמת כלולות. 481 00:35:42,080 --> 00:35:48,450 >> אם אני אומר MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 זה ממש שם, וזה קצת כמו שם הפרמטר 483 00:35:52,200 --> 00:35:55,330 כשעברנו את קוד מהבקר לתבנית, 484 00:35:55,330 --> 00:35:57,680 כאשר היינו אומרים משהו חץ תואר. 485 00:35:57,680 --> 00:36:01,140 זה אותו הסוג של רעיון לשם. 486 00:36:01,140 --> 00:36:07,130 עכשיו, זוכר את זה. 487 00:36:07,130 --> 00:36:12,230 אנחנו גם יצרנו זה אוטומטי או אוטומטי שנוצר קוד 488 00:36:12,230 --> 00:36:16,410 לפעילות תוצאה מכך, הכולל את תצוגת הטקסט באמצע 489 00:36:16,410 --> 00:36:19,690 שאומר שלום עולם. 490 00:36:19,690 --> 00:36:27,510 אנו עלולים להפוך את זה גדול יותר. 491 00:36:27,510 --> 00:36:33,980 בואו נעשה את זה ראשון. 492 00:36:33,980 --> 00:36:39,550 אנחנו יכולים לעשות את זה 40 פיקסלים עצמאיים צפיפות. 493 00:36:39,550 --> 00:36:42,670 בואו נראה, זה סופר ענק. שיהיה בסדר. 494 00:36:42,670 --> 00:36:48,180 ולאחר מכן על מנת להפנות תצוגת טקסט הפרט הזה בקוד שלנו 495 00:36:48,180 --> 00:36:53,890 אנחנו נצטרך לתת לו תעודת זהות, 496 00:36:53,890 --> 00:36:58,350 וכדי לעשות את זה אנחנו אומרים @ + תעודת זהות, מה שאומר שאנחנו להקצות לו תעודת זהות. 497 00:36:58,350 --> 00:37:02,480 אם אנחנו רק אמרו @ id זה הייתי מניח שאנחנו התייחסות מזהה שכבר קיים, 498 00:37:02,480 --> 00:37:07,760 ובואו נקראים לresultTextView זה. 499 00:37:07,760 --> 00:37:10,570 ושים לב, כי בXML אין צורך בפסיק או כל דבר. 500 00:37:10,570 --> 00:37:12,380 כל מה שהוא בתוך תגים אלה. 501 00:37:12,380 --> 00:37:15,530 זה דומה מאוד ל-HTML בהרבה מובנים. 502 00:37:15,530 --> 00:37:22,760 >> זה לוקח קצת זמן להתרגל אליו, אבל סופו של דבר אתה מרגיש די נוח עם זה. 503 00:37:22,760 --> 00:37:31,320 בואו לעדכן את הטקסט לתצוגת טקסט התוצאה שלנו, 504 00:37:31,320 --> 00:37:35,650 וכפי שעשינו בעת שאנחנו מקבלים שדה טקסט העריכה בפעילות האחרת שלנו 505 00:37:35,650 --> 00:37:46,630 בMainActivity כאן אנו גם כמו כן, 506 00:37:46,630 --> 00:37:54,890 אנחנו תמצאו את התצוגה על ידי תעודת הזהות. 507 00:37:54,890 --> 00:37:59,640 ו-R, במקרה לא הזכיר את זה בעבר, הוא ההתייחסות לתיקיית המשאבים שלנו, 508 00:37:59,640 --> 00:38:05,350 ולאחר מכן מזהה הוא התייחסות לכל דבר בתיקיית המשאבים, כל תעודות הזהות, 509 00:38:05,350 --> 00:38:10,060 וresultTextView. 510 00:38:10,060 --> 00:38:13,010 ובדיוק כמו בעבר, resultTextView הוא אובייקט, 511 00:38:13,010 --> 00:38:15,780 מה שאומר שיש לו את כל מאפיינים אלה הקשורים אליו. 512 00:38:15,780 --> 00:38:20,610 כאשר אנו משתמשים בgettext לעריכת הטקסט לשדה הטקסט או בתצוגת הטקסט 513 00:38:20,610 --> 00:38:23,980 אנחנו יכולים להשתמש בפועל setText, 514 00:38:23,980 --> 00:38:26,960 ואז אנחנו כבר מצאנו את ההודעה מהכוונה, 515 00:38:26,960 --> 00:38:35,760 אז אני יכול לומר הודעה, וזה יהיה ממש להגדיר את ההודעה. 516 00:38:35,760 --> 00:38:41,820 >> זה לקחת רגע לשיגור, ואז נוכל לראות אם הוא מתרסק, 517 00:38:41,820 --> 00:38:48,670 אבל שאלות על תהליך שממש שם, זה סוג של אינטראקציה? 518 00:38:48,670 --> 00:38:51,490 במובנים רבים, זה ברור. 519 00:38:51,490 --> 00:38:53,960 הסיבה שאני עובר משהו פשוט יחסית 520 00:38:53,960 --> 00:38:57,330 הוא, שוב, בגלל שאתה מקבל כדי לראות את האינטראקציה בין הפריסה, 521 00:38:57,330 --> 00:38:59,520 את קוד המקור, איך אתה התייחסות לדברים 522 00:38:59,520 --> 00:39:07,680 ואולי לקבל קצת חשיפה לאיך ג'אווה עובדת שם. 523 00:39:07,680 --> 00:39:16,500 אם למעשה אני מקליד משהו בפה, כמו ohai, ולאחר מכן אני לוחץ על הכפתור, 524 00:39:16,500 --> 00:39:22,260 היא משיקה פעילות חדשה, ותצוגת הטקסט שאומרת ohai. 525 00:39:22,260 --> 00:39:27,640 זה מאוד פשוט, אבל אני מקווה שאחרי דוגמה 526 00:39:27,640 --> 00:39:32,310 אתה סוג של אינטראקציה לראות איך זה עובד, ועכשיו שבלגן של קבצים 527 00:39:32,310 --> 00:39:36,870 בצד השמאל לכל תיקיות הפרויקטים האלה, אני מקווה שאתה יודע איפה לחפש עכשיו. 528 00:39:36,870 --> 00:39:38,700 זה תחום קוד המקור שלך. 529 00:39:38,700 --> 00:39:41,760 >> פריסה היא באמת הדבר היחיד שתוכל להתמודד עם עד שכולל תמונות 530 00:39:41,760 --> 00:39:46,370 וdrawables או משהו כזה, והערכים, שיכלול מחרוזות, 531 00:39:46,370 --> 00:39:51,960 כפי שהזכרנו, ולאחר מכן סגנונות הוא משהו שהוא בערך כמו ה-CSS. 532 00:39:51,960 --> 00:39:56,410 לטפל בו מתי שאתה רוצה, אבל עד שאתה מרגיש בנוח עם הוספת כשרון נוסף 533 00:39:56,410 --> 00:40:02,520 ליישום שלך אין צורך לדאוג בקשר לזה יותר מדי. 534 00:40:02,520 --> 00:40:07,410 רק כדי לסיים את דבר אחד אתה בהחלט רוצה לכלול- 535 00:40:07,410 --> 00:40:13,010 בהנחה שאתה רוצה לשלב תכונות מגניבים ויחסוך לעצמך כמה נוסף קידוד 536 00:40:13,010 --> 00:40:16,460 יהיה לכלול ספריות צד 3. 537 00:40:16,460 --> 00:40:19,840 הנה בחור אנדרואיד הקטן עם הכובע שרלוק הולמס. 538 00:40:19,840 --> 00:40:23,040 זוהי פעולה שרלוק בר ספרייה, 539 00:40:23,040 --> 00:40:25,390 אשר בעצם אומר שבר הפעולה שראית קודם לכן, 540 00:40:25,390 --> 00:40:29,590 הנמצא כעת סטנדרטי בסנדוויץ' גלידה וג'לי בין, 541 00:40:29,590 --> 00:40:33,100 אם אתה רוצה להביא את זה סוג של חווית משתמש למשתמשים בגירסאות ישנות יותר 542 00:40:33,100 --> 00:40:39,290 ולהציל את עצמך מלדאוג איך המשתמש הוא הולך לניווט 543 00:40:39,290 --> 00:40:42,490 בגירסאות ישנות יותר, כאשר דבר שהוא לא שם אתה יכול לכלול ספרייה זו 544 00:40:42,490 --> 00:40:46,770 ואז אתה רק צריך הפניה ולא ברירת המחדל של אנדרואיד 545 00:40:46,770 --> 00:40:50,250 ספריות עבור בר הפעולה, ספריית עיון תמיכה זו. 546 00:40:50,250 --> 00:40:53,090 >> דברים כמו Scoreloop, זה נהדר אם אתה הולך לכולל משחק. 547 00:40:53,090 --> 00:40:57,280 זה מאפשר לך להוסיף לוחות מנהיג והישגים למשחקים. 548 00:40:57,280 --> 00:41:00,900 AdMob הוא דרך של לשים מודעות לתוך היישומים שלך 549 00:41:00,900 --> 00:41:02,900 במקרה שאתה רוצה לעשות קצת כסף משלו. 550 00:41:02,900 --> 00:41:05,730 כמובן, יש פייסבוק וטוויטר לשילוב יש 551 00:41:05,730 --> 00:41:08,170 אם ברצונך לשתף את הדברים בקלות, וכולי. 552 00:41:08,170 --> 00:41:15,120 Dropbox, כמו כן, ו-Google Analytics הוא שהתרשים מחפש אחד שם. 553 00:41:15,120 --> 00:41:19,070 זה יהיה חשוב מאוד אם אתה באמת רוצה לראות מי אינטראקציה 554 00:41:19,070 --> 00:41:25,800 עם האפליקציה שלך, או מי הוא, כיצד הם פועלים, וכולי. 555 00:41:25,800 --> 00:41:30,650 גוגל, כברירת מחדל, אומרת לך הרבה נתונים סטטיסטיים על מי שהתקין את האפליקציה שלך 556 00:41:30,650 --> 00:41:35,020 ומה יש להם טלפונים, אילו גירסאות של מערכת הפעלה יש להם. 557 00:41:35,020 --> 00:41:38,080 אבל אם אתה רוצה לראות שהוא משתמש בו על בסיס יומי וכיצד הם משתמשים בו 558 00:41:38,080 --> 00:41:42,860 אז אתה רוצה לכלול סוג כלשהו של מערכת מעקב כזה. 559 00:41:42,860 --> 00:41:44,990 >> כאשר אתה מוכן להפצת האפליקציה שלך 560 00:41:44,990 --> 00:41:46,930 אני לא צריך להיכנס לזה יותר מדי עומק. 561 00:41:46,930 --> 00:41:49,090 לחץ על הקישור כאן, שחק גוגל. 562 00:41:49,090 --> 00:41:51,080 זה היה אמור להיות בשוק אנדרואיד. 563 00:41:51,080 --> 00:41:53,470 הם rebranded הכל עם Google Play, 564 00:41:53,470 --> 00:41:55,230 אז עכשיו שאתה שולח לזה. 565 00:41:55,230 --> 00:41:57,140 זה מאוד פשוט. 566 00:41:57,140 --> 00:42:01,070 אתה חייב לכלול תיאור, כמה צילומי מסך. 567 00:42:01,070 --> 00:42:05,660 כמו שאמרתי, אין שום תהליך אישור כמו iOS. 568 00:42:05,660 --> 00:42:07,270 ולאן ללכת מכאן? 569 00:42:07,270 --> 00:42:09,450 הראיתי לך דוגמה פשוטה מאוד. 570 00:42:09,450 --> 00:42:13,270 אני מקווה שאם זה נראה נורא פשוט 571 00:42:13,270 --> 00:42:15,740 אז זה כנראה סימן טוב. 572 00:42:15,740 --> 00:42:20,080 אם אתה בכלל הרגיש קצת מבולבל או לא בטוח בדיוק מה שאני מקליד 573 00:42:20,080 --> 00:42:26,160 זה גם בסדר, אבל מכאן וללכת לגוגל מדריכים. 574 00:42:26,160 --> 00:42:28,330 זהו מקום מצוין להתחיל. 575 00:42:28,330 --> 00:42:31,460 זה ידבר אותך דרך מה שהם מצפים במונחים של עיצוב היישום, 576 00:42:31,460 --> 00:42:33,380 אופן שבו בדרך כלל המשתמשים לקיים אינטראקציה עם אותו. 577 00:42:33,380 --> 00:42:36,450 זה הרבה יותר בצורה החופשית יותר מאשר iOS, הייתי אומר, 578 00:42:36,450 --> 00:42:41,330 נראה שזה כמו נופי שולחנם, אני לא יודעים, זה הלחם והחמאה שלהם. 579 00:42:41,330 --> 00:42:44,690 כל מה שהוא תצוגת טבלה הזזה מעלה ומטה. 580 00:42:44,690 --> 00:42:48,160 עם אנדרואיד הם בהחלט לעודד אנשים להסתכל על זה מ 581 00:42:48,160 --> 00:42:51,720 חבורה שלמה של נקודות מבט שונות. 582 00:42:51,720 --> 00:42:56,000 >> כאשר אתה כולל את ערכת פיתוח התוכנה בADT זה 583 00:42:56,000 --> 00:43:03,010 כברירת מחדל יש לך חבורה שלמה של פרויקטים לדוגמה באנדרואיד. 584 00:43:03,010 --> 00:43:05,470 ממש כאן, אנדרואיד, לדוגמא פרויקט אנדרואיד. 585 00:43:05,470 --> 00:43:11,870 אם אני לוחץ על זה, אז אני יכול לבחור עבורו גרסה של מדגם פרויקטים ליישם. 586 00:43:11,870 --> 00:43:13,300 יש חבורה שלמה של דברים שונים כאן. 587 00:43:13,300 --> 00:43:16,690 זה מתחיל עם תאימות בר פעולה, 588 00:43:16,690 --> 00:43:24,610 מחזה תאוצה, גיבוי ושחזור, Bluetooth, בונה מחווה. 589 00:43:24,610 --> 00:43:28,930 JetBoy הוא משחק מדגם הם נותנים לך, כפי שהוא LunarLander. 590 00:43:28,930 --> 00:43:31,250 יש חבורה שלמה של יישומים לדוגמה כאן, 591 00:43:31,250 --> 00:43:35,290 ומיקוד שלהן בכל היבטים של ה-API של אנדרואיד שונים, 592 00:43:35,290 --> 00:43:41,520 והרעיון הוא שכפי שאתה עושה את הבקשה שלך 593 00:43:41,520 --> 00:43:44,110 אתה לא צריך ללמוד הכל על אנדרואיד כדי להפוך את היישום ל-Android. 594 00:43:44,110 --> 00:43:47,300 אתה רק צריך ללמוד על החלקים שאתה באמת הולך להשתמש בו. 595 00:43:47,300 --> 00:43:49,340 תראה לדוגמה אלה ספריות. 596 00:43:49,340 --> 00:43:51,510 תרגיש חופשי להעתיק ולהדביק את הקוד והחל אותו מחדש. 597 00:43:51,510 --> 00:43:53,850 זה דבר גדול להסתכל על קוד קשה יותר 598 00:43:53,850 --> 00:43:57,060 ולנסות להבין אותו, וזה כמובן במה CS50 599 00:43:57,060 --> 00:44:01,510 לעתים קרובות אנו נותנים לך כמויות גדולות של קוד מקור. 600 00:44:01,510 --> 00:44:04,620 תראה כמה מאלה, אם אתה הולך להשתמש בספריות דומות 601 00:44:04,620 --> 00:44:08,630 ולאחר מכן להחיל אותו על הקוד שלך. 602 00:44:08,630 --> 00:44:10,430 וכמובן, יש הדרכות. 603 00:44:10,430 --> 00:44:12,690 לחפש את הדרכות. 604 00:44:12,690 --> 00:44:17,020 מצאתי הרבה דברים טובים באינטרנט שיכול להביא לך עד מהירות 605 00:44:17,020 --> 00:44:20,080 עם מה שברים הם באמת ואיך אתה יכול להשתמש בם. 606 00:44:20,080 --> 00:44:22,240 >> חלק מאותם הדברים עיצוב החדשים, כמו שברים, 607 00:44:22,240 --> 00:44:26,840 באמת אין לך מה להיות מודאג, אלא אם אתה עושה 608 00:44:26,840 --> 00:44:30,560 די גדול ובהיקף פרויקט. 609 00:44:30,560 --> 00:44:32,510 הם דברים שגוגל מנסה לשלב פנימה 610 00:44:32,510 --> 00:44:35,570 Stackoverflow הוא כמובן חבר שלך. 611 00:44:35,570 --> 00:44:37,930 אני מקווה שאני מכרתי לך קצת על אנדרואיד, 612 00:44:37,930 --> 00:44:41,640 הבין שזה הרבה יותר קל להתקרב במונחים של רק שפת הקידוד. 613 00:44:41,640 --> 00:44:45,970 ג'אווה היא הייתי אומר שהרבה יותר קל להבין מאשר Objective-C. 614 00:44:45,970 --> 00:44:50,780 אנדרואיד גדל אני חושב שהרבה יותר מאשר iOS. 615 00:44:50,780 --> 00:44:54,890 אני מתכוון, הנתונים הוא גם שם, מלבד מה שאני חושב. 616 00:44:54,890 --> 00:44:56,920 זה הולך להיות בסביבה במשך זמן מה, 617 00:44:56,920 --> 00:45:00,880 והם כמה שנים מאחור במונחים של מחזורי התכנון שלהם, 618 00:45:00,880 --> 00:45:04,690 כך שזה סוג של מובן שהם עדיין עובדים על חלק מאלה 619 00:45:04,690 --> 00:45:09,080 שאלות עקביות, כמו בר פעולה זה דבר חדש עבורם עדיין, 620 00:45:09,080 --> 00:45:16,010 סוג של יצירת חוויית משתמש דומה בכל האפליקציות שלהם. 621 00:45:16,010 --> 00:45:20,650 אני מקווה שאתה יכול ללכת קדימה עכשיו ולפתוח אקליפס 622 00:45:20,650 --> 00:45:22,870 ולהפוך את יישומי אנדרואיד משלך. 623 00:45:22,870 --> 00:45:30,240 >> למישהו יש שאלות לפני שעוטפים את כל דבר? 624 00:45:30,240 --> 00:45:34,410 אני יכול להגיד לך שהתשובה היא 42. 625 00:45:34,410 --> 00:45:41,990 ובכן, שמח קידוד כולם, ומזל טוב. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]