search
HomeWeb Front-endFront-end Q&ASummary of Android hot technical interview questions

Summary of Android hot technical interview questions

Jul 31, 2020 pm 02:01 PM
androidInterview questions

Recommended: "2020 Android interview questions summary [Collection]"

##Preface

Many people may not have worked in an Internet company before the interview, or may have worked in an Internet company for a short period of time. I wonder what questions are asked in technical interviews at Internet companies? In addition, I may not have been fully prepared. I was confused by the interviewer's questions within a few rounds of the interview, and ended up in a disastrous failure.

The following is a summary of the Android interview questions I compiled. Due to space reasons, I only list the questions in the hot technology part. The content of the other interview questions will be updated later. You can follow me and stay informed. I updated my knowledge points, and it also took me a lot of time to compile this interview collection!

1. Componentization

(1) Concept:

Componentization: dividing an APP into multiple modules, each module is a component, or it can be A basic library is provided for components to depend on. During development, some components can be debugged separately. The components do not need to depend on each other but can call each other. When finally released, all components are packaged into an apk in the form of lib by the main APP project dependency.

(2) Origin:

    APP version iteration, new functions are constantly added, the business becomes complex, and the maintenance cost is high
  1. The business coupling is high and the code is bloated , it is difficult for multiple people to collaborate and develop within the team
  2. Android compilation code is stuck, and the code coupling in a single project is serious. Modifying one part requires recompiling and packaging, which is time-consuming and labor-intensive.
  3. Convenient for unit testing, you can change one business module alone without focusing on other modules.
(3) Advantages:

    Componentization separates common modules and manages them uniformly to improve reuse and split the page into components with smaller granularity. The component contains UI implementation, and can also include data layer and logic layer
  1. Each component can be compiled independently, speeding up compilation, and packaged independently.
  2. Modifications within each project will not affect other projects.
  3. Business library projects can be quickly separated and integrated into other apps.
  4. Business modules with frequent iterations adopt a component approach. Business line research and development can not interfere with each other, improve collaboration efficiency, control product quality, and enhance stability.
  5. Parallel development, team members only focus on small modules developed by themselves, reducing coupling and facilitating later maintenance.
(4) Consideration issues:

Mode switching: How to make the APP freely switch between individual debugging and overall debugging
Each business module after componentization It can be a separate APP (isModuleRun=false). When releasing the package, each business module is used as a lib dependency. This is completely controlled by a variable. In the root project gradle.properties, isModuleRun=true. The isModuleRun status is different, and the loading application and AndroidManifest are different to distinguish whether it is an independent APK or a lib.

Configure in build.grade:

Resource conflict
How to resolve the same resources when we create multiple Modules Conflicts in file name merging. Duplicate names of business Module and BaseModule resource files will cause conflicts. The solution is:

Each module has app_name. In order to prevent duplicate resource names, in the build of each component. Add resourcePrefix "xxx_ to forcibly check the resource name prefix in gradle. Fix the resource prefix of each component. However, the resourcePrefix value can only limit the resources in xml, and cannot limit image resources.

Dependencies
How to reference some common libraries and tool classes between multiple Modules

Component communication
After componentization, Modules are isolated from each other, how to perform UI jumps and methods To call, you can use routing frameworks such as Alibaba ARouter or Meituan's WMRouter.

Each business module does not need any dependencies before and can be jumped through routing, perfectly solving the coupling between businesses.

Entry parameters
We know that components are related, so how to get the parameters passed by other Modules when debugging alone

Application

When the component is alone When running, each Module forms its own APK, which means there will be multiple Applications. Obviously we don't want to write so much code repeatedly, so we only need to define one BaseApplication, and other Applications directly inherit this BaseApplication. That’s OK. Public parameters can also be defined in BaseApplication.

2. Plug-inization

(1) Overview

When it comes to plug-inization, we have to mention the problem that the number of methods exceeds 65535. We can solve it through Dex subcontracting, and at the same time This can be solved by using plug-in development. The concept of plug-in is that the host APP loads and runs the plug-in APP.

(2 advantages)

In a large project, in order to have a clear division of labor, different teams are often responsible for different plug-in APPs, so that the division of labor is clearer. Each module is encapsulated into different plug-in APKs, and different modules can be compiled separately, which improves development efficiency. Solved the above problem of the number of methods exceeding the limit. Online bugs can be solved by launching new plug-ins to achieve a "hot fix" effect. Reduced the size of the host APK.

(3 Disadvantages)

Apps developed as plug-ins cannot be launched on Google Play, which means there is no overseas market.

The above is the detailed content of Summary of Android hot technical interview questions. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:csdn. If there is any infringement, please contact admin@php.cn delete
CSS: Can I use multiple IDs in the same DOM?CSS: Can I use multiple IDs in the same DOM?May 14, 2025 am 12:20 AM

No,youshouldn'tusemultipleIDsinthesameDOM.1)IDsmustbeuniqueperHTMLspecification,andusingduplicatescancauseinconsistentbrowserbehavior.2)Useclassesforstylingmultipleelements,attributeselectorsfortargetingbyattributes,anddescendantselectorsforstructure

The Aims of HTML5: Creating a More Powerful and Accessible WebThe Aims of HTML5: Creating a More Powerful and Accessible WebMay 14, 2025 am 12:18 AM

HTML5aimstoenhancewebcapabilities,makingitmoredynamic,interactive,andaccessible.1)Itsupportsmultimediaelementslikeand,eliminatingtheneedforplugins.2)Semanticelementsimproveaccessibilityandcodereadability.3)Featureslikeenablepowerful,responsivewebappl

Significant Goals of HTML5: Enhancing Web Development and User ExperienceSignificant Goals of HTML5: Enhancing Web Development and User ExperienceMay 14, 2025 am 12:18 AM

HTML5aimstoenhancewebdevelopmentanduserexperiencethroughsemanticstructure,multimediaintegration,andperformanceimprovements.1)Semanticelementslike,,,andimprovereadabilityandaccessibility.2)andtagsallowseamlessmultimediaembeddingwithoutplugins.3)Featur

HTML5: Is it secure?HTML5: Is it secure?May 14, 2025 am 12:15 AM

HTML5isnotinherentlyinsecure,butitsfeaturescanleadtosecurityrisksifmisusedorimproperlyimplemented.1)Usethesandboxattributeiniframestocontrolembeddedcontentandpreventvulnerabilitieslikeclickjacking.2)AvoidstoringsensitivedatainWebStorageduetoitsaccess

HTML5 goals in comparison with older HTML versionsHTML5 goals in comparison with older HTML versionsMay 14, 2025 am 12:14 AM

HTML5aimedtoenhancewebdevelopmentbyintroducingsemanticelements,nativemultimediasupport,improvedformelements,andofflinecapabilities,contrastingwiththelimitationsofHTML4andXHTML.1)Itintroducedsemantictagslike,,,improvingstructureandSEO.2)Nativeaudioand

CSS: Is it bad to use ID selector?CSS: Is it bad to use ID selector?May 13, 2025 am 12:14 AM

Using ID selectors is not inherently bad in CSS, but should be used with caution. 1) ID selector is suitable for unique elements or JavaScript hooks. 2) For general styles, class selectors should be used as they are more flexible and maintainable. By balancing the use of ID and class, a more robust and efficient CSS architecture can be implemented.

HTML5: Goals in 2024HTML5: Goals in 2024May 13, 2025 am 12:13 AM

HTML5'sgoalsin2024focusonrefinementandoptimization,notnewfeatures.1)Enhanceperformanceandefficiencythroughoptimizedrendering.2)Improveaccessibilitywithrefinedattributesandelements.3)Addresssecurityconcerns,particularlyXSS,withwiderCSPadoption.4)Ensur

What are the main areas where HTML5 tried to improve?What are the main areas where HTML5 tried to improve?May 13, 2025 am 12:12 AM

HTML5aimedtoimprovewebdevelopmentinfourkeyareas:1)Multimediasupport,2)Semanticstructure,3)Formcapabilities,and4)Offlineandstorageoptions.1)HTML5introducedandelements,simplifyingmediaembeddingandenhancinguserexperience.2)Newsemanticelementslikeandimpr

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Atom editor mac version download

Atom editor mac version download

The most popular open source editor