คุณสมบัติที่ซ่อนอยู่ของการพัฒนา Android?


121

ฉันแปลกใจที่ยังไม่มีโพสต์ฟีเจอร์ที่ซ่อนอยู่ของ Android ในซีรีส์ฟีเจอร์ที่ซ่อนอยู่ซึ่งฉันติดตามมาระยะหนึ่งแล้ว

ชุดคุณลักษณะที่ซ่อนอยู่เหมาะสำหรับผู้ที่ยังไม่คุ้นเคยกับภาษาใดภาษาหนึ่ง มันแสดงให้เห็นเชือกและเทคนิคที่มีค่าบางอย่างในที่เดียว ฉันคิดว่ามันเป็นความคิดที่ยอดเยี่ยม แม้แต่ผู้เชี่ยวชาญบางครั้งก็ยังพบกลเม็ดที่พวกเขาไม่เคยได้ยินมาก่อน

ฉันกำลังเริ่มการพัฒนา Android และฉันชอบที่จะได้ยินเกี่ยวกับคุณสมบัติที่ซ่อนอยู่เคล็ดลับเทคนิคและข้อผิดพลาด

ต่อไปนี้: คุณลักษณะที่ซ่อนอยู่ของAndroidคืออะไร?

คำตอบ:


105

หวังว่าจะไม่มีคุณสมบัติที่ซ่อนอยู่และซ่อนอยู่มากเกินไป แต่นี่คือคุณสมบัติที่ไม่ค่อยรู้จักและไม่ใช้งานง่ายสำหรับ Android ซึ่งจะทำให้ชีวิตของคุณง่ายขึ้นและแอปของคุณดีขึ้นอย่างแน่นอน

  • ทั้งหมดซอร์สโค้ดสำหรับแพลตฟอร์มและทุกแอปที่ไม่ใช่ของ Google สามารถใช้ได้สำหรับคุณที่จะเรียกดูดาวน์โหลด, ยืมหรือขโมยจากโครงการ Android ที่มาเปิด
  • การใช้เฟรมเวิร์กทรัพยากรการสร้างแอปเวอร์ชันที่แปลเป็นภาษาท้องถิ่นทำได้ง่ายเพียงแค่เพิ่มโฟลเดอร์ย่อยที่มีคำอธิบายประกอบใหม่ (เช่นค่า - fr) ที่มีไฟล์ XML ที่มีสตริงในภาษาอื่น (เช่นฝรั่งเศส) Android จะเลือกโฟลเดอร์ที่เหมาะสมในขณะรันไทม์ให้คุณ
    • กรอบทรัพยากรเดียวกันช่วยให้คุณสามารถใช้เค้าโครงอื่นสำหรับการกำหนดค่าฮาร์ดแวร์ที่แตกต่างกันความหนาแน่นของพิกเซลหน้าจอและอุปกรณ์อินพุตเพียงแค่วางไว้ในโฟลเดอร์ที่มีชื่อ
  • ตั้งแต่ Android 1.6 แอปของคุณสามารถสร้างผลลัพธ์ที่จะปรากฏในผลลัพธ์จากการค้นหาช่อง Quick Search บนหน้าจอหลัก นี้เป็นที่รู้จักกันเป็นคำแนะนำการค้นหาที่กำหนดเอง
  • การใช้Intents and Intent Filtersแอปของคุณสามารถสร้างและให้บริการคำขอที่ไม่ระบุตัวตนเพื่อให้การดำเนินการสำเร็จ (เช่นแอป Where สามารถขอจองโต๊ะจากแอป Open Table )
    • พวกเขาสามารถขอแอปพลิเคชันที่ไม่รู้จักเพื่อดำเนินการให้เสร็จสิ้นโดยไม่จำเป็นต้องรู้ว่าแอปพลิเคชันใดสามารถตอบสนองคำขอนั้นได้
    • แอปของคุณสามารถตอบสนองคำขอจากแอปที่ไม่รู้จักเพื่อดำเนินการให้เสร็จสมบูรณ์โดยไม่จำเป็นต้องรู้ว่าแอปใดจะดำเนินการตามคำขอ เล่นตรงนี้และคุณสามารถสร้างแอพ Twitter 'ค่าเริ่มต้น' หรือแอพจอง ฯลฯ
  • การใช้การเตือนภัยคุณสามารถตั้งค่าให้แอปทำงานให้เสร็จตามเวลาที่กำหนดไว้ได้แม้ว่าแอปของคุณจะไม่ทำงานก็ตาม
    • คุณสามารถประหยัดแบตเตอรี่ได้มากโดยใช้เมธอดsetInexactRepeatingเพื่อจัดกำหนดการเหตุการณ์ปกติ (เช่นการสำรวจเซิร์ฟเวอร์หรือการอัปเดต) มันจะซิงโครไนซ์การเตือนจากหลายแอพให้เกิดขึ้นพร้อมกันแทนที่จะเป็น adhoc
  • การใช้กรอบการตั้งค่าคุณสามารถสร้างหน้าจอการตั้งค่าสำหรับแอปของคุณในลักษณะเดียวกับการตั้งค่าระบบ คุณสามารถรวมหน้าจอการตั้งค่าระบบ (เช่นความปลอดภัยและตำแหน่งที่ตั้ง) ไว้ในลำดับชั้นการตั้งค่าของแอปพลิเคชันของคุณ
  • เมื่อใช้AudioTrack และ AudioRecord API คุณสามารถสตรีมข้อมูลเสียงได้โดยตรงจากและไปยังบัฟเฟอร์เสียง PCM

35

เครื่องมือในไดเรกทอรี / เครื่องมือของ SDK สมควรได้รับการกล่าวถึง:

  • นักออกแบบของเราประทับใจเป็นพิเศษdraw9patchที่ช่วยออกแบบกระดุมที่ยืดหยุ่นได้ เขาให้ทรัพย์สินแก่ฉันจากที่นั่นและฉันเปลี่ยนจากสีพื้นหลังเป็น 9 แพทช์ที่วาดได้และตอนนี้เรามีปุ่มที่กำหนดเองมุมโค้งมน ฯลฯ ยืดออกเพื่อให้พอดีกับข้อความ
  • ddmsซึ่งรวมอยู่ในปลั๊กอิน Eclipse ด้วย มันทรงพลังมหาศาล แต่ฉันใช้มันเพื่อจับภาพหน้าจอ
  • adb- โต้ตอบกับอุปกรณ์หรือโปรแกรมจำลองของคุณจากบรรทัดคำสั่ง ฉันใช้สิ่งนี้เพื่อติดตามบันทึกจากอุปกรณ์ของฉันในหน้าต่างเทอร์มินัลบนเดสก์ท็อปแม้ว่าฉันจะพบว่ามีประโยชน์สำหรับการติดตั้งและถอนการติดตั้งแอปที่ทำงานผิดปกติ
  • sqlite3 - เหมาะสำหรับการโต้ตอบกับฐานข้อมูลที่ติดตั้งและลองใช้แบบสอบถาม
  • apkbuilder, zipalign, aapt- ดีสำหรับการทำงานหัวขาดสร้าง
  • monkey สำหรับการทดสอบแอปของคุณแบบฟัซซ์

ฉันก็จะออกซิงเกิ้ลสามการออกแบบสำหรับผลการดำเนินงาน , การตอบสนองและSeamlessnessแต่ฉันยังต้องการที่จะเพิ่มที่สี่การเข้ารหัสสำหรับ (Battery) ชีวิต

แม้ว่า Javadoc จะเบาบางลงเล็กน้อยในบางครั้ง แต่ก็ช่วยให้คุณดูแหล่งที่มาได้ไม่สิ้นสุด

นอกจากนี้ยังมีประโยชน์มากที่จะมีแอปตัวอย่างมากมายที่Googler เขียนขึ้นเพื่อสร้างตรวจสอบและดูว่าพวกเขาทำได้อย่างไร


1
คุณพลาดรูปแบบเครื่องมือที่ดีอื่น ๆ
100rabh

อีกหนึ่งสิ่งที่ขาดหายไปที่ฉันใช้ตลอดเวลาคือ hierarchyviewer
Artem Russakovskii

25

ฉันเดาว่าฉันจะเริ่มแล้ว


คุณลักษณะที่ซ่อนอยู่ที่ดีฉันคิดว่าเป็นแนวทางปฏิบัติที่ดีที่สุดของเอกสาร Android มีรายการเคล็ดลับที่ยอดเยี่ยมมากมายสำหรับการออกแบบแอปที่ตอบสนองและรวดเร็ว

ส่วนแนวทางปฏิบัติที่ดีที่สุดได้แก่ :

  • รองรับหลายหน้าจอ (หลายขนาดและความละเอียด)
  • แนวทาง UI
    • การออกแบบไอคอน
    • การออกแบบวิดเจ็ตแอพ
    • กิจกรรมและการออกแบบงาน
    • การออกแบบเมนู
  • การออกแบบเพื่อประสิทธิภาพ
  • การออกแบบเพื่อการตอบสนอง
  • การออกแบบเพื่อความไร้รอยต่อ

คุณลักษณะที่ซ่อนอยู่อีกประการหนึ่งคือเอกสารเหล่านี้พร้อมใช้งานแบบออฟไลน์โดยเป็นส่วนหนึ่งของ SDK ตอนแรกฉันโหลดหน้าสองสามหน้าทุกวันสำหรับการนั่งรถไฟตอนเช้า แต่ไม่จำเป็นต้องทำอย่างนั้นอีกต่อไปหลังจากพบในไดเรกทอรี SDK


หากคุณใช้ Eclipse คุณจะสังเกตเห็นว่ามันไม่ได้จัดรูปแบบไฟล์ XML ได้ดีนักและเมื่อเป็นเช่นนั้นมันก็ไม่สอดคล้องกันมาก (บางครั้งมันก็แยกแอตทริบิวต์ตามบรรทัดใหม่บางครั้งก็ไม่ได้) ในการแก้ไขคุณสามารถกด Ctrl-Shift-F (รูปแบบอัตโนมัติ) กฎที่ใช้ Ctrl-Shift-F อยู่ใน Window-> Preferences-> XML-> XML Files-> Editor


1
คนสุดท้ายจะเป็นส่วนหนึ่งของเวิร์กโฟลว์ของฉันอย่างแน่นอน นี่มันทำให้ฉันรำคาญในสัปดาห์ที่แล้ว ... ขอบคุณ !!
Mikle

14

Android รองรับ XML <shape>ซึ่งสามารถใช้เป็นไฟล์วาดได้เหมือน SVG น่าเสียดายที่ไม่มีเอกสารสำหรับพวกเขา นี่เป็นข้อมูลที่ดีที่สุดที่ฉันสามารถหาได้:

http://escomic.net/217


4
นอกจากนี้ยังมีidunnolol.com/android/drawables.htmlพร้อมเอกสารประกอบเกี่ยวกับคุณสมบัติ xml ทั้งหมดสำหรับรูปร่าง รูปร่างมีความสำคัญมากในการสร้างพื้นหลังแบบกลมที่เปลี่ยนสีเมื่อคลิกหรือทำการไล่ระดับสีที่กำหนด xml แทนการวาดพื้นหลังแบบกำหนดเอง
Janusz

เป็นไปได้หรือไม่ที่จะเพิ่มรูปร่างลงในเอกสาร xml หนึ่งชุด เช่นวงกลมและสี่เหลี่ยมสองวง?
skyfoot

13

นอกจากนี้สำหรับแนวทางปฏิบัติที่ดีที่สุดคุณอาจต้องการดูรูปแบบการเข้ารหัสของ Android:

http://source.android.com/source/code-style.html

เช่นเดียวกับโค้ด eclipse และอิมพอร์ตฟอร์แมต (android-formatting.xml, android.importorder) ซึ่งพบในซอร์สโค้ดแพลตฟอร์มภายใต้การพัฒนา / ide / eclipse


2
มีห่วงมากเกินไปที่จะข้ามไปเพื่อรับโค้ดสำหรับฟอร์แมตเตอร์ Eclipse เท่านั้นดังนั้นค้นหาได้ที่นี่: google.com/codesearch/p?hl=th#CRBM04-7BoA/ide/eclipse/…
idbrii

7

hierarchyviewerใน / tools ช่วยให้คุณสามารถดีบัก / วิเคราะห์เค้าโครงมุมมองของคุณ: การขยายตำแหน่งการดูลำดับชั้น ฯลฯ

มันช่วยฉันได้มากสองสามครั้งเมื่อพยายามหาสาเหตุว่าทำไมสิ่งต่างๆจึงถูกจัดวางในแบบที่เป็นอยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.