APK tương tự như cácgói phần mềm khác nhưAPPX trênMicrosoft Windows,APP củaHarmonyOS hayDeb trên các hệ điều hành dựa trênDebian. Để tạo tệp APK, trước tiên, chương trình cho Android được biên dịch bằng một công cụ nhưAndroid Studio[3] hặcVisual Studio sau đó tất cả các phần của nó được đóng gói thành mộtfile chứa. Một file Apk chứa tất cả mã của chương trình (như tệp.dex), tài nguyên, tài sản, chứng chỉ vàfile manifest. Giống như nhiều định dạng file khác, file APK có thể có bất kỳ tên nào mong muốn nhưng để hệ thống nhận dạng được chúng, có thể cần cóhậu tố tênfile .apk.[4][5][6][7]
Hầu hết các triển khai Android cho phép người dùng cài đặt thủ công các tệp APK chỉ sau khi họ bật cài đặt "Nguồn không xác định" cho phép cài đặt từ các nguồn khác ngoài các nguồn đáng tin cậy nhưGoogle Play. Người ta có thể làm như vậy vì nhiều lý do, chẳng hạn như trong quá trình phát triển ứng dụng, để cài đặt các ứng dụng không có trên cửa hàng hoặc để cài đặt phiên bản cũ hơn của ứng dụng hiện có.[8][9]
Tại Build 2015, Microsoft cũng đã công bố mộtruntime environmentAndroid choWindows 10 Mobile được gọi là "Astoria", cho phép các ứng dụng Android chạy trong môi trường mô phỏng với những thay đổi tối thiểu và có quyền truy cập vào cácAPI nền tảng của Microsoft nhưBing Maps vàXbox Live như những sự thay thế gần như ngay lập tức choGoogle Mobile Services tương đương. Google Mobile Services và một số API cốt lõi sẽ không khả dụng và các ứng dụng có "tích hợp sâu vào các tác vụ nền" được cho là hỗ trợ kém cho môi trường này.[12][13]
Ngày 25 tháng 2 năm 2016, sau khi đã trì hoãn vào tháng 11 năm 2015,[14][15] Microsoft đã thông báo rằng "Astoria" sẽ bị gác lại, với lý do là nó không phù hợp với bộ công cụWindows Bridge gốc vìiOS đã là mục tiêu chính để phát triểnứng dụng di động. Công ty cũng khuyến khích sử dụng các sản phẩm từXamarin (mà họ đã mua lại vào ngày hôm trước) để phát triển ứng dụng đa nền tảng bằng ngôn ngữ lập trìnhC# thay thế.[16][17] Một phần của Astoria được sử dụng làm cơ sở cho nền tảngWindows Subsystem for Linux (WSL) trên phiên bản PC củaWindows 10.[18]
Ngày 9 tháng 8 năm 2019,HarmonyOS đã có khả năng tương thích với APK thông qua cơ sởAOSP vớihạt nhân Linux trên HarmonyOS 1.0 dành cho TV và vào ngày 2 tháng 6 năm 2021, phiên bản HarmonyOS 2.0 đã mở rộng sangđiện thoại thông minh vàmáy tính bảng cho đến phiên bản Galaxy Edition trong hệ thốngHarmonyOS NEXT cho phiên bản HarmonyOS 5 beta tiếp theo thành phiên bản thương mại, bắt đầu từ quý 2, tháng 6 năm 2024.[19][20][21][22][23]
Tại sự kiện công bốWindows 11 vào tháng 6 năm 2021, Microsoft đã giới thiệuWindows Subsystem for Android (WSA)mới sẽ hỗ trợAndroid Open Source Project (AOSP)và cho phép người dùng chạy ứng dụng Android trên máy tính để bàn Windows của họ. Microsoft đã xác nhận rằng người dùng sẽ có thể tải các ứng dụng Android vào Windows và có thể cài đặt các file APK được tải xuống từ các nguồn của bên thứ ba.[24] Ngày 5 tháng 3 năm 2024, Microsoft đã thông báo sẽ chấm dứt các ứng dụng Android trên subsytem Windows 11 vào ngày 5 tháng 3 năm 2025, như một phần trong nỗ lực khấu hao subsytem khỏinhân Windows NT, loại bỏ khả năng tương thích của các ứng dụng apk Android, bao gồm các ứng dụng Android từAmazon App Store.[25]
Google đã công bố kế hoạch vào tháng 12 năm 2021 để đưa các trò chơi Android lên Windows vào năm 2022.[26][27]
lib: thư mục chứa mã đã biên dịch phụ thuộc vào nền tảng, ví dụ như các thư viện gốc có thể được tải thông quaJNI; thư mục được chia thành nhiều thư mục bên trong nó:
armeabi-v7a: mã đã biên dịch chỉ dành cho tất cả các bộ xử lý dựa trênARMv7 trở lên
arm64-v8a: mã đã biên dịch chỉ dành cho tất cả các bộ xử lý dựa trên ARMv8 arm64 trở lên[28]
res: thư mục chứa các tài nguyên không được biên dịch thành resources.arsc (xem bên dưới).
assets: thư mục chứa các tài sản của ứng dụng, có thể đượcAssetManager truy xuất.
AndroidManifest.xml: File kê khai Android bổ sung, mô tả tên, phiên bản, quyền truy cập, các file thư viện được tham chiếu cho ứng dụng. File này có thể ở dạng XML nhị phân Android có thể được chuyển đổi thành XML văn bản thuần túy mà con người có thể đọc được bằng các công cụ như AXMLPrinter2, Apktool M hoặc Androguard.
classes.dex: Các lớp được biên dịch theo định dạng file DEX doAndroid Runtime thực thi (hoặc do máy ảo Dalvik được sử dụng trongAndroid 4.4 KitKat).
resources.arsc: một tệp chứa các tài nguyên được biên dịch trước, chẳng hạn như XML nhị phân.
^"Android ABIs | Android NDK".Android Developers (bằng tiếng Anh).Lưu trữ bản gốc ngày 8 tháng 4 năm 2019. Truy cập ngày 14 tháng 8 năm 2020.Note: Historically the NDK supported ARMv5 (armeabi), and 32-bit and 64-bitMIPS, but support for these ABIs was removed in NDK r17.
^Dan, Albert (ngày 5 tháng 9 năm 2018)."Changelog r17".GitHub (bằng tiếng Anh).Lưu trữ bản gốc ngày 28 tháng 8 năm 2020. Truy cập ngày 14 tháng 8 năm 2020.Support for ARMv5 (armeabi), MIPS, and MIPS64 has been removed. Attempting to build any of theseABIs will result in an error.