การสร้างแอปพลิเคชันบน Android เป็นเรื่องยากหรือไม่ วิธีเริ่มพัฒนาสำหรับ Android งานเฉพาะข้อกำหนดทั่วไป
อุปกรณ์หลายร้อยล้านเครื่องที่ใช้ Android แพลตฟอร์มนี้เปิดอยู่ ดังนั้นใครๆ ก็สามารถเขียนแอปพลิเคชันของตนเองและแจกจ่ายผ่านไดเร็กทอรีโปรแกรมได้ เครื่องมือทั้งหมดนั้นฟรีและภาษาการเขียนโปรแกรมนั้นง่ายมาก เราจะบอกวิธีเขียนสำหรับ Android
แพลตฟอร์ม Android
Android เป็นระบบปฏิบัติการที่ได้รับความนิยมมากที่สุดในโลก Windows ได้เกษียณแล้วหลังจากครองอำนาจมาเป็นเวลา 30 ปี และตอนนี้ Android เป็นผู้นำระดับโลกอย่างแท้จริงเมื่อคุณพิจารณาถึงอุปกรณ์ทั้งหมดที่เชื่อมต่อกับอินเทอร์เน็ต: คอมพิวเตอร์ส่วนบุคคล, แล็ปท็อป, แท็บเล็ต และสมาร์ทโฟน บางคนอาจบอกว่า Linux เป็นผู้นำระดับโลกเพราะระบบปฏิบัติการ Android ทำงานอยู่ เคอร์เนลลินุกซ์แต่นี่คือความซับซ้อน
เครื่องมือที่จำเป็น
จะเริ่มเขียนแอปพลิเคชัน Android ได้ที่ไหน ก่อนอื่นให้ติดตั้งโปรแกรม Android Studio นี่คือสภาพแวดล้อมการพัฒนาอย่างเป็นทางการ (IDE) สำหรับ Android และเปิดตัวสำหรับ วินโดวส์, macOSและ ลินุกซ์- แม้ว่าเมื่อพัฒนาโปรแกรมสำหรับ Android คุณสามารถใช้สภาพแวดล้อมอื่นนอกเหนือจากนี้ได้ แอนดรอยด์สตูดิโอ.
หากคุณไม่ได้ติดตั้งไว้ในคอมพิวเตอร์ของคุณ ระบบปฏิบัติการ Androidและส่วนประกอบอื่นๆแล้ว แอนดรอยด์สตูดิโอจะดาวน์โหลดโดยอัตโนมัติ ระบบปฏิบัติการ Androidเป็นสภาพแวดล้อมการเขียนโปรแกรมสำหรับ Android จะต้องติดตั้งควบคู่ไปด้วย ไอดี- ใน SDKรวมถึงไลบรารี, ไฟล์ปฏิบัติการ, สคริปต์, เอกสารประกอบ ฯลฯ
มีประโยชน์ในการติดตั้งบนคอมพิวเตอร์และโปรแกรมจำลองของคุณ หุ่นยนต์เพื่อทำงานในนั้น แอปพลิเคชันเอพีเค- โปรแกรมจำลองยังมาพร้อมกับ แอนดรอยด์สตูดิโอ.
เมื่อติดตั้งเครื่องมือทั้งหมดแล้ว คุณสามารถสร้างโปรเจ็กต์แรกของคุณได้ แต่ก่อนอื่นคุณต้องเข้าใจแนวคิดพื้นฐาน: แอปพลิเคชัน Android คืออะไร
แอปพลิเคชัน Android คืออะไร?
ภาษาโปรแกรมมาตรฐานสำหรับแอปพลิเคชัน Android คือ ชวา- จริงอยู่ Google กำลังส่งเสริมอย่างแข็งขัน คอตลินเหมือนภาษาที่สามารถทดแทนได้ ชวา- สามารถเขียนใบสมัครได้เช่นกัน ซี++.
เครื่องมือ Android SDK รวบรวมโค้ดของคุณพร้อมกับข้อมูลและทรัพยากรต่างๆ ไฟล์เอพีเค (แพ็คเกจ Android) พร้อมนามสกุล .เอพีเค- ไฟล์นี้มีทุกสิ่งที่จำเป็นในการติดตั้งแอปพลิเคชันบนอุปกรณ์ Android
แอปพลิเคชัน Android แต่ละแอปพลิเคชันอาศัยอยู่ในแซนด์บ็อกซ์ของตัวเองซึ่งอยู่ภายใต้ กฎความปลอดภัยของลินุกซ์:
- แต่ละแอพพลิเคชั่นนั้น ผู้ใช้แต่ละรายบนระบบ Linux ที่มีผู้ใช้หลายราย
- ตามค่าเริ่มต้น ระบบจะกำหนด ID ผู้ใช้เฉพาะให้กับแต่ละแอปพลิเคชัน โดยที่แอปพลิเคชันไม่รู้จัก ระบบจะตั้งค่าการอนุญาตสำหรับไฟล์แอปพลิเคชันทั้งหมดเพื่อให้สามารถเข้าถึงได้โดย ID ผู้ใช้นี้เท่านั้น
- แต่ละกระบวนการมีเครื่องเสมือน (VM) ของตัวเอง ดังนั้นโค้ดที่รันจะถูกแยกออกจากแอปพลิเคชันอื่น
- ตามค่าเริ่มต้น แต่ละแอปพลิเคชันจะรันกระบวนการ Linux ของตัวเอง
มีข้อยกเว้นสำหรับกฎ เป็นไปได้ที่จะให้ ID ผู้ใช้ทั่วไปแก่แอปพลิเคชันสองตัวเพื่อให้สามารถแชร์ไฟล์ระหว่างกันได้ แอปพลิเคชันอาจขอสิทธิ์ในการเข้าถึงรายชื่อติดต่อ SMS เนื้อหาที่จัดเก็บ ข้อมูลกล้อง และข้อมูลอื่น ๆ ของผู้ใช้ แต่ผู้ใช้จะต้องให้สิทธิ์นี้อย่างชัดเจนก่อนที่โปรแกรมจะสามารถทำงานได้ตามปกติ
แอปพลิเคชัน Android ประกอบด้วยสี่รายการ ส่วนประกอบ- สิ่งเหล่านี้คือองค์ประกอบสำคัญของแอปพลิเคชัน แต่ละส่วนประกอบเป็นจุดเริ่มต้นที่ระบบหรือผู้ใช้สามารถเข้าสู่แอปพลิเคชันได้
- กิจกรรม(กิจกรรม) - องค์ประกอบส่วนต่อประสานผู้ใช้แบบโต้ตอบในแอปพลิเคชัน โดยทั่วไป กิจกรรมจะถูกกำหนดให้เป็นกลุ่มขององค์ประกอบอินเทอร์เฟซผู้ใช้ที่ใช้พื้นที่ทั้งหน้าจอ เมื่อคุณสร้างการโต้ตอบ โปรแกรมแอนดรอยจากนั้นคุณเริ่มต้นด้วยการสร้างคลาสย่อยตามคลาส กิจกรรม- กิจกรรมหนึ่งจะเปิดใช้งานอีกกิจกรรมหนึ่งและส่งผ่านข้อมูลเกี่ยวกับสิ่งที่ผู้ใช้ตั้งใจจะทำผ่านชั้นเรียน เจตนา(แปลจากภาษาอังกฤษว่า “เจตนา”) เป็นคำอธิบายเชิงนามธรรมของการดำเนินการที่กิจกรรมหนึ่งต้องดำเนินการเมื่อได้รับการร้องขอจากอีกกิจกรรมหนึ่ง หากคุณเปรียบเทียบแอป Android กับเว็บแอป กิจกรรมก็เหมือนกับหน้าต่างๆ และ Intent ก็เหมือนกับลิงก์ที่เชื่อมโยงระหว่างกัน เมื่อผู้ใช้คลิกไอคอนแอปพลิเคชัน กิจกรรมจะเริ่มขึ้น หลัก- อย่างไรก็ตาม สถานที่อื่นๆ (เช่น การแจ้งเตือน) สามารถส่งผู้ใช้ไปยังกิจกรรมอื่นๆ ได้โดยตรง
- บริการ(บริการ) - จุดเริ่มต้นสากลเพื่อให้แอปพลิเคชันทำงานในพื้นหลัง ส่วนประกอบนี้ดำเนินการเป็นเวลานานหรือทำงานในเบื้องหลัง กระบวนการระยะไกล- บริการไม่มีอินเทอร์เฟซแบบภาพ
- เครื่องรับกระจายเสียง(เครื่องรับการออกอากาศ) - ส่วนประกอบที่ช่วยให้ผู้เข้าร่วมหลายคนฟังความตั้งใจที่ออกอากาศโดยแอปพลิเคชันในระบบ
- ผู้ให้บริการเนื้อหา(ผู้ให้บริการเนื้อหา) - ส่วนประกอบที่จัดการชุดข้อมูลแอปพลิเคชันทั่วไป ระบบไฟล์, ฐานข้อมูล SQLite, อินเทอร์เน็ต หรือพื้นที่จัดเก็บข้อมูลถาวรใดๆ ที่แอปพลิเคชันสามารถเข้าถึงได้
ตอนนี้เรามาลองสร้างแอปพลิเคชันของเราเองสำหรับ Android
การสร้างแอปพลิเคชัน Android
จะสร้างแอปพลิเคชั่น Android อย่างง่ายได้อย่างไร? กระบวนการนี้ประกอบด้วยหลายขั้นตอน: การสร้างโปรเจ็กต์ใน Android Studio, การรันแอปพลิเคชันในโปรแกรมจำลอง, การสร้างอินเทอร์เฟซผู้ใช้ที่เรียบง่าย และการเพิ่มกิจกรรมใหม่ให้กับแอปพลิเคชัน
การสร้างโปรเจ็กต์ใน Android Studio
ในขั้นตอนแรกของการสร้างโปรเจ็กต์ ให้เลือกชื่อแอปพลิเคชัน ระบุโดเมนของบริษัทของคุณ เส้นทางไปยังโปรเจ็กต์ และชื่อของแพ็คเกจ ที่นี่เราระบุว่าจะเปิดใช้งานการสนับสนุนภาษาการเขียนโปรแกรมเสริมสำหรับโครงการหรือไม่ ซี++และ คอตลิน.
จากนั้น คุณจะต้องระบุแพลตฟอร์มเป้าหมายอย่างน้อยหนึ่งแพลตฟอร์มสำหรับบิลด์ เพื่อจุดประสงค์นี้ จะใช้ SDK และ AVD ซึ่งเป็นตัวจัดการอุปกรณ์เสมือนของ Android เครื่องมือนี้ช่วยให้คุณสามารถติดตั้งได้ แพ็คเกจ SDKซึ่งจะรองรับระบบปฏิบัติการ Android หลายเวอร์ชันและ API หลายระดับ (อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน)
คุณระบุเวอร์ชันขั้นต่ำของ Android ที่แอปพลิเคชันของคุณจะรองรับ ยิ่งเวอร์ชั่นต่ำ. ปริมาณมากขึ้นอุปกรณ์ที่แอปพลิเคชันจะทำงาน ยิ่งเวอร์ชันสูงเท่าใด ฟังก์ชัน API ที่สามารถใช้ได้ก็จะยิ่งสมบูรณ์ยิ่งขึ้นเท่านั้น
จากนั้นเลือกกิจกรรมหลักที่จะเปิดตัวเมื่อคุณคลิกที่ไอคอนแอปพลิเคชัน
ระบุชื่อสำหรับกิจกรรมนี้
คลิกปุ่มถัดไป จากนั้นคลิกเสร็จสิ้น - และหลังจากนั้นไม่กี่นาที บิลด์ Android Studio เปิดอินเทอร์เฟซ IDE
หากคุณเลือกมุมมองจากเมนูแบบเลื่อนลง หุ่นยนต์จากนั้นคุณจะสามารถดูไฟล์หลักของโปรเจ็กต์ของคุณได้ เช่น กิจกรรมหลักของเราเรียกว่า แอป > java > ru.skillbox.skillboxapp > FullscreenActivityเพราะตอนสร้างโปรเจ็กต์เราระบุแทนกิจกรรมหลักเพื่อเปิดแอปพลิเคชั่นในโหมดเต็มหน้าจอ ( เต็มจอ).
สุดท้าย ไฟล์สำคัญตัวที่สาม: แอป > รายการ > AndroidManifest.xmlซึ่งอธิบายคุณลักษณะพื้นฐานของแอปพลิเคชันและกำหนดส่วนประกอบทั้งหมด
เปิดเผยเนื้อหา
หุ่นยนต์:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
หุ่นยนต์: supportsRtl = "จริง"
หุ่นยนต์:theme="@style/AppTheme">
android:configChanges="orientation|keyboardHidden|ขนาดหน้าจอ"
หุ่นยนต์:ฉลาก="@string/app_name"
android:theme="@style/FullscreenTheme">
ทำงานบนอุปกรณ์จริง
แอปพลิเคชันที่เราสร้างเป็นกิจกรรมเดียวที่ทำงานในโหมดเต็มหน้าจอและไม่มี องค์ประกอบกราฟิก- อย่างไรก็ตาม แอปพลิเคชันนี้สามารถทำงานบนอุปกรณ์ Android จริงหรือในโปรแกรมจำลองได้แล้ว ในการดำเนินการนี้ คุณจะต้องเชื่อมต่อสมาร์ทโฟนหรือแท็บเล็ตของคุณในโหมดแก้ไขจุดบกพร่อง USB ซึ่งเปิดใช้งานอยู่ "การตั้งค่าสำหรับนักพัฒนา"บนเมนู "การตั้งค่า".
หากต้องการเปิดใช้งานในโปรแกรมจำลอง ให้คลิกปุ่มใน Android Studio วิ่งบนเมนู วิ่ง (Shift+F10)- ที่นั่นเราเลือก อุปกรณ์ที่เหมาะสมและเวอร์ชันระบบปฏิบัติการ แนวตั้งหรือแนวนอน (แนวนอน)
Android Studio จะติดตั้งโปรแกรมจำลองและเปิดใช้งาน
การสร้างส่วนต่อประสานผู้ใช้อย่างง่าย
ถึงเวลาที่จะสร้าง อินเทอร์เฟซพื้นฐานสำหรับหน้าจอหลัก ส่วนต่อประสานผู้ใช้ของแอปพลิเคชัน Android ถูกสร้างขึ้นผ่านลำดับชั้น เค้าโครง(เค้าโครงวัตถุ วิวกรุ๊ป) และ วิดเจ็ต(วัตถุ ดู- เลย์เอาต์คือคอนเทนเนอร์ที่มองไม่เห็นซึ่งควบคุมตำแหน่งของวิดเจ็ตลูกบนหน้าจอ วิดเจ็ตนั้นเป็นส่วนประกอบโดยตรงของ UI เช่น ปุ่มและช่องข้อความบนหน้าจอ
อินเทอร์เฟซกิจกรรมส่วนใหญ่จัดเก็บไว้ในไฟล์ XML และมันถูกสร้างขึ้นใน Android Studio ในตัวแก้ไขเค้าโครง
เปิดไฟล์อีกครั้ง แอป > ความละเอียด > เค้าโครง > Activity_fullscreen.xmlที่มุมซ้ายบนเราเห็น จานสีพร้อมวิดเจ็ตทั้งหมดที่สามารถเพิ่มลงบนหน้าจอได้ พวกมันถูกเพิ่มโดยการลากเมาส์ ตัวอย่างเช่น ลองลากช่องข้อความไปไว้บนหน้าจอ (ข้อความธรรมดา)- นี่คือวิดเจ็ต แก้ไขข้อความซึ่งผู้ใช้สามารถป้อนข้อความได้
คุณยังสามารถลากปุ่มและองค์ประกอบอื่นๆ ลงบนหน้าจอได้
การกระทำ กิจกรรม และการนำทางใหม่
สมมติว่าเราสร้างกิจกรรมด้วย ช่องข้อความและปุ่ม "ส่ง" หลังจากนี้คุณจะต้องเขียนสิ่งที่จะเกิดขึ้นอย่างแน่นอนเมื่อคุณคลิกปุ่ม "ส่ง" โดยไปที่โค้ด แอพ > java > กิจกรรมเต็มหน้าจอและเพิ่มวิธีการ ส่งข้อความ()ไปที่ชั้นเรียน กิจกรรมเต็มหน้าจอเพื่อว่าเมื่อผู้ใช้คลิกปุ่มก็จะเรียกเมธอดนี้
จากนั้นคุณจะต้องสร้าง "เจตนา" (class เจตนา) เพื่อย้ายจากกิจกรรมหนึ่งไปยังอีกกิจกรรมหนึ่ง กิจกรรมใหม่ การนำทาง และทุกสิ่งที่จำเป็นสำหรับแอปพลิเคชัน และแน่นอนว่า ลองคิดดูว่าโปรแกรมจะทำเงินได้อย่างไร (อ่านเพิ่มเติมในบทความอื่น)
หลักสูตรนักพัฒนามือถือ
มีการอธิบายรายละเอียดการพัฒนาแอปพลิเคชันทุกขั้นตอนในหลักสูตร ผู้เข้าร่วมโปรแกรม 12 เดือนนี้จะได้เรียนรู้วิธีสร้างแอปพลิเคชันสำหรับ Android และ iOS นอกจากนี้พวกเขาจะได้รับพอร์ตโฟลิโอของนักพัฒนาที่ครบครันและสามารถทำงานเป็นโปรแกรมเมอร์รุ่นเยาว์หรือพยายามเข้าร่วมในฐานะนักพัฒนาอินดี้นั่นคือนักปัจเจกชนที่สร้างแอปพลิเคชันด้วยตัวเองแจกจ่ายหารายได้และไม่แบ่งปันรายได้ กับใครก็ตามยกเว้นหน่วยงานภาษีที่บริจาคเงินให้กับงบประมาณ
ในคู่มือนี้ คุณจะได้เรียนรู้วิธีเริ่มพัฒนาสำหรับ Android ได้แก่: แอปพลิเคชันมือถือบนแพลตฟอร์ม Android Eclipse + SDK ปัจจุบันมีแนวทางมากมายในการพัฒนาและสร้างแอปพลิเคชันมือถือสำหรับ Android อุปกรณ์ฮาร์ดแวร์ที่ซับซ้อน แท็บเล็ตพีซี และอื่นๆ แพลตฟอร์มซอฟต์แวร์(ระบบปฏิบัติการ Symbian, iOS, WebOS, Windows Phone 7...) เปิดพื้นที่อันไม่มีที่สิ้นสุดสำหรับนักพัฒนา
ดังนั้นรายการแอปพลิเคชันที่จะเริ่มพัฒนาแอปพลิเคชันมือถือสำหรับ Android จึงมีมากมาย คุณควรเลือกแพลตฟอร์มใด? ฉันควรเรียนภาษาโปรแกรมอะไร ชุดแอปพลิเคชันใดให้เลือกสำหรับการวางแผนโครงการ? ในคู่มือนี้ คุณจะได้เรียนรู้วิธีเริ่มพัฒนาแอปพลิเคชันบนมือถือ แพลตฟอร์ม Androidระบบปฏิบัติการมือถือแบบเปิดของ Google
ทำไมต้องเป็นแพลตฟอร์ม Android?
แอนดรอยด์ - แพลตฟอร์มเปิดขึ้นอยู่กับเคอร์เนล Linux มีการติดตั้งบนอุปกรณ์หลายพันเครื่องจากผู้ผลิตหลากหลายราย Android นำเสนอแอปพลิเคชันสำหรับอุปกรณ์ทุกประเภทที่คุณสามารถจินตนาการได้ในรูปแบบของอุปกรณ์พกพาสมัยใหม่ - เข็มทิศดิจิตอล, กล้องวิดีโอ, GPS, เซ็นเซอร์ และอื่นๆ อีกมากมาย
เครื่องมือพัฒนา Android ฟรีช่วยให้คุณเริ่มสร้างสรรค์ผลงานได้ฟรีหรือเกือบจะได้อย่างรวดเร็ว แอปพลิเคชันฟรี- เมื่อคุณพร้อมที่จะแสดงให้โลกเห็นแอปของคุณ คุณสามารถเผยแพร่ผ่าน Android Market ได้ การเผยแพร่ไปยัง Android Market ต้องเสียค่าธรรมเนียมการลงทะเบียนเพียงครั้งเดียว ($25 ในขณะที่เขียน) และแตกต่างไปจากนี้ แอพสโตร์ Apple (ซึ่งเข้มงวดมากเกี่ยวกับคุณสมบัติ) ทำให้แอปของคุณพร้อมให้ดาวน์โหลดและซื้อหลังจากนั้น ภาพรวมอย่างรวดเร็ว- หากใบสมัครไม่ขัดต่อกฎและกฎหมาย
นี่คือบางส่วนอื่น ๆ ความแตกต่างของแอนดรอยด์ SDK ที่มอบสิทธิประโยชน์ให้คุณในฐานะนักพัฒนา:
- Android SDK ใช้งานได้กับ Windows, Mac และ Linux ดังนั้นคุณจึงไม่ต้องจ่ายค่าฮาร์ดแวร์ใหม่เพื่อเขียนแอป
- SDKสร้างไว้ใน Java หากคุณคุ้นเคยกับภาษา การเขียนโปรแกรมจาวาคุณได้ครึ่งทางของการเรียนรู้มันแล้ว
- เมื่อคำนึงถึงการเผยแพร่แอปพลิเคชันผ่าน Android Market ผู้ใช้หลายแสนคนจะสามารถใช้งานได้ทันที คุณไม่ได้จำกัดอยู่เพียงตลาดอย่างเป็นทางการเท่านั้น เนื่องจากมีข่าวลือว่า Amazon กำลังเตรียมการเพื่อเผยแพร่แอปพลิเคชัน ร้านค้าของตัวเองแอปพลิเคชัน Android
- เหมือนกับ เอกสารทางเทคนิค SDK กำลังสร้างทรัพยากรใหม่สำหรับนักพัฒนา Android แพลตฟอร์มดังกล่าวกำลังได้รับความนิยมเพิ่มขึ้นในหมู่ผู้ใช้และนักพัฒนา
พูดมาพอแล้ว - มาเริ่มพัฒนาแอพ Android กันดีกว่า!
การติดตั้ง Eclipse และ Android SDK
การวางแนวไปยังแพลตฟอร์ม Android ในระหว่างการพัฒนา
ก่อนที่คุณจะเริ่มเขียนแอปพลิเคชันสำหรับ Android คุณต้องดาวน์โหลด SDK สำหรับแพลตฟอร์ม Android แต่ละแพลตฟอร์มมี Android SDK เวอร์ชันของตัวเองซึ่งติดตั้งอยู่ในอุปกรณ์ของผู้ใช้ สำหรับ Android เวอร์ชัน 1.5 ขึ้นไป มีสองแพลตฟอร์ม: Android โอเพ่นซอร์สโครงการและกูเกิล
โครงการ Android Open Source เป็นแพลตฟอร์มโอเพ่นซอร์ส รหัสแหล่งที่มาแต่ไม่รวมส่วนขยายของ Google เช่น Google Maps- หากคุณไม่ต้องการใช้ Google API, ฟังก์ชันการทำงาน Google Mapsจะไม่สามารถใช้ได้สำหรับใบสมัครของคุณ เว้นแต่คุณจะมีเหตุผลเฉพาะเจาะจงในการดำเนินการนี้ ฉันขอแนะนำให้คุณกำหนดเป้าหมายอย่างใดอย่างหนึ่ง แพลตฟอร์มของ Googleเนื่องจากจะทำให้คุณสามารถใช้ส่วนขยายของ Google เองได้
- เลือกหน้าต่าง -> Android SDK และ AVD Manager
- คลิกแพ็คเกจที่พร้อมใช้งานในคอลัมน์ด้านซ้ายและตรวจสอบพื้นที่เก็บข้อมูลเพื่อแสดงรายการแพลตฟอร์ม Android ที่พร้อมใช้งาน
- คุณสามารถเลือกแพลตฟอร์มที่จะดาวน์โหลดจากรายการ หรือปล่อยให้เลือกทั้งหมดเพื่อดาวน์โหลดแพลตฟอร์มที่มีอยู่ทั้งหมด เมื่อเสร็จแล้ว คลิกติดตั้งที่เลือก และปฏิบัติตามคำแนะนำในการติดตั้ง
เมื่อดาวน์โหลดทุกอย่างเรียบร้อยแล้ว คุณก็พร้อมที่จะเริ่มพัฒนาสำหรับ Android
การสร้างโครงการ Android ใหม่
ตัวช่วยสร้างโปรเจ็กต์ Eclipse ใหม่จะช่วยคุณสร้าง แอป Androidสร้างไฟล์และโค้ดพร้อมที่จะรันทางด้านขวาของบล็อก นี้ วิธีที่รวดเร็วให้แน่ใจว่ามันใช้งานได้และดี จุดเริ่มเมื่อเริ่มต้นการพัฒนาแอปพลิเคชัน:
หลังจากคลิก Finish แล้ว Eclipse จะสร้างขึ้นมา โครงการใหม่ Android พร้อมเปิดตัวและพัฒนาสำหรับ Android จำได้ไหมเมื่อคุณบอกให้ Eclipse สร้างกิจกรรมที่เรียกว่า BrewClockActivity? นี่คือโค้ดที่ Android ใช้เพื่อรันแอปพลิเคชันจริงๆ รหัสที่สร้างขึ้นจะแสดงเป็น ข้อความง่ายๆในจิตวิญญาณของ 'สวัสดีชาวโลก'
แพ็คเกจ
ชื่อแพ็คเกจเป็นตัวระบุสำหรับแอปพลิเคชันของคุณ เมื่อถึงเวลาเผยแพร่ผลลัพธ์ไปยัง Android Market รหัสนี้จะใช้เพื่อติดตามการอัปเดตสำหรับแอปพลิเคชัน ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องแน่ใจว่ารหัสนี้ไม่ซ้ำกัน แม้ว่าที่นี่เราจะใช้ชื่อ com.example.brewclock สำหรับ การใช้งานจริงควรเลือกบางอย่างเช่น com.yourcompanyname.yourapplication
เวอร์ชัน SDK
เวอร์ชัน Min SDK (ชื่อนี้พูดเพื่อตัวเอง) เป็นเวอร์ชันสูงสุด เวอร์ชันต้น Android ที่แอปพลิเคชันจะทำงาน ใน Android ใหม่แต่ละรุ่น SDK จะเพิ่มและเปลี่ยนแปลงวิธีการต่างๆ เมื่อเลือก เวอร์ชัน SDK Android (และ Android Market) รู้ว่าแอปของคุณจะทำงานบนอุปกรณ์ที่ใช้แพลตฟอร์ม Android เวอร์ชันที่ระบุและสูงกว่าเท่านั้น
กำลังเปิดตัวแอปพลิเคชันของคุณ
ตอนนี้เรามาลองรันแอปพลิเคชันของเราใน Eclipse เนื่องจากนี่เป็นการรันครั้งแรก Eclipse จะถามว่าคุณกำลังทำงานกับโปรเจ็กต์ประเภทใด:
- เลือก Run->Run หรือกด Ctrl+F11
- เลือกแอปพลิเคชัน Android แล้วคลิกตกลง
Eclipse จะพยายามเรียกใช้แอปพลิเคชันบนอุปกรณ์ Android บน ช่วงเวลานี้อย่างไรก็ตาม คุณไม่มีอุปกรณ์ที่ทำงานอยู่ การควบคุมหุ่นยนต์ดังนั้นโปรเจ็กต์จะไม่ทำงานและคุณจะได้รับแจ้งให้สร้างอุปกรณ์ Android ใหม่ อุปกรณ์เสมือน(เอวีดี).
อุปกรณ์เสมือน (อุปกรณ์เสมือน Android)
Android Virtual Device (AVD) จำลองสภาพแวดล้อม Android ไม่ว่าจะเป็นโทรศัพท์มือถือหรือแท็บเล็ตพีซี คุณสามารถสร้างอุปกรณ์ AVD ได้มากเท่าที่คุณต้องการ ด้วยแพลตฟอร์ม Android เวอร์ชันต่างๆ สำหรับ AVD แต่ละตัว คุณสามารถกำหนดค่าพารามิเตอร์อุปกรณ์ต่างๆ ได้ โดยระบุถึงการมีแป้นพิมพ์จริง การรองรับ GP ความละเอียดของกล้อง และอื่นๆ
ก่อนที่คุณจะเปิดแอปพลิเคชัน คุณต้องสร้างอุปกรณ์ AVD เครื่องแรกของคุณด้วย Platform SDK (Google API, 1.6)
มาทำตอนนี้เลย:
- หากคุณยังไม่ได้ลองเรียกใช้แอปพลิเคชัน ให้คลิกเรียกใช้ (หรือแป้นพิมพ์ลัด Ctrl+F11)
- เมื่อมีคำเตือนปรากฏขึ้น คลิกใช่เพื่อสร้าง AVD
- คลิก ใหม่ ในกล่องโต้ตอบ Android SDK และ AVD Manager
- ติดตั้ง พารามิเตอร์ต่อไปนี้สำหรับ AVD: ชื่อ: Android_1.6 เป้าหมาย: Google APIs ( กูเกิลอิงค์.) - ขนาดการ์ด SD API ระดับ 4: สกิน 16 MiB ในตัว: ค่าเริ่มต้น (HVGA)
- คลิกสร้าง AVD
- ปิดกล่องโต้ตอบ Android SDK และ AVD Manager
กำลังรันโค้ด
ลองเรียกใช้แอปพลิเคชันอีกครั้ง (Ctrl + F11) Eclipse จะสร้างโปรเจ็กต์ของคุณและเปิดตัว AVD ใหม่ โปรดจำไว้ว่า AVD จำลองสภาพแวดล้อม Android อย่างสมบูรณ์ และคุณไม่จำเป็นต้องสังเกตกระบวนการบูตที่ค่อนข้างช้าซึ่งเกิดขึ้นกับอุปกรณ์จริงด้วยซ้ำ ด้วยเหตุนี้ เมื่อ AVD พร้อมใช้งาน ควรเปิดหน้าต่างไว้ในขณะที่คุณเขียนโปรแกรมเสร็จตลอดทั้งวัน
การพัฒนาระบบปฏิบัติการ Android: การออกแบบส่วนต่อประสานกับผู้ใช้
ขั้นตอนแรกประการหนึ่งในการสร้างโปรแกรมก็คือการออกแบบส่วนต่อประสานกับผู้ใช้ นี่เป็นภาพร่างสั้นๆ ของแอปพลิเคชันของเรา:
ผู้ใช้จะสามารถตั้งเวลาเดือดเป็นนาทีได้โดยใช้ปุ่ม + และ - เมื่อกด Start เวลาจะเริ่มนับถอยหลังตามจำนวนนาทีที่กำหนด หากผู้ใช้ยกเลิกการต้มโดยกดปุ่มอีกครั้ง เวลาจะเพิ่มขึ้นเมื่อตัวจับเวลาถึง 0
การสร้างอินเทอร์เฟซ
อินเทอร์เฟซผู้ใช้หรือสกิน Android ซึ่งอธิบายไว้ในเอกสารประกอบ XML สามารถพบได้ในโฟลเดอร์ res/layouts โค้ดเทมเพลตที่สร้างไว้แล้วโดย Eclipse ได้รับการประกาศใน res/layouts/main.xml และตามที่คุณสังเกตเห็น โค้ดกำลังทำงานอยู่ในโปรแกรมจำลองแล้ว
Eclipse มีเครื่องมือเลย์เอาต์ของตัวเองที่ให้คุณสร้างอินเทอร์เฟซแบบลากและวางบนหน้าจอได้ อย่างไรก็ตาม ในบางครั้ง การเขียนอินเทอร์เฟซใน XML และการใช้งานจะง่ายกว่า เค้าโครงกราฟิกเพื่อดูตัวอย่างผลลัพธ์
มาทำตอนนี้ด้วยการเปลี่ยน main.xml ตามภาพร่างด้านบน:
- เปิด res/layouts/main.xml ใน Eclipse ดับเบิลคลิกจากแพ็คเกจ Explorer
- เลือกแท็บ main.xml ที่ด้านล่างของหน้าจอเพื่อเข้าสู่โหมด XML
ตอนนี้เรามาเปลี่ยนเนื้อหาของ main.xml ดังต่อไปนี้:
# /res/layouts/main.xml
อย่างที่คุณเห็นมีไฟล์จำนวนมากใน Android XML แต่สิ่งนี้จะช่วยให้คุณควบคุมองค์ประกอบเกือบทั้งหมดบนหน้าจอได้
หนึ่งในที่สุด องค์ประกอบที่สำคัญอินเทอร์เฟซใน Android คือคอนเทนเนอร์เค้าโครง เช่น LinearLayout ที่ใช้ในตัวอย่างนี้ ผู้ใช้จะมองไม่เห็นองค์ประกอบเหล่านี้ แต่ทำหน้าที่เป็นคอนเทนเนอร์สำหรับองค์ประกอบอื่นๆ เช่น Buttons และ TextViews
เค้าโครงเค้าโครงมีหลายประเภท แต่ละประเภทใช้ในการสร้างเค้าโครงประเภทต่างๆ เช่นเดียวกับ LinearLayout และ AbsoluteLayout TableLayout อนุญาตให้ใช้อินเทอร์เฟซแบบตาราง คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในส่วนเค้าโครงออบเจ็กต์ทั่วไปของเอกสารประกอบ API
การเชื่อมโยงเค้าโครงของคุณเข้ากับโค้ด
หลังจากบันทึกเค้าโครงแล้ว ให้ลองเรียกใช้แอปพลิเคชันในโปรแกรมจำลองโดยกด Ctrl + F11 หรือคลิกไอคอน Run ใน Eclipse ตอนนี้ แทนที่จะแสดงข้อความ "Hello World" คุณจะเห็นว่า Android แสดงอินเทอร์เฟซของแอปแล้ว
หากคุณกดปุ่มใดๆ ไฟจะสว่างขึ้นตามที่คาดไว้ แต่ไม่ได้ทำอะไรนอกจากนั้น มาเขียนโค้ดต่อตามอินเทอร์เฟซเค้าโครง:
# /src/com/example/brewclock/BrewClockActivity.java ... นำเข้า android.widget.Button; นำเข้า android.widget.TextView; BrewClockActivity คลาสสาธารณะขยายกิจกรรม ( /** คุณสมบัติ **/ ปุ่มที่ได้รับการป้องกัน brewAddTime; ปุ่มที่ได้รับการป้องกัน brewDecreaseTime; ปุ่มที่ได้รับการป้องกัน startBrew; ข้อความที่ได้รับการป้องกัน brewCountLabel; ข้อความที่ได้รับการป้องกัน brewTimeLabel; ... )
ต่อไปเราจะเปลี่ยนการโทร onCreate การโทรนี้เกิดขึ้นเมื่อมีการเปิดตัวแอปพลิเคชันบน Android ในโค้ดที่สร้างโดย Eclipse นั้น onCreate จะสร้างมุมมองกิจกรรมบน R.layout.main นี่คือบรรทัดของโค้ดที่ให้ คำสั่งแอนดรอยถอดรหัสเค้าโครง เอกสารเอ็กซ์เอ็มแอลและแสดงให้ผู้ใช้เห็น
วัตถุทรัพยากร
ใน Android นั้น R เป็นออบเจ็กต์พิเศษที่ถูกสร้างขึ้นโดยอัตโนมัติเพื่อให้สามารถเข้าถึงทรัพยากรของโปรเจ็กต์ของคุณ (เลย์เอาต์ แถว เมนู ไอคอน...) ภายในโค้ด ทรัพยากรแต่ละรายการได้รับการกำหนดรหัสของตัวเอง ในไฟล์โครงร่าง (ด้านบน) สิ่งเหล่านี้คือแอตทริบิวต์ @+id XML เราจะใช้สิ่งเหล่านี้เพื่อผูกปุ่มและ TextViews ในเลย์เอาต์ของเรา:
# /src/com/example/brewclock/BrewClockActivity.java ... คลาสสาธารณะ BrewClockActivity ขยายกิจกรรม ( ... โมฆะสาธารณะ onCreate(Bundle SavedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); / / เชื่อมต่อองค์ประกอบอินเทอร์เฟซกับคุณสมบัติ brewAddTime = (ปุ่ม) findViewById(R.id.brew_time_up); brewDecreaseTime = (ปุ่ม) findViewById(R.id.brew_time_down); (TextView ) findViewById(R.id.brew_count_label); brewTimeLabel = (TextView) findViewById(R.id.brew_time) )
การรับฟังเหตุการณ์ต่างๆ
ในการตรวจจับเมื่อมีการกดปุ่ม เราจำเป็นต้องฟังปุ่มเหล่านั้น คุณอาจคุ้นเคยกับ Callback Listener หรือ Callback จากเฟรมเวิร์กอื่นๆ เช่น Javascript/JQuery หรือ Rails
Android มีกลไกที่คล้ายกันโดยจัดให้มีอินเทอร์เฟซ Listener เช่น OnClickListener ซึ่งกำหนดวิธีการที่จะเริ่มทำงานเมื่อมีเหตุการณ์เกิดขึ้น อินเทอร์เฟซ OnClickListener จะแจ้งเตือนแอปพลิเคชันของคุณเมื่อผู้ใช้คลิกบนหน้าจอหรือปุ่มเฉพาะ นอกจากนี้ คุณต้องบอกแต่ละปุ่มเกี่ยวกับ ClickListener:
# /src/com/example/brewclock/BrewClockActivity.java ... // อย่านำเข้า // `android.content.dialoginterface.OnClickListener` นำเข้า android.view.View.OnClickListener; คลาสสาธารณะ BrewClockActivity ขยายกิจกรรมการใช้งาน OnClickListener ( ... โมฆะสาธารณะ onCreate (Bundle saveInstanceState) ( ... // ตั้งค่า ClickListeners brewAddTime.setOnClickListener (นี้); brewDecreaseTime.setOnClickListener (นี้); startBrew.setOnClickListener (นี้); ) .. . โมฆะสาธารณะ onClick(ดู v) ( // สิ่งที่ต้องทำ: เพิ่มโค้ดเพื่อจัดการการแตะปุ่ม ) )
ต่อไป เราจะเพิ่มโค้ดที่จัดการการคลิกปุ่มแต่ละครั้งของเรา นอกจากนี้ เรายังเพิ่มคุณสมบัติกิจกรรมใหม่สี่คุณสมบัติที่จะอนุญาตให้ผู้ใช้สามารถตั้งค่าและติดตามเวลาการต้มเบียร์: จำนวนการชงที่ทำได้ และการจับเวลาได้เริ่มต้นแล้วหรือไม่
# /src/com/example/brewclock/BrewClockActivity.java ... คลาสสาธารณะ BrewClockActivity ขยายการใช้งานกิจกรรม OnClickListener ( ... protected int brewTime = 3; protected CountDownTimer brewCountDownTimer; protected int brewCount = 0; protected boolean isBrewing = false; . .. โมฆะสาธารณะ onClick (ดู v) ( ถ้า (v == brewAddTime) setBrewTime (brewTime + 1); else if (v == brewDecreaseTime) setBrewTime (brewTime -1); else if (v == startBrew) ( if( isBrewing) stopBrew(); อย่างอื่น startBrew();
โปรดทราบว่าเรากำลังใช้คลาส CountDownTimer ที่จัดทำโดย Android ทำให้ง่ายต่อการสร้างและเรียกใช้ตัวนับแบบง่ายและรับการแจ้งเตือนตามช่วงเวลาปกติในขณะที่การนับถอยหลังดำเนินไป คุณจะใช้สิ่งนี้ในวิธี startBrew อ่านรายละเอียดด้านล่าง
วิธีการต่อไปนี้เป็นแบบจำลองพฤติกรรมของแถบเลื่อนในการตั้งเวลาทำอาหาร การเริ่มและหยุดการทำอาหาร ตลอดจนตัวนับ นอกจากนี้เรายังเริ่มต้นคุณสมบัติ brewTime และ brewCount ใน onCreate
แนวทางปฏิบัติที่ดีที่จะย้ายโค้ดนี้ไปยังคลาสโมเดลที่แยกจากกัน แต่เพื่อความง่าย เราจะเพิ่มโค้ดลงใน BrewClockActivity:
# /src/com/example/brewclock/BrewClockActivity.java ... คลาสสาธารณะ BrewClockActivity ขยายการใช้งานกิจกรรม OnClickListener ( ... โมฆะสาธารณะ onCreate(Bundle SavedInstanceState) ( ... // ตั้งค่าการชงเริ่มต้น setBrewCount(0 ); setBrewTime(3); /** * ตั้งค่าสัมบูรณ์สำหรับจำนวนนาทีที่จะชง * ไม่มีผลใด ๆ หากการชงกำลังทำงานอยู่ * @param นาทีที่จะชง */ public void setBrewTime ( int minutes) ( if(isBrewing) return; brewTime = minutes; if(brewTime< 1) brewTime = 1; brewTimeLabel.setText(String.valueOf(brewTime) + "m"); } /** * Set the number of brews that have been made, and update * the interface. * @param count ใหม่จำนวนการชง */ public void setBrewCount(int count) ( brewCount = count; brewCountLabel.setText(String.valueOf(brewCount)); ) /** * เริ่มจับเวลาการชง */ public void startBrew() ( // สร้าง CountDownTimer ใหม่เพื่อติดตามเวลาชง brewCountDownTimer = new CountDownTimer(brewTime * 60 * 1000, 1000) ( @Override public void onTick(long millisUntilFinished) ( brewTimeLabel.setText(String.valueOf(millisUntilFinished / 1000) + "s"); ) @แทนที่โมฆะสาธารณะ onFinish() ( isBrewing = false; setBrewCount(brewCount + 1); brewTimeLabel.setText("Brew Up!"); startBrew.setText("Start"); ) ); brewCountDownTimer.start(); "หยุด"); isBrewing = true; ) /** * หยุดตัวจับเวลาการชง */ โมฆะสาธารณะ stopBrew() ( if(brewCountDownTimer != null) brewCountDownTimer.cancel(); isBrewing = false; startBrew.setText(" Start" ); ) ... )
เฉพาะส่วนเฉพาะของ Android ของโค้ดนี้เท่านั้นที่สร้างการแมปป้ายกำกับโดยใช้เมธอด setText ใน startBrew เราสร้างและเรียกใช้ CountDownTimer เพื่อเริ่มการนับถอยหลังแบบวินาทีต่อวินาทีเมื่อการต้ม/ต้มเสร็จสิ้น โปรดทราบว่าเรากำลังกำหนดผู้ฟัง CountDownTimer (onTick และ onFinish) onTick จะถูกเรียกทุกๆ 1,000 มิลลิวินาที (1 วินาที) ในขณะที่ onFinish จะถูกเรียกเมื่อตัวจับเวลาถึงศูนย์
หลีกเลี่ยงความซับซ้อนในการเขียนโปรแกรม Android
เพื่อบันทึกคู่มือการพัฒนานี้ไว้ภายใต้ แอนดรอยด์ที่เรียบง่ายฉันตั้งใจใช้ป้ายกำกับโดยตรงในโค้ด (เช่น "Brew Up!", "Start", "Stop") จริงๆ แล้วนี่ไม่ใช่แนวปฏิบัติที่ดี เนื่องจากจะทำให้สตริงเหล่านี้ค้นหาและเปลี่ยนแปลงได้ยากในโปรเจ็กต์ขนาดใหญ่
Android มอบวิธีการจัดเก็บของคุณที่เรียบร้อย สตริงข้อความแยกจากโค้ดอ็อบเจ็กต์ R R ช่วยให้คุณสามารถกำหนดสตริงของแอปพลิเคชันทั้งหมดในไฟล์ XML (res/values/strings.xml) ซึ่งสามารถเข้าถึงได้ในโค้ดผ่านลิงก์ ตัวอย่างเช่น:
# /res/values/strings.xml
ตอนนี้ถ้าคุณต้องการเปลี่ยน Brew Up! อย่างอื่นคุณต้องเปลี่ยนครั้งเดียวในไฟล์ strings.xml หากแอปพลิเคชันของคุณมีไฟล์โค้ดหลายสิบไฟล์ การมีป้ายกำกับในที่เดียวก็สมเหตุสมผลดี!
กำลังตรวจสอบ BrewClock
เราเขียนโค้ดเสร็จแล้ว และถึงเวลา "ทดลองใช้" แอปพลิเคชันแล้ว กด "Run" หรือ Ctrl + F11 เพื่อเรียกใช้ BrewClock ในโปรแกรมจำลอง หากทุกอย่างเป็นไปด้วยดี คุณจะเห็นอินเทอร์เฟซการตั้งค่า และคุณพร้อมที่จะชงชาแล้ว! ลองตั้งเวลาชงที่แตกต่างกันแล้วกด Start เพื่อนับถอยหลัง
สรุป
ในบทนำสั้นๆ เกี่ยวกับการพัฒนา Android นี้ คุณได้ดาวน์โหลดและติดตั้ง Android SDK และปลั๊กอิน Eclipse Android Development Tools (ADT) คุณได้ตั้งค่าโปรแกรมจำลองหรืออุปกรณ์เสมือนเพื่อทดสอบแอปพลิเคชันของคุณ คุณยังได้สร้างแอปพลิเคชัน Android ที่ใช้งานได้ซึ่งเน้นแนวคิดสำคัญหลายประการ , ซึ่งคุณจะใช้ในการพัฒนาแอพพลิเคชั่น Android ในอนาคต
หวังว่าสิ่งนี้จะกระตุ้นความอยากของคุณในการสร้างแอปบนอุปกรณ์เคลื่อนที่และการทดลองในสาขาที่น่าตื่นเต้นนี้ ข้อเสนอของแอนดรอยด์ ทางที่ดีเพื่อเขียนแอปพลิเคชันสำหรับอุปกรณ์เคลื่อนที่ทั้งในปัจจุบันและอนาคตจำนวนหนึ่ง หากคุณได้เขียนแอปพลิเคชันที่ใช้งานได้สำหรับแพลตฟอร์มนี้แล้ว อย่าลืมแจ้งให้เราทราบในความคิดเห็น!
โปรดทราบว่าสตูดิโอมีการอัปเดตอยู่ตลอดเวลา รูปร่างหน้าต่างและรายละเอียดอื่นๆ อาจแตกต่างไปจากนี้ ตัวอย่างนี้- บทเรียนส่วนใหญ่บนเว็บไซต์ตอนนี้ใช้เวอร์ชัน 2.3 เมื่อวันที่ 25 ตุลาคม 2017 เวอร์ชัน 3.0 เปิดตัวซึ่งมีการเปลี่ยนแปลงมากมาย ในบทความนี้ฉันพยายามแทนที่รูปภาพทั้งหมดด้วยเวอร์ชันใหม่
Java ใช้เป็นภาษาการเขียนโปรแกรมสำหรับ Android XML ใช้เพื่อสร้างส่วนต่อประสานกับผู้ใช้
ที่นี่เราควรพูดนอกเรื่องเล็กน้อย เพิ่มใน Android Studio 3.0 การสนับสนุนอย่างเต็มที่ภาษา Kotlin ใหม่ พัฒนาโดย Kotans Google ได้ประกาศแผนการที่จะทำให้ภาษา "แมว" ใหม่เป็นภาษาหลัก แต่คุณต้องเข้าใจว่ามีตัวอย่างจำนวนมากที่เขียนด้วยภาษา Java ในช่วงหลายปีที่ผ่านมา หากคุณยังใหม่กับการเขียนโปรแกรม จะเป็นการดีกว่าถ้าคุณมุ่งเน้นไปที่ Java ในช่วงแรกของการฝึกอบรม คุณจะพบคำตอบสำหรับคำถามได้ง่ายขึ้น Kotlin จะไม่หนีคุณไปการเปลี่ยนมาใช้ในภายหลังจะง่ายกว่า แต่กระบวนการย้อนกลับจะยากกว่า เมื่อคุณคุ้นเคยกับ Java เพียงเล็กน้อย คุณก็สามารถศึกษาตัวอย่างใน Kotlin ไปพร้อมๆ กันได้ ขณะนี้ Google กำลังเขียนเอกสารสำหรับ Kotlin อย่างจริงจัง แต่ก่อนหน้านี้ การเปลี่ยนแปลงที่สมบูรณ์ยังห่างไกลแม้จะไม่ถึง 50% ก็ตาม อีกไม่นานฉันก็จะเรียนบทเรียนโดยใช้ Kotlin ด้วย แต่จะเกิดขึ้นในเร็วๆ นี้
ตามธรรมเนียมที่ก่อตั้งขึ้นในศตวรรษที่ผ่านมา โปรแกรมเมอร์ทุกคนจะต้องเขียนว่า “Hello World!” (Hello World!) เป็นโปรแกรมแรก เวลากำลังเปลี่ยนไปและสวัสดีชาวโลก! ถูกสร้างขึ้นแล้วในสภาพแวดล้อมการพัฒนา Android เพื่อวัตถุประสงค์ด้านความเข้ากันได้และ โปรแกรมเมอร์สมัยใหม่จะต้องเขียนโปรแกรม Hello Kitty! (สวัสดีคิตตี้!) ยอมรับว่าการทักทายลูกแมวนั้นสมเหตุสมผลมากกว่าการทักทายทั้งโลก
ดังนั้นเราจะแบ่งปัญหาออกเป็นสองส่วน ขั้นแรก เรามารันโปรแกรมที่เสร็จแล้วโดยไม่ต้องเขียนโค้ดใดๆ เพื่อให้แน่ใจว่าเครื่องมือทั้งหมดได้รับการติดตั้งอย่างถูกต้อง และเราสามารถสร้างและดีบักโปรแกรมได้ จากนั้นเราจะเขียนโปรแกรมแรกของเรา
การสร้างโครงการใหม่
เปิดสตูดิโอแล้วเลือก ไฟล์ | ใหม่ | โครงการใหม่...- กล่องโต้ตอบตัวช่วยสร้างจะปรากฏขึ้น
สนาม ชื่อแอปพลิเคชัน- ชื่อที่จำง่ายของแอปพลิเคชันที่จะแสดงในชื่อแอปพลิเคชัน โดยค่าเริ่มต้นคุณอาจมีอยู่แล้ว ใบสมัครของฉัน- ลองแทนที่ด้วย . โดยพื้นฐานแล้วคุณสามารถเขียนได้ที่นี่และ สวัสดีชาวโลก!แต่ Android มีความสามารถที่ยอดเยี่ยมในการส่งออก เส้นที่จำเป็นบนโทรศัพท์ด้วย ภาษาที่แตกต่างกัน- สมมติว่าโทรศัพท์ของชาวอเมริกันจะมีจารึกเป็นภาษาอังกฤษ และโทรศัพท์ของรัสเซียจะมีจารึกเป็นภาษารัสเซีย ดังนั้น การตั้งค่าเริ่มต้นจะใช้รูปแบบภาษาอังกฤษเสมอ และเตรียมสตริงที่แปลเป็นภาษาท้องถิ่นในภายหลัง จำเป็นต้องพัฒนานิสัยการใช้รหัสที่ถูกต้องทันที
สนาม โดเมนบริษัททำหน้าที่ระบุเว็บไซต์ของคุณ ตามค่าเริ่มต้น ชื่อของคุณในฐานะผู้ใช้คอมพิวเตอร์อาจปรากฏอยู่ที่นั่น หากคุณมีเว็บไซต์ คุณสามารถป้อนที่อยู่หรือตั้งชื่อได้ ชื่อที่ป้อนจะถูกจดจำและจะถูกแทนที่โดยอัตโนมัติในโปรเจ็กต์ใหม่ถัดไป ออมทรัพย์อย่างไรก็ตาม
สนามที่สาม ที่ตั้งโครงการให้คุณเลือกตำแหน่งดิสก์สำหรับโปรเจ็กต์ที่สร้างขึ้น คุณสามารถสร้างโฟลเดอร์แยกต่างหากบนดิสก์สำหรับโปรเจ็กต์ของคุณและจัดเก็บโปรแกรมไว้ในนั้นได้ สตูดิโอจำได้ โฟลเดอร์สุดท้ายและจะแนะนำการบันทึกให้โดยอัตโนมัติ หากจำเป็น คุณสามารถตั้งค่าตำแหน่งอื่นสำหรับแต่ละโปรเจ็กต์ได้โดยใช้ปุ่มสามจุด
สนาม ชื่อแพ็คเกจสร้างแพ็คเกจ Java พิเศษตามชื่อของคุณจากฟิลด์ก่อนหน้า Java ใช้เวอร์ชันกลับหัวในการตั้งชื่อแพ็กเกจ ดังนั้นจึงใช้เวอร์ชันกลับหัวก่อน รุแล้วตามด้วยชื่อของไซต์ แพ็คเกจทำหน้าที่ระบุแอปพลิเคชันของคุณโดยไม่ซ้ำกันเมื่อคุณแจกจ่าย หากมีคนร้อยคนเขียนแอปพลิเคชันชื่อ "Cat" หนึ่งร้อยรายการ ก็จะไม่ชัดเจนว่าแอปพลิเคชันที่นักพัฒนา Vasily Kotov เขียนอยู่ที่ไหน และแอปพลิเคชันพร้อมชื่อแพ็คเกจ ru.vaskakotov.catหาง่ายกว่า โปรดทราบว่า Google ใช้แพ็คเกจนี้ในเอกสารประกอบ com.ตัวอย่างเพื่อวัตถุประสงค์ในการสาธิต หากคุณเพียงแค่คัดลอกตัวอย่างจากเอกสารประกอบและพยายามโพสต์ลงใน Google Play ในแบบฟอร์มนี้ คุณจะล้มเหลว - ชื่อนี้ถูกสงวนไว้และห้ามใช้ในร้านแอปพลิเคชัน ปุ่ม แก้ไขช่วยให้คุณสามารถแก้ไขเวอร์ชันที่เตรียมไว้ได้ ตัวอย่างเช่น คุณกำลังเขียนแอปพลิเคชันแบบกำหนดเอง และคุณต้องใช้ชื่อแพ็กเกจที่ได้รับอนุมัติจากลูกค้า ไม่ใช่ชื่อเริ่มต้นของคุณ
ด้านล่างนี้คือสองตัวเลือกสำหรับการเขียนโปรแกรมด้วย C++ และ Kotlin เรายังไม่ได้พิจารณาตัวเลือกเหล่านี้ เมื่อคุณเขียนใน Kotlin ให้ทำเครื่องหมายในช่องที่เหมาะสม อย่างไรก็ตาม คุณสามารถแปลงโปรเจ็กต์จาก Java เป็น Kotlin และแปลงในภายหลังได้โดยใช้เครื่องมือสตูดิโอ
คลิกที่ปุ่ม ต่อไปและไปยังหน้าต่างถัดไป ที่นี่เราเลือกประเภทของอุปกรณ์ที่เราจะพัฒนาแอปพลิเคชันของเรา ในกรณีส่วนใหญ่ เราจะเขียนสำหรับสมาร์ทโฟนและแท็บเล็ต ดังนั้นเราจึงปล่อยช่องทำเครื่องหมายไว้ถัดจากรายการแรก คุณยังสามารถเขียนแอปพลิเคชันสำหรับ Android TV, Android Wear, แอนดรอยด์ออโต้และสิ่งต่างๆ ของ Android
นอกเหนือจากการเลือกประเภทอุปกรณ์แล้ว คุณต้องเลือกเวอร์ชันขั้นต่ำของระบบที่แอปพลิเคชันจะทำงานด้วย เลือกตัวเลือกของคุณ ในขณะนี้ Google รองรับเวอร์ชันที่ขึ้นต้นด้วย API 7 ซึ่งออกไลบรารีความเข้ากันได้พิเศษสำหรับอุปกรณ์รุ่นเก่า แต่คุณสามารถเลือกตัวเลือกที่ทันสมัยกว่านี้ได้ ฉันมีโทรศัพท์ด้วย เวอร์ชันขั้นต่ำ Android 4.4 ดังนั้นฉันจึงตั้งค่าตัวเลือกนี้
ชวา
โฟลเดอร์ ชวามีสามโฟลเดอร์ย่อย - ใช้งานได้และสำหรับการทดสอบ โฟลเดอร์การทำงานมีชื่อแพ็คเกจของคุณและมีไฟล์คลาส ตอนนี้มีคลาสหนึ่ง กิจกรรมหลัก- คุณสามารถปล่อยให้โฟลเดอร์ทดสอบอยู่คนเดียวได้ หากคุณทราบวิธีการทำงานของแพ็คเกจใน Java คุณสามารถสร้างโฟลเดอร์และโฟลเดอร์ย่อยใหม่ได้
ความละเอียด
โฟลเดอร์ ความละเอียดมีไฟล์ทรัพยากรแบ่งออกเป็นโฟลเดอร์ย่อยแยกกัน
- วาดได้- ทรัพยากรกราฟิกจะถูกจัดเก็บไว้ในโฟลเดอร์เหล่านี้ - รูปภาพและไฟล์ xml ที่อธิบายสีและรูปร่าง
- เค้าโครง- โฟลเดอร์นี้มีไฟล์ xml ที่อธิบายลักษณะที่ปรากฏของแบบฟอร์มและ องค์ประกอบต่างๆแบบฟอร์ม หลังจากสร้างโปรเจ็กต์แล้ว ก็จะมีไฟล์อยู่ที่นั่นแล้ว กิจกรรม_main.xmlซึ่งมีหน้าที่รับผิดชอบในการปรากฏของหน้าต่างแอปพลิเคชันหลัก
- มิมป์แมป- ไอคอนแอปพลิเคชันจะถูกเก็บไว้ที่นี่ภายใต้ ความละเอียดที่แตกต่างกันหน้าจอ
- ค่านิยม- ทรัพยากรสตริง ทรัพยากรสี ธีม สไตล์ และขนาดที่เราสามารถใช้ในโครงการของเราอยู่ที่นี่ ที่นี่คุณสามารถดูไฟล์ สี.xml, strings.xml, สไตล์.xml- ในโครงการเก่าก็มีไฟล์ด้วย ขนาด.xmlตอนนี้มันได้ถูกละทิ้งไปแล้ว
เมื่อเวลาผ่านไป คุณจะสามารถนำทางโฟลเดอร์เหล่านี้ได้อย่างอิสระ ตราบใดที่คุณไม่รบกวนตัวเอง
การทำงานร่วมกับโครงการ - สวัสดีชาวโลก!
ดังที่ได้กล่าวไปแล้วว่าโปรแกรม สวัสดีชาวโลก!ถูกสร้างขึ้นในโครงการใหม่แล้ว ดังนั้นคุณไม่จำเป็นต้องเขียนอะไรเลยด้วยซ้ำ คุณเพียงแค่ต้องเปิดโครงการและรับโปรแกรมสำเร็จรูป!
ในการศึกษาคุณต้องเปิดไฟล์สองไฟล์ - กิจกรรมหลัก(น่าจะเปิดอยู่แล้ว) และ กิจกรรม_main.xml (ความละเอียด/เค้าโครง) ในส่วนกลางของสตูดิโอ หากไฟล์ไม่เปิดอยู่ ให้เปิดด้วยตนเอง ดับเบิลคลิกสำหรับการแก้ไข (หรือดู) ด้วยวิธีนี้คุณสามารถเปิดไฟล์ใดก็ได้ที่คุณต้องการ
อย่าเพิ่งศึกษาโค้ดในตอนนี้ แต่เพียงคลิกที่สามเหลี่ยมสีเขียว วิ่ง(Shift+F10) บนแถบเครื่องมือที่ด้านบนของสตูดิโอเพื่อเปิดแอปพลิเคชัน
หากคุณไม่ได้กำหนดค่าโปรแกรมจำลอง แสดงว่าคุณยังไม่ได้อ่านบทช่วยสอนก่อนหน้านี้ ตั้งค่าโปรแกรมจำลองก่อนแล้วรันโปรเจ็กต์อีกครั้ง หรือเชื่อมต่ออุปกรณ์จริง
หากทุกอย่างถูกต้อง โปรแกรมของคุณจะโหลดในโปรแกรมจำลองหรือบนอุปกรณ์ ยินดีด้วย!
ดังนั้นหากโปรแกรมเริ่มทำงานแล้วคุณจะเห็นหน้าต่างแอปพลิเคชันพร้อมข้อความที่จารึกไว้ ชื่อของโปรแกรมจะเป็น . บรรทัดทั้งหมดเหล่านี้สามารถพบได้ในไฟล์ ความละเอียด/ค่า/strings.xmlและแก้ไขได้หากต้องการ
ทีนี้มาดูโค้ดกัน มาศึกษากันก่อน กิจกรรม_main.xml.
คุณสามารถรับชมได้ในสองโหมด - ออกแบบและ ข้อความ.
เปิดในโหมด ข้อความ.
นี่เป็นโค้ดเทมเพลตใหม่ที่เปิดตัวใน Android Studio 2.3 ในเดือนมีนาคม 2017 ก่อนหน้านี้มีการใช้รหัสอื่นกับ เลย์เอาต์แบบสัมพัทธ์(และก่อนหน้านี้ก็มีโค้ดอื่นด้วย เค้าโครงเชิงเส้น- หากคุณพบตัวอย่างเก่าๆ สตูดิโอมีเมนูบริบทที่จะช่วยคุณแปลงโค้ดเก่าให้เป็นโค้ดใหม่
เล็กน้อยเกี่ยวกับโค้ด XML มีภาชนะพิเศษ ข้อจำกัดเค้าโครงซึ่งมีส่วนประกอบอยู่ TextViewมีไว้สำหรับเอาต์พุตข้อความ
ตอนนี้เรามาดูโค้ด Java ( MainActivity.java)
แพ็คเกจ ru.alexanderklimov.helloworld; นำเข้า android.support.v7.app.AppCompatActivity; นำเข้า android.os.Bundle; MainActivity คลาสสาธารณะขยาย AppCompatActivity ( @Override protected void onCreate(Bundle saveInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ) )
คุณมีไฟล์คลาสเปิดอยู่ตรงหน้าคุณ ซึ่งมีชื่อคลาสอยู่ กิจกรรมหลักจับคู่ชื่อไฟล์กับนามสกุล ชวา(นี่คือกฎที่ตั้งขึ้น ภาษาจาวา- บรรทัดแรกประกอบด้วยชื่อของแพ็คเกจ - เราระบุไว้เมื่อสร้างโครงการ ( ชื่อแพ็คเกจ- ถัดไปคือบรรทัดสำหรับการนำเข้าคลาสที่จำเป็นสำหรับโปรเจ็กต์ เพื่อประหยัดพื้นที่จึงแบ่งออกเป็นกลุ่มเดียว แฉมัน หากวันหนึ่งคุณเห็นชื่อคลาสถูกส่งออก สีเทาซึ่งหมายความว่าไม่ได้ใช้ในโครงการ (hint คำสั่งนำเข้าที่ไม่ได้ใช้) และคุณสามารถลบบรรทัดพิเศษได้อย่างปลอดภัย นอกจากนี้ยังสามารถลบได้โดยอัตโนมัติ (กำหนดค่าได้)
ถัดมาเป็นการประกาศของคลาสเองซึ่งสืบทอดมา ( ขยาย) จากคลาสนามธรรม กิจกรรม- นี่คือคลาสพื้นฐานสำหรับหน้าจอแอปพลิเคชันทั้งหมด เป็นไปได้ว่าคุณจะมี AppCompatActivityหากเมื่อสร้างโครงการคุณปล่อยให้รองรับอุปกรณ์เก่า (ช่องทำเครื่องหมาย ความเข้ากันได้ย้อนหลัง (App Compat)- เวอร์ชันเก่าไม่มีสารพัดที่ปรากฏหลังจาก Android 4 ดังนั้นจึงถูกสร้างขึ้นสำหรับพวกเขา ห้องสมุดพิเศษความเข้ากันได้ที่ทำให้คุณสามารถใช้ผลิตภัณฑ์ใหม่จากใหม่ได้ เวอร์ชัน Androidในโปรแกรมเก่า ระดับ AppCompatActivityนี่คือสิ่งที่เกี่ยวกับไลบรารีความเข้ากันได้ ถือว่าเธอเป็นญาติที่ยากจนของฐาน กิจกรรม- มีวิธีการและคลาสตัวช่วยที่จำเป็นทั้งหมด แต่ชื่ออาจแตกต่างกันเล็กน้อย และคุณไม่สามารถผสมชื่อได้ หากคุณกำลังใช้คลาสจากไลบรารีความเข้ากันได้ ให้ใช้วิธีที่เหมาะสม
ในขั้นตอนที่ต่างกัน มีการใช้ชื่อคลาสกิจกรรมที่แตกต่างกัน ซึ่งคุณอาจพบในโปรเจ็กต์เก่าๆ เช่น มีการใช้ครั้งแรก กิจกรรมแฟรกเมนต์, แล้ว กิจกรรม ActionBarและเผยแพร่เมื่อวันที่ 22 เมษายน พ.ศ. 2558 เวอร์ชันใหม่ไลบรารีความเข้ากันได้และปัจจุบันใช้คลาสใหม่ AppCompatActivity.
ในชั้นเรียนเราเห็นวิธีการ บนสร้าง()– มันถูกเรียกเมื่อแอปพลิเคชันสร้างและแสดงมาร์กอัปกิจกรรม วิธีการนี้ถูกทำเครื่องหมายเป็น มีการป้องกันและมาพร้อมกับคำอธิบายประกอบ @แทนที่(แทนที่จากคลาสฐาน) สรุปอาจเป็นประโยชน์กับคุณ หากคุณพิมพ์ชื่อเมธอดผิด คอมไพลเลอร์สามารถเตือนคุณได้ว่าคลาสพาเรนต์ไม่มีเมธอดดังกล่าว กิจกรรม.
ลองดูที่รหัสวิธีการ
เส้น super.onCreate (savedInstanceState);เป็นตัวสร้างของคลาสพาเรนต์ที่ดำเนินการที่จำเป็นสำหรับกิจกรรมที่จะทำงาน คุณไม่จำเป็นต้องแตะเส้นนี้ปล่อยไว้ไม่เปลี่ยนแปลง
บรรทัดที่สอง setContentView(R.layout.activity_main);มีความสนใจมากขึ้น วิธี setContentView(int)รวมเนื้อหาจากไฟล์มาร์กอัป เป็นอาร์กิวเมนต์เราระบุชื่อไฟล์โดยไม่มีนามสกุลจากโฟลเดอร์ ความละเอียด/เค้าโครง- ตามค่าเริ่มต้น โปรเจ็กต์จะสร้างไฟล์ในนั้น กิจกรรม_main.xml- คุณสามารถเปลี่ยนชื่อไฟล์หรือสร้างไฟล์ของคุณเองด้วยชื่อได้ cat.xmlและเชื่อมต่อกับกิจกรรมของคุณ จากนั้นโค้ดจะมีลักษณะดังนี้:
SetContentView(R.layout.cat);
เพื่อให้โค้ดของคุณเรียบร้อย พยายามปฏิบัติตามมาตรฐาน หากคุณกำลังสร้างมาร์กอัปสำหรับกิจกรรม ให้ใช้คำนำหน้า กิจกรรม_สำหรับชื่อไฟล์ ตัวอย่างเช่น มาร์กอัปสำหรับกิจกรรมที่สองอาจถูกตั้งชื่อ กิจกรรม_วินาที.xml.