BreadcrumbHomeResourcesBlog What Are APKs? The Impact of Android APKs On Dev & Testing September 24, 2020 What Are APKs? The Impact of Android APKs on Dev & TestingMobile Application TestingMobile Application DevelopmentBy Eran KinsbrunerAfter a very long history behind the Android market, and the recent Android 11 GA, Google is enforcing a new method of application development and delivery process. Up until quite recently, each Android application binary would have been built, signed, and deployed in the format of .APK to Google Play.As of today, Google already supports the new Android applications under the type and format of APKs. This new change also ties in with the rise of progressive web apps (PWAs) that Google initiated a while ago to also improve the end user experience, and reduce app size and network/environment dependencies.In this blog, let us take a closer look at APKs, their benefits, and how they impact testers and developers. Read along or skip to the section that interests you most.Table of ContentsWhat Are APKs?How Do You Build an APK File?Benefits of APKsWhat Android App Bundles & APKs Mean for Developers and TestersContinuous Testing & APKsBottom LineTable of Contents1 - What Are APKs?2 - How Do You Build an APK File?3 - Benefits of APKs4 - What Android App Bundles & APKs Mean for Developers and Testers5 - Continuous Testing & APKs6 - Bottom LineBack to topWhat Are APKs?APKs, or Android Application Packages, are typically zip files that contain a group of single APK files. Based on rules, specific devices, and user requests, these files will get installed and enabled on the devices in production.Back to topHow Do You Build an APK File?To actually build an APK file, developers need to create an AAB file which stands for Android App Bundle. This AAB is a publishing format that Google requires developers to create, and inside a single file, developers will deploy all of the app content from code, media resources, translated strings resources, and other app-related files.The Complete Guide to Mobile Automation TestingOnce the developer has completed building the AAB file, they can use the bundle tool to generate the APKs. Once uploaded to Google Play, Google can sign and deploy to the respecteddevices and end users.Back to topBenefits of APKsHere are the main reasons Google is making these significant changes to the app development process:Application binary sizes.Overall resource consumption like CPU, battery, and network by unused features of the app.The ability to gradually expose as well as enable/disable specific modules and features based on customers countries, requirements, and other considerations.This new method serves not only the end users, who enjoy a lighter application to download onto their devices. It also serves R&D and engineering teams so they can build and gradually expose new features to end users dynamically and based on context. With some of the new and supported APIs, developers can push immediate and flexible application updates to their users.Back to topWhat Android App Bundles & APKs Mean for Developers and TestersNow that you know the benefits of APKs and Google’s requirements for making this transition, here are a few considerations and implications of this new type of technology.Process OrientedAs mentioned above, the new method of Android application development and deployment is changing with the introduction of app bundles. This impacts the end-to-end process of build, test, and deploy.Developers and testers need better communication to fully understand:The release scope and what’s supported in the build to be tested.Which devices were added to the supported list.Which features and modules are added or deprecated.And much more.Without formal processes and communication, there will be huge sync issues resulting in escaped defects, broken builds, late testing, and more. As the image above dictates, the size of the app (Swiggy in this case), the version of the app, and the Android OS version varies based on the end user location and device/OS family.Back to topContinuous Testing & APKsContinuous testing, test automation, and other types of testing are critical to digital businesses. These testing methods are always critical and will not change in importance with this new technology. The new technology, however, will require much more rigorous processes and testing strategies to accommodate the variance in the different APK files that are supported and part of the AAB bundle.Since Android users will start consuming smaller, fresher, and more dynamic app versions, the testing matrix — which was a monolithic application testing approach up until recently — will need to shift toward a split-module approach. Developers and testers need to have a solid matrix of generic app features and different features that are enabled on-demand, based on geolocation and language, and pushed from developers to production and others.On one hand, users might report issues like the above Google Play review on the Swiggy app, but on the other hand, R&D can easily review this claim, and either push an immediate update, or trigger a flexible update to ensure that the issue is resolved. As mentioned in the above example provided by Google, new types of dynamic feature module delivery options must be communicated to the testing team. This ensures that they can build manual and automated testing scenarios on the relevant device/OS families, with and without these flags, in time for the app launch on Google Play.Lastly, since developers are no longer signing Android apps prior to deploying to Google Play, it is critical to ensure that the end-to-end signing process per each APK within the bundle works fine using the APKSigner tool and other guidelines from Google, prior to the upload.Google will sign the APK file individually once a user downloads them to his/her device, so this needs to work per APK file. It is recommended that both developers and testers review and learn more about this new technology ahead of next year’s mandatory enforcement by Google. There is a useful checklist for launching app bundles, that can be a great start.Back to topBottom LineInnovation and technology are key to digital transformation, and Google in many cases is leading the market with great enhancements.In this specific case, this innovative approach is not an option, but a mandate for app developers to shift to in the very near future. It is imperative that the app development teams and testing practitioners start exploring APKs, and AABs, and understand how to shift their processes, methods, and plans to support this new technology sooner rather than later.Try Testing Android Apps With PerfectoTesting in the cloud has never been easier or more scalable. Perfecto enables testing teams to execute at scale against devices in the cloud. And developers can work straight from their IDE of choice to debug apps.With Perfecto, you get:Mobile and web testing in the cloud.Enterprise-grade security.Extended test coverage.Elastic scaling of tests.Robust, built-in test reporting and analytics.Give it a try with a free, two-week trial.Try PerfectoRelated ContentMobile App Testing Strategy Combining Virtual and Real DevicesTesting Apps on a Simulator vs. Emulator vs. Real DeviceHow to Test an App: Mobile App Testing ChecklistBack to top
Eran Kinsbruner DevOps Chief Evangelist & Sr. Director at Perforce Software, Perfecto Eran Kinsbruner is a person overflowing with ideas and inspiration, beyond that, he makes them happen. He is a best-selling author, continuous-testing and DevOps thought-leader, patent-holding inventor (test exclusion automated mechanisms for mobile J2ME testing), international speaker, and blogger. With a background of over 20 years of experience in development and testing, Eran empowers clients to create products that their customers love, igniting real results for their companies.