Foldable Device (thiết bị gập) là một lớp thiết bị di động có màn hình linh hoạt thay đổi yếu tố hình thức khi gập và mở. Các thiết bị này hoạt động vừa như điện thoại nhỏ gọn vừa như máy tính bảng — tùy thuộc vào vị trí màn hình. Theo Android Developers (2025), thị trường thiết bị gập toàn cầu đã tăng 42% trong năm 2024, và việc điều chỉnh ứng dụng cho yếu tố hình thức này đang trở thành bắt buộc đối với các dự án lớn.
Điểm chính
Foldable Device là thiết bị di động có màn hình OLED linh hoạt có thể gập mà không làm hỏng ma trận. Ở trạng thái gập, thiết bị nhỏ gọn và vừa túi; khi mở ra, nó cung cấp màn hình kích thước máy tính bảng. Thiết bị gập đại trà đầu tiên là Royole FlexPai (2018), nhưng danh mục này được phổ biến bởi Samsung Galaxy Fold (2019) và Huawei Mate X.
Sự khác biệt chính giữa thiết bị gập và truyền thống là sự hiện diện của bản lề (hinge) và màn hình linh hoạt. Khi gập, màn hình không bị vỡ mà uốn cong theo bán kính được xác định bởi thiết kế bản lề. Công nghệ hiện đại (UTG — Ultra Thin Glass, 2020+ và Samsung Infinity Flex) có thể chịu được tới 200.000 chu kỳ gập mà không bị hư hại nhìn thấy được.
Đối với nhà phát triển, thiết bị gập tạo ra ba thách thức: thay đổi kích thước màn hình khi mở, sự hiện diện của nếp gấp (crease) và hoạt động ở trạng thái mở nửa (tabletop mode) khi thiết bị đứng trên bề mặt ở một góc.
Dạng sách (book-style) — Galaxy Z Fold, Google Pixel Fold, OnePlus Open. Màn hình ngoài (cover screen) để sử dụng khi gập, màn hình linh hoạt bên trong (inner screen) cho chế độ máy tính bảng. Tỷ lệ khung hình màn hình ngoài khoảng 22:9, màn hình trong khoảng 6:5 hoặc 4:3.
Dạng vỏ sò (flip-style) — Galaxy Z Flip, Motorola Razr, Oppo Find N2 Flip. Gập dọc, màn hình ngoài cho thông báo (1,5–3,5 inch), màn hình điện thoại tiêu chuẩn bên trong (6,7–7 inch). Tính năng chính — khi mở nửa (flex mode), ứng dụng có thể chia màn hình thành hai vùng: điều khiển ở trên, nội dung ở dưới.
Màn hình kép — Microsoft Surface Duo, Lenovo ThinkPhone. Hai màn hình riêng biệt với bản lề ở giữa. Khi mở ra, chúng tạo thành một khu vực chung nhưng có khoảng cách vật lý giữa các màn hình. API xem xét góc bản lề và cho phép ứng dụng mở rộng trên cả hai màn hình.
Google cung cấp Jetpack WindowManager để làm việc với thiết bị gập. API bao gồm ba thành phần chính: WindowLayoutInfo — thông tin về vị trí gập (fold), WindowPosture — vị trí vật lý của thiết bị và FoldingFeature — mô tả khu vực gập: hướng, trạng thái và góc.
FoldingFeature chứa loại gập (hinge — bản lề, fold — màn hình linh hoạt), trạng thái (flat — mở, half-opened — mở nửa, folded — gập) và góc gập (từ 0 đến 180 độ). Góc có sẵn trên các thiết bị có cảm biến góc (Galaxy Z Fold, Pixel Fold).
val windowInfoRepository =
WindowInfoTracker.getOrCreate(context)
windowInfoRepository.windowLayoutInfo(context)
.collect { layoutInfo ->
layoutInfo.displayFeatures
.filterIsInstance<FoldingFeature>()
.forEach { feature ->
// xử lý gập
}
}
Để xác định thiết bị có gập được không, hãy sử dụng PackageManager.hasSystemFeature("android.hardware.sensor.hinge_angle"). Cảm biến này có trên thiết bị có bản lề — không có trên điện thoại thông thường.
Điều chỉnh giao diện là nhiệm vụ chính của nhà phát triển khi hỗ trợ thiết bị gập. Khi mở ra, chiều rộng cửa sổ có thể tăng gấp đôi và giao diện phải tái cấu trúc từ một cột thành nhiều cột. Sử dụng Window Size Class để chuyển đổi giữa các bố cục — khi mở, lớp thay đổi từ Compact thành Expanded.
Cần đặc biệt chú ý đến việc xử lý thay đổi cấu hình. Khi người dùng mở thiết bị, Activity có thể được tạo lại. Nếu ứng dụng không lưu trạng thái, người dùng sẽ mất dữ liệu đã nhập hoặc vị trí cuộn. Sử dụng ViewModel cho dữ liệu màn hình và onSaveInstanceState cho trạng thái giao diện.
Đối với chế độ linh hoạt (tabletop mode), thiết kế nên chia màn hình thành hai vùng chức năng. Phần trên để xem nội dung (video, thư viện, danh sách), phần dưới để điều khiển (nút bấm, bộ điều khiển, bàn phím). Mẫu này được áp dụng trong trình phát video: YouTube trên Galaxy Z Flip hiển thị video ở trên, đề xuất và nút ở dưới.
Kiểm thử là một trong những khía cạnh khó khăn nhất khi phát triển cho thiết bị gập. Trình giả lập Android cho phép mô phỏng thiết bị gập thông qua AVD với cấu hình "Foldable" (màn hình trong 7,6 inch, màn hình ngoài 4,6 inch). Trình giả lập hỗ trợ chuyển đổi giữa trạng thái gập và mở.
Để kiểm thử trong trình giả lập, sử dụng ADB. Lệnh adb shell am broadcast -a android.intent.action.VIEW -e mode expand mở thiết bị, adb shell am broadcast -a android.intent.action.VIEW -e mode fold gập thiết bị. Cũng có thể thay đổi góc gập trong cửa sổ trình giả lập.
Kiểm thử thực tế trên thiết bị vật lý được khuyến nghị để kiểm tra cảm giác chuyển đổi, chất lượng bản lề và độ nhìn thấy của nếp gấp. Các mẫu chính để kiểm thử: Samsung Galaxy Z Fold 6 (dạng sách), Samsung Galaxy Z Flip 6 (dạng vỏ sò), Google Pixel Fold, Motorola Razr 50.
Không đặt các yếu tố quan trọng trong khu vực nếp gấp. Các nút, trường nhập liệu và yếu tố tương tác nên được đặt cách đường gập tối thiểu 24 dp. Nếp gấp (crease) là thuộc tính vốn có của màn hình linh hoạt; độ nhìn thấy của nó giảm qua mỗi thế hệ nhưng không biến mất hoàn toàn.
Sử dụng sự liên tục thay vì gián đoạn. Khi mở, nội dung nên chuyển tiếp mượt mà từ màn hình ngoài vào màn hình trong hoặc mở rộng ra toàn bộ khu vực. Tránh tải Activity mới — sử dụng tính toán lại bố cục trong cùng một màn hình. Jetpack WindowManager theo dõi các thay đổi và thông báo cho ứng dụng qua WindowLayoutInfo.
Cân nhắc góc bản lề cho các kịch bản sáng tạo. Trong ứng dụng ảnh và video, vị trí mở nửa (90°) biến thiết bị thành giá đỡ: máy ảnh quay, phần dưới màn hình hiển thị bảng điều khiển. Kịch bản này đặc biệt phổ biến trong Samsung Camera và các ứng dụng gốc.
Câu hỏi thường gặp
Kiểm tra sự hiện diện của PackageManager.FEATURE_SENSOR_HINGE_ANGLE. Nếu true — thiết bị gập có cảm biến góc bản lề. Ngoài ra, kiểm tra DisplayFold API.
Đăng ký WindowInfoTracker.windowLayoutInfo(). Khi trạng thái FoldingFeature thay đổi, tái cấu trúc giao diện theo Window Size Class và vị trí gập.
Jetpack WindowManager hoạt động trên API 14+. Nhưng FoldingFeature.HALF_OPENED yêu cầu API 24+ (Android 7.0). Cảm biến dữ liệu góc bản lề có sẵn trên Android 10+.
Không. Sử dụng Window Size Class và Layoutomization từ Jetpack WindowManager. Một mã duy nhất với kiểm tra lớp kích thước thay thế các bố cục tài nguyên riêng biệt.
Hầu hết thiết bị gập có bảo vệ IP48 hoặc IP58 — khả năng chống nước hạn chế. Dưới nước, màn hình linh hoạt có thể bị hỏng, vì vậy các nhà sản xuất không khuyến nghị ngâm.
Tổng kết
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm