android-Maintaining Multiple APKs,Creating Multiple APKs for Different API Levels
Multiple APK support is a feature of Google Play that allows you to publish multiple APKs under the same application listing. Each APK is a complete instance of your application, optimized to target specific device configurations. Each APK can target a specific set of GL textures, API levels, screen sizes, or some combination thereof.
》Creating Multiple APKs for Different API Levels
When developing your Android application to take advantage of multiple APKs on Google Play, it’s
important to adopt some good practices from the get-go, and prevent unnecessary headaches further into the development process.
》If you can manage it, confining your application to a single APK has several advantages, including:
- Publishing and testing are easier
- There’s only one codebase to maintain
- Your application can adapt to device configuration changes
- App restore across devices just works
- You don’t have to worry about market preference, behavior from "upgrades" from one APK to the next, or which APK goes with which class of devices
Note: While the implementation details of how to create and include library projects are beyond the scope of this lesson, you can get up to speed quickly on their creation at the following links:
When a user downloads an application which uses multiple APKs through Google Play, the correct APK to use is chosen using two simple rules:- The manifest has to show that particular APK is eligible
- Of the eligible APKs, highest version number wins
Before uploading to Google Play, double-check the following items. Remember that these are specifically relevant to multiple APKs, and in no way represent a complete checklist for all applications being uploaded to Google Play.
- All APKs must have the same package name
- All APKs must be signed with the same certificate
- If the APKs overlap in platform version, the one with the higher minSdkVersion must have a higher version code
- Double check your manifest filters for conflicting information (an APK that only supports cupcake on XLARGE screens isn’t going to be seen by anybody)
- Each APK's manifest must be unique across at least one of supported screen, openGL texture, or platform version
- Try to test each APK on at least one device. Barring that, you have one of the most customizable device emulators in the business sitting on your development machine. Go nuts!
By adding the required permission SEND_SMS, the feature requirement of android.hardware.telephony was implicitly added. Since API 11 is Honeycomb (the version of Android optimized specifically for tablets), and no Honeycomb devices have telephony hardware in them, Google Play will filter out this APK in all cases, until future devices come along which are higher in API level AND possess telephony hardware.
Fortunately this is easily fixed by adding the following to your manifest:
<uses-feature android:name="android.hardware.telephony" android:required="false" />Once you’ve completed the pre-launch checklist, upload your APKs to Google Play. It may take a bit for the application to show up when browsing Google Play, but when it does, perform one last check. Download the application onto any test devices you may have, to make sure that the APKs are targeting the intended devices. Congratulations, you’re done!
相關文章
- JavaScript select multipleJavaScript
- Logstash Multiple Pipelines
- Small Multiple(最短路)
- 2.3.6.2 Synchronization of Multiple ApplicationsAPP
- LLM multiple modal applicationsAPP
- kubernetes traefik multiple namespacesnamespace
- Multiple Books多賬薄
- POJ1426-Find The Multiple
- Lowest Common Multiple Plus hd 2028
- HDU 6298 Maximum Multiple(找規律)
- sim3d multiple component example3D
- input file multiple 批量上傳檔案
- ECE 4122/6122 OpenGL with OBJ files and Multiple ObjectsObject
- win10版本multiple editions是什麼版本_win10版本multiple editions啥意思Win10
- ios-Multiple commands produced error xcode 10 [duplicate]iOSErrorXCode
- PostgreSQL DBA(124) - Develop(Putting multiple LIKE patterns into an array)SQLdev
- SAP gateway處理multiple key的邏輯Gateway
- SAP CRM OData multiple origin Composition的測試
- Qt報Multiple definition錯誤的解決QT
- [Javascript] Import the Same JavaScript Module Multiple Times with Cache BustingJavaScriptImport
- How to link multiple docker-compose services via networkDocker
- golang multiple-value xxx in single-value contextGolangContext
- (杭電1019 最小公倍數) Least Common MultipleAST
- ECCV 2020 | Robust Re-Identification by Multiple Views Knowledge DistillationIDEView
- tomcat-啟動報錯Multiple Contexts have a path of "/xxxx"TomcatContext
- 實錘,PBlaze5擁有multiple namespaces能力(上)namespace
- 題解【[ABC077D] Small Multiple】(尚未完成)
- Configure multiple-subnet Always On Availability Groups and failover cluster instances by modifying CIBAI
- 初學vue遇到 imported multiple times import/no-duplicates問題VueImport
- ABC077D / ARC084B Small Multiple 題解
- 實錘,PBlaze5實力演繹multiple namespaces 功能(下)namespace
- [LeetCode] 158. Read N Characters Given Read4 II – Call multipleLeetCode
- New ceoAnyone Bug Identified in Multiple Crypto Game Smart Contracts (CVE-2018-11329)IDEGAM
- New proxyOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018-10376)
- SAP QM建立一個包含Multiple Specification的檢驗計劃
- How To Retry Multiple Errored Approval Workflow Processes After A Fix Or Patch Has Been ImplementedErrorAPP
- New multiOverflow Bug Identified in Multiple ERC20 Smart Contracts (CVE-2018-10706)IDE
- New burnOverflow Bug Identified in Multiple ERC20 Smart Contracts (CVE-2018-11239)IDE
- ALERT: New batchOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018-10299)BAT