Foldable Device — βασικά, αναδιπλούμενες συσκευές στην ανάπτυξη

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-06-09 Χρόνος ανάγνωσης: 9 λεπ

Foldable Device (αναδιπλούμενη συσκευή) — είναι μια κατηγορία κινητών gadget με εύκαμπτη οθόνη που αλλάζει παράγοντα μορφής κατά την αναδίπλωση και το άνοιγμα. Τέτοιες συσκευές λειτουργούν τόσο ως συμπαγές τηλέφωνο όσο και ως tablet — ανάλογα με τη θέση της οθόνης. Σύμφωνα με το Android Developers (2025), η παγκόσμια αγορά αναδιπλούμενων συσκευών αυξήθηκε κατά 42% το 2024 και η προσαρμογή εφαρμογών σε αυτόν τον παράγοντα μορφής γίνεται υποχρεωτική για μεγάλα έργα.

Κύρια σημεία

  • Foldable Device — συσκευή με εύκαμπτη οθόνη που αλλάζει παράγοντα μορφής κατά την αναδίπλωση.
  • Τύποι — βιβλίου (Galaxy Z Fold), flip (Galaxy Z Flip), διπλή οθόνη (Surface Duo).
  • Fold State — κατάσταση συσκευής: πλήρως ανοιχτή, πλήρως κλειστή, μισάνοιχτη (tabletop).
  • Προσαρμογή — η διεπαφή πρέπει να αναδιατάσσεται όταν αλλάζει η διαμόρφωση οθόνης.
  • WindowManager — Jetpack WindowManager API για το χειρισμό αλλαγών κατάστασης αναδιπλούμενης συσκευής.

Τι είναι το Foldable Device;

Foldable Device — είναι μια κινητή συσκευή με εύκαμπτη οθόνη OLED που μπορεί να διπλωθεί χωρίς να καταστραφεί η μήτρα. Σε διπλωμένη κατάσταση, μια τέτοια συσκευή είναι συμπαγής και χωράει στην τσέπη, σε ανοιχτή κατάσταση παρέχει οθόνη μεγέθους tablet. Η πρώτη μαζική αναδιπλούμενη συσκευή ήταν το Royole FlexPai (2018), αλλά την κατηγορία τη διέδωσαν τα Samsung Galaxy Fold (2019) και Huawei Mate X.

Η βασική διαφορά μεταξύ αναδιπλούμενων και παραδοσιακών συσκευών είναι η παρουσία μεντεσέ (hinge) και εύκαμπτης οθόνης. Κατά την αναδίπλωση, η οθόνη δεν σπάει, αλλά κάμπτεται σε ακτίνα που καθορίζεται από την κατασκευή του μεντεσέ. Οι σύγχρονες τεχνολογίες (UTG — Ultra Thin Glass, 2020+ και Samsung Infinity Flex) αντέχουν έως και 200.000 κύκλους αναδίπλωσης χωρίς ορατή φθορά.

Για τους προγραμματιστές, οι αναδιπλούμενες συσκευές δημιουργούν τρεις προκλήσεις: αλλαγή μεγέθους οθόνης κατά το άνοιγμα, παρουσία πτυχής (crease) και λειτουργία σε μισάνοιχτη κατάσταση (tabletop mode), όταν η συσκευή στέκεται σε επιφάνεια υπό γωνία.

Τύποι αναδιπλούμενων συσκευών

Βιβλίου (book-style) — Galaxy Z Fold, Google Pixel Fold, OnePlus Open. Εξωτερική οθόνη (cover screen) για χρήση σε διπλωμένη κατάσταση, εσωτερική εύκαμπτη οθόνη (inner screen) για λειτουργία tablet. Η αναλογία διαστάσεων της εξωτερικής οθόνης είναι περίπου 22:9, της εσωτερικής — περίπου 6:5 ή 4:3.

Flip (flip-style) — Galaxy Z Flip, Motorola Razr, Oppo Find N2 Flip. Κάθετη αναδίπλωση, εξωτερική οθόνη για ειδοποιήσεις (1.5–3.5 ίντσες), εσωτερική οθόνη — τυπικό τηλέφωνο (6.7–7 ίντσες). Κύριο χαρακτηριστικό — σε μισάνοιχτη κατάσταση (flex mode), η εφαρμογή μπορεί να χωρίσει την οθόνη σε δύο ζώνες: έλεγχο επάνω, περιεχόμενο κάτω.

Διπλή οθόνη — Microsoft Surface Duo, Lenovo ThinkPhone. Δύο ξεχωριστές οθόνες με μεντεσέ στη μέση. Κατά το άνοιγμα, σχηματίζουν κοινή επιφάνεια, αλλά με φυσικό κενό μεταξύ των οθονών. Το API λαμβάνει υπόψη τη γωνία του μεντεσέ και επιτρέπει στην εφαρμογή να εκτείνεται και στις δύο οθόνες.

API για αναδιπλούμενες συσκευές στο Android

Η Google παρέχει το Jetpack WindowManager για εργασία με αναδιπλούμενες συσκευές. Το API περιλαμβάνει τρία βασικά στοιχεία: WindowLayoutInfo — πληροφορίες για τη θέση αναδίπλωσης (fold), WindowPosture — φυσική θέση συσκευής και FoldingFeature — περιγραφή της περιοχής κάμψης: προσανατολισμός, κατάσταση και γωνία.

FoldingFeature περιέχει τον τύπο αναδίπλωσης (hinge — μεντεσές, fold — εύκαμπτη οθόνη), την κατάσταση (flat — ανοιχτή, half-opened — μισάνοιχτη, folded — διπλωμένη) και τη γωνία κάμψης (από 0 έως 180 μοίρες). Η γωνία είναι διαθέσιμη σε συσκευές με αισθητήρα γωνίας (Galaxy Z Fold, Pixel Fold).

kotlin
val windowInfoRepository =
    WindowInfoTracker.getOrCreate(context)
windowInfoRepository.windowLayoutInfo(context)
    .collect { layoutInfo ->
        layoutInfo.displayFeatures
            .filterIsInstance<FoldingFeature>()
            .forEach { feature ->
                // χειρισμός αναδίπλωσης
            }
    }

Για να προσδιορίσετε εάν μια συσκευή είναι αναδιπλούμενη, χρησιμοποιήστε το PackageManager.hasSystemFeature("android.hardware.sensor.hinge_angle"). Σε μια συσκευή με μεντεσέ, αυτός ο αισθητήρας υπάρχει — στα συνηθισμένα τηλέφωνα απουσιάζει.

Προσαρμογή διεπαφής για αναδιπλούμενες συσκευές

Η προσαρμογή διεπαφής — το κύριο καθήκον του προγραμματιστή κατά την υποστήριξη αναδιπλούμενων συσκευών. Κατά το άνοιγμα, το πλάτος του παραθύρου μπορεί να διπλασιαστεί και η διεπαφή πρέπει να αναδιαταχθεί από μονή στήλη σε πολλαπλές στήλες. Χρησιμοποιήστε το Window Size Class για εναλλαγή μεταξύ διατάξεων — κατά το άνοιγμα, η κλάση αλλάζει από Compact σε Expanded.

Δώστε ιδιαίτερη προσοχή στο χειρισμό αλλαγών διαμόρφωσης. Όταν ο χρήστης ανοίγει τη συσκευή, το Activity μπορεί να δημιουργηθεί ξανά. Εάν η εφαρμογή δεν αποθηκεύει την κατάσταση, ο χρήστης θα χάσει τα εισαγόμενα δεδομένα ή τη θέση κύλισης. Χρησιμοποιήστε το ViewModel για δεδομένα οθόνης και το onSaveInstanceState για κατάσταση UI.

Για τη λειτουργία flex mode (tabletop mode), ο σχεδιασμός πρέπει να χωρίζει την οθόνη σε δύο λειτουργικές ζώνες. Πάνω — προβολή περιεχομένου (βίντεο, γκαλερί, λίστα), κάτω — έλεγχος (κουμπιά, χειριστήρια, πληκτρολόγιο). Αυτό το μοτίβο χρησιμοποιείται σε πρόγραμμα αναπαραγωγής βίντεο: το YouTube στο Galaxy Z Flip δείχνει το βίντεο επάνω, τις προτάσεις και τα κουμπιά κάτω.

Δοκιμή σε αναδιπλούμενες συσκευές

Η δοκιμή — μία από τις πιο δύσκολες πτυχές της ανάπτυξης για αναδιπλούμενες συσκευές. Ο Android Emulator επιτρέπει την προσομοίωση αναδιπλούμενων συσκευών μέσω AVD με διαμόρφωση "Foldable" (εσωτερική οθόνη 7.6 ιντσών, εξωτερική οθόνη 4.6 ιντσών). Ο εξομοιωτής υποστηρίζει εναλλαγή μεταξύ διπλωμένης και ανοιχτής κατάστασης.

Για δοκιμή στον εξομοιωτή χρησιμοποιείται ADB. Η εντολή adb shell am broadcast -a android.intent.action.VIEW -e mode expand ανοίγει τη συσκευή, η adb shell am broadcast -a android.intent.action.VIEW -e mode fold τη διπλώνει. Επίσης, η γωνία κάμψης μπορεί να αλλάξει στο παράθυρο του εξομοιωτή.

Η πραγματική δοκιμή σε φυσικές συσκευές συνιστάται για τον έλεγχο της αίσθησης μετάβασης, της ποιότητας του μεντεσέ και της ορατότητας της πτυχής. Κύρια μοντέλα για δοκιμή: Samsung Galaxy Z Fold 6 (βιβλίου), Samsung Galaxy Z Flip 6 (flip), Google Pixel Fold, Motorola Razr 50.

Συστάσεις σχεδιασμού για αναδιπλούμενες συσκευές

Μην τοποθετείτε κρίσιμα στοιχεία στην περιοχή της πτυχής. Τα κουμπιά, τα πεδία εισαγωγής και τα διαδραστικά στοιχεία πρέπει να βρίσκονται σε απόσταση τουλάχιστον 24 dp από τη γραμμή πτυχής. Η πτυχή (crease) — εγγενής ιδιότητα των εύκαμπτων οθονών, η ορατότητά της μειώνεται με κάθε γενιά, αλλά δεν εξαφανίζεται εντελώς.

Χρησιμοποιήστε συνέχεια αντί για διακοπή. Κατά το άνοιγμα, το περιεχόμενο πρέπει να ρέει ομαλά από την εξωτερική στην εσωτερική οθόνη ή να επεκτείνεται σε ολόκληρη την επιφάνεια. Αποφύγετε τη φόρτωση νέου Activity — χρησιμοποιήστε επανυπολογισμό της διάταξης εντός της ίδιας οθόνης. Το Jetpack WindowManager παρακολουθεί τις αλλαγές και ειδοποιεί την εφαρμογή μέσω του WindowLayoutInfo.

Λάβετε υπόψη τη γωνία του μεντεσέ για δημιουργικά σενάρια. Σε εφαρμογές φωτογραφίας και βίντεο, η μισάνοιχτη θέση (90°) μετατρέπει τη συσκευή σε βάση: η κάμερα τραβάει, το κάτω μέρος της οθόνης δείχνει τον πίνακα ελέγχου. Αυτό το σενάριο είναι ιδιαίτερα δημοφιλές στο Samsung Camera και σε εγγενείς εφαρμογές.

Συχνές ερωτήσεις

Πώς να προσδιορίσετε εάν μια συσκευή είναι αναδιπλούμενη;

Ελέγξτε την παρουσία του PackageManager.FEATURE_SENSOR_HINGE_ANGLE. Εάν είναι true — η συσκευή είναι αναδιπλούμενη με αισθητήρα γωνίας μεντεσέ. Ελέγξτε επίσης το DisplayFold API.

Πώς να χειριστείτε τη μετάβαση από κλειστή σε ανοιχτή λειτουργία;

Εγγραφείτε στο WindowInfoTracker.windowLayoutInfo(). Όταν αλλάζει η κατάσταση FoldingFeature, αναδιατάξτε τη διεπαφή σύμφωνα με το Window Size Class και τη θέση πτυχής.

Ποιο είναι το ελάχιστο SDK για API αναδιπλούμενων συσκευών;

Το Jetpack WindowManager λειτουργεί σε API 14+. Αλλά για το FoldingFeature.HALF_OPENED απαιτείται API 24+ (Android 7.0). Ο αισθητήρας γωνίας μεντεσέ είναι διαθέσιμος σε Android 10+.

Χρειάζεται να δημιουργήσω ξεχωριστές διατάξεις για αναδιπλούμενες συσκευές;

Όχι. Χρησιμοποιήστε το Window Size Class και το Layoutomization από το Jetpack WindowManager. Ένας ενιαίος κώδικας με έλεγχο κλάσης μεγέθους θα αντικαταστήσει ξεχωριστές διατάξεις πόρων.

Λειτουργούν οι αναδιπλούμενες συσκευές υποβρύχια;

Οι περισσότερες αναδιπλούμενες συσκευές έχουν προστασία IP48 ή IP58 — περιορισμένη αδιαβροχοποίηση. Υποβρύχια, η εύκαμπτη οθόνη μπορεί να καταστραφεί, επομένως η βύθιση δεν συνιστάται από τους κατασκευαστές.

Σύνοψη

  • Foldable Device — συσκευή με εύκαμπτη οθόνη που αλλάζει μέγεθος οθόνης κατά την αναδίπλωση.
  • Τύποι — βιβλίου (Galaxy Z Fold), flip (Galaxy Z Flip), διπλή οθόνη (Surface Duo).
  • Jetpack WindowManager — API για παρακολούθηση FoldingFeature, κατάστασης και γωνίας κάμψης.
  • Window Size Class — εναλλαγή μεταξύ κλάσεων κατά το άνοιγμα της συσκευής.
  • Flex mode — διαίρεση οθόνης σε προβολή και έλεγχο σε μισάνοιχτη κατάσταση.
  • Δοκιμή — AVD Foldable σε εξομοιωτή, ADB για διαχείριση κατάστασης.
  • Συμπέρασμα — οι αναδιπλούμενες συσκευές διαμορφώνουν ένα νέο πρότυπο κινητής εμπειρίας και η προσαρμογή εφαρμογών γίνεται ανταγωνιστικό πλεονέκτημα.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης