Gói ứng dụng Android
![]() | |
Phần mở rộng tên file |
|
---|---|
Kiểu phương tiện |
|
Kiểu định dạng | Package format |
Dùng để chứa |
|
Được mở rộng từ | JAR |

Gói ứng dụng Android hay Android Package có phần mở rộng file apk[1] là định dạng file được hệ điều hành Android và một số hệ điều hành dựa trên Android khác sử dụng để phân phối và cài đặt ứng dụng di động, trò chơi di động và middleware. Một file sử dụng định dạng này có thể được xây dựng từ mã nguồn được viết bằng Java hoặc Kotlin.

File APK có thể được tạo và ký từ Android App Bundles.[2]

Tổng quan
[sửa | sửa mã nguồn]
APK tương tự như các gói phần mềm khác như APPX trên Microsoft Windows, APP của HarmonyOS hay Deb trên các hệ điều hành dựa trên Debian. Để 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ặc Visual Studio sau đó tất cả các phần của nó được đóng gói thành một file 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ên file .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]
File APK là một dạng của tập tin lưu trữ, cụ thể là gói định dạng zip dựa trên định dạng file JAR, với phần mở rộng tên tập tin là .apk
. Loại MIME tương ứng với file APK là application/vnd.android.package-archive
.[10]
Sử dụng trên hệ điều hành khác
[sửa | sửa mã nguồn]Blackberry Limited hỗ trợ các ứng dụng Android 4.1 Jelly Bean và lên đến Android Runtime cho đến nay đã ngừng hỗ trợ Blackberry 10 thông qua bản cập nhật firmware 10.2.1 vào tháng 1 năm 2014.[11] Ngày 18 tháng 6 năm 2014, BlackBerry đã công bố mối quan hệ chính thức với Amazon.com, dẫn đến bản cập nhật 10.3 đóng gói Amazon Appstore.
Tại Build 2015, Microsoft cũng đã công bố một runtime environment Android cho Windows 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ác API 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 cho Google 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ình C# thay thế.[16][17] Một phần của Astoria được sử dụng làm cơ sở cho nền tảng Windows Subsystem for Linux (WSL) trên phiên bản PC của Windows 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ới hạ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ống HarmonyOS 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ệu Windows 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ỏi nhâ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]
Nội dung gói
[sửa | sửa mã nguồn]File APK là một file ZIP thường chứa các file và thư mục sau:
META-INF
: Thư mụcMANIFEST.MF
: Manifest file- Chứng chỉ của ứng dụng.
CERT.SF
: Danh sách các tài nguyên và bản tóm tắt SHA-1 của các dòng tương ứng trong tệp MANIFEST.MF; ví dụ:Signature-Version: 1.0 Created-By: 1.0 (Android) SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE= ... Name: res/layout/exchange_component_back_bottom.xml SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w= Name: res/drawable-hdpi/icon.png SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
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 qua JNI; 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ên ARMv7 trở lênarm64-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]x86
: mã đã biên dịch chỉ dành cho các bộ xử lý x86x86_64
: mã đã biên dịch chỉ dành cho các bộ xử lý x86-64vàmips
, đã lỗi thời kể từ NDK r17[29][30]armeabi
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 do Android Runtime thực thi (hoặc do máy ảo Dalvik được sử dụng trong Android 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.
Xem thêm
[sửa | sửa mã nguồn]- Android Runtime
- Android Developer
- Dalvik (software)
- .ipa (file extension)
- Android
- Android Pie (2019)
- Android Nougat
- Android Homepage
- Google Play
Tham khảo
[sửa | sửa mã nguồn]- ^ "Application Fundamentals". Android Developers (bằng tiếng Anh). Lưu trữ bản gốc 21 tháng 11 2020. Truy cập 3 tháng 12 2018.
- ^ Peters, Jay (ngày 30 tháng 6 năm 2021). "Google is moving away from APKs on the Play Store". The Verge. Lưu trữ bản gốc 4 tháng 8 2021. Truy cập 15 tháng 8 2021.
- ^ "Application Studio". Android Developers. Lưu trữ bản gốc ngày 12 tháng 9 năm 2021. Truy cập ngày 22 tháng 2 năm 2020.
- ^ "Inside the Android Application Framework" (video). Google Sites. 2008. Lưu trữ bản gốc ngày 24 tháng 12 năm 2011. Truy cập ngày 22 tháng 10 năm 2008.
- ^ Hatem Ben Yacoub (ngày 20 tháng 4 năm 2018). "Tips: How to install apk files on Android Emulator". Open Ha Magazine. Bản gốc lưu trữ 21 tháng 5 2012. Truy cập 17 tháng 7 2021.
- ^ "The Structure of Android Package (APK) Files". OPhone SDN. OPhone Software Developer Network. ngày 17 tháng 11 năm 2010. Bản gốc lưu trữ ngày 8 tháng 2 năm 2011.
- ^ chibucks (ngày 28 tháng 5 năm 2010). "Learn to Fish: General Structure of an APK". SDX-Developers Forum. Simple Machines Forum. Bản gốc lưu trữ ngày 17 tháng 7 năm 2012. Truy cập ngày 6 tháng 8 năm 2016.
- ^ "Unknown Sources: Everything you need to know!". Android Central. ngày 27 tháng 7 năm 2018. Lưu trữ bản gốc ngày 1 tháng 9 năm 2021. Truy cập ngày 4 tháng 3 năm 2020.
- ^ "What is an APK File and How to Install it?". Android Picks.
- ^ "Developer description of MIME type for.apk". Androidguys.com. ngày 21 tháng 10 năm 2008. Truy cập ngày 20 tháng 8 năm 2012.
- ^ Michael, Kozlowski (ngày 29 tháng 1 năm 2014). "BlackBerry 10.2.1 Update Allows you to Install APK Files on your Phone". GoodEReader. Lưu trữ bản gốc 1 tháng 3 2014. Truy cập 29 tháng 1 2014.
- ^ "How will Android support work in Windows 10 for Phones?". TechRadar Pro. Bản gốc lưu trữ ngày 19 tháng 5 năm 2015. Truy cập ngày 22 tháng 5 năm 2015.
- ^ "Microsoft brings Android, iOS apps to Windows 10". Ars Technica. ngày 29 tháng 4 năm 2015. Lưu trữ bản gốc ngày 8 tháng 7 năm 2017. Truy cập ngày 30 tháng 4 năm 2015.
- ^ "Microsoft might not bring Android apps to Windows after all". The Verge. Vox Media. ngày 16 tháng 11 năm 2015. Lưu trữ bản gốc ngày 17 tháng 11 năm 2015. Truy cập ngày 16 tháng 11 năm 2015.
- ^ Collins, Katie (ngày 16 tháng 11 năm 2015). "Microsoft presses pause on tool for porting Android apps to Windows 10". CNET. CBS Interactive. Lưu trữ bản gốc ngày 9 tháng 7 năm 2017. Truy cập ngày 26 tháng 5 năm 2022.
- ^ "Microsoft confirms: Android-on-Windows Astoria tech is gone". Ars Technica. Conde Nast. ngày 25 tháng 2 năm 2016. Lưu trữ bản gốc ngày 25 tháng 2 năm 2016. Truy cập ngày 25 tháng 2 năm 2016.
- ^ "An Update on the Developer Opportunity and Windows 10". Building Apps for Windows blog. Microsoft. ngày 25 tháng 2 năm 2016. Lưu trữ bản gốc ngày 26 tháng 2 năm 2016. Truy cập ngày 25 tháng 2 năm 2016.
- ^ Bright, Peter (ngày 6 tháng 4 năm 2016). "Why Microsoft needed to make Windows run Linux software". Ars Technica. Condé Nast. Lưu trữ bản gốc ngày 6 tháng 4 năm 2016. Truy cập ngày 26 tháng 5 năm 2022.
- ^ "Google apps still working after upgrading to HarmonyOS from EMUI, don't need to panic". Huawei (bằng tiếng Anh). ngày 11 tháng 6 năm 2021. Truy cập ngày 26 tháng 5 năm 2025.
- ^ Matsui, Emiko (ngày 7 tháng 2 năm 2024). "HarmonyOS NEXT Galaxy will officially meet users in Spring: Huawei". HC Newsroom. Truy cập ngày 12 tháng 2 năm 2024.
- ^ Matsui, Emiko (ngày 11 tháng 4 năm 2024). "Huawei to launch HarmonyOS NEXT beta at HDC 2024 event in June". Huawei Central (bằng tiếng Anh). Truy cập ngày 11 tháng 4 năm 2024.
- ^ "Huawei's HarmonyOS has ADB mode, could it be based on Android?". KLGadgetGuy (bằng tiếng Anh). ngày 29 tháng 2 năm 2024. Truy cập ngày 3 tháng 5 năm 2024.
- ^ Linder, Brad (ngày 13 tháng 11 năm 2023). "Huawei's next version of HarmonyOS will drop support for Android apps". Liliputing (bằng tiếng Anh). Truy cập ngày 3 tháng 5 năm 2024.
- ^ Parmar, Mayank (ngày 27 tháng 6 năm 2021). "Microsoft confirms Android apps will run on all Windows 11 PCs". Windows Latest. Lưu trữ bản gốc ngày 27 tháng 6 năm 2021. Truy cập ngày 28 tháng 6 năm 2021.
- ^ Warren, Tom (ngày 5 tháng 3 năm 2024). "Microsoft to end its Android apps on Windows 11 subsystem in 2025". The Verge. Truy cập ngày 5 tháng 3 năm 2024.
- ^ "Google Play Games - Play Android games on PC". play.google.com (bằng tiếng Anh). Lưu trữ bản gốc ngày 3 tháng 1 năm 2023. Truy cập ngày 4 tháng 1 năm 2023.
- ^ Warren, Tom (ngày 9 tháng 12 năm 2021). "Google is bringing Android games to Windows in 2022". The Verge (bằng tiếng Anh). Lưu trữ bản gốc ngày 13 tháng 12 năm 2021. Truy cập ngày 13 tháng 12 năm 2021.
- ^ "ABI Management | Android Developers". developer.android.com. Lưu trữ bản gốc ngày 31 tháng 5 năm 2019. Truy cập ngày 16 tháng 6 năm 2018.
- ^ "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-bit MIPS, 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 these ABIs will result in an error.
Đọc thêm
[sửa | sửa mã nguồn]- Hildenbrand, Jerry (ngày 27 tháng 1 năm 2017). "Is sideloading APK files considered piracy?". Android Central (bằng tiếng Anh). Truy cập ngày 10 tháng 2 năm 2023.