当前位置:网站首页>2022 latest Android interview written examination, an Android programmer's interview experience
2022 latest Android interview written examination, an Android programmer's interview experience
2022-07-05 18:40:00 【InfoQ】
Preface

1. Routing in componentization 、 The realization of buried point
- The first is the page jump between components (Activity To Activity, Fragment To Fragment, Activity To Fragment, Fragment To Activity) As well as data transfer during jump ( Basic data types and serializable custom class types )
- The second is the call of custom classes and methods between components ( Components provide services to the outside )
- Code buried point: Call... When an event occurs SDK The corresponding interface inside sends buried point data , Baidu statistics 、 umeng 、TalkingData、Sensors Analytics The third-party data statistics service providers mostly adopt this scheme
- Full buried point: Full buried point refers to Web page /App All that comes from within 、 The act of satisfying a condition , All reports to the background server
- Visual burying point: Through visualization tools ( for example Mixpanel) Configure the collection node , stay Android The end automatically analyzes the configuration and reports the buried point data , So as to realize the so-called automatic embedding point
- No burying point: It doesn't really need to be buried , It is Android The terminal automatically collects all events and reports the buried point data , Filter out useful data in the back-end data calculation
2.Hook And pile insertion technology

- want root jurisdiction , direct Hook System , Can kill all App.
- nothing root jurisdiction , But only Hook Oneself app, For other systems App incapable of action .
3.Android Signature mechanism of ?
- A summary of the news: On message data , Perform a one-way Hash function , Generate a fixed length of Hash value
- digital signature: A method of storing message signatures in electronic form , A complete digital signature scheme should consist of two parts : Signature algorithm and verification algorithm
- digital certificate: A certificate authorized (Certificate Authentication) Central digital signature file containing public key owner information and public key
4.Android5.0~10.0 A big change between
- MaterialDesign Design style
- Support 64 position ART virtual machine (5.0 To launch the ART virtual machine , stay 5.0 Before is Dalvik. The difference between them is :Dalvik, Each run , Bytecode needs to be converted into machine code by an instant compiler (JIT). ART, The first time I installed the app , Bytecode will be precompiled into machine code (AOT))
- The notification details can be designed by users themselves
- Dynamic authority management
- Support fast charging switching
- Supports folder drag and drop applications
- Camera new professional mode
- Multi window support
- V2 Signature
- Enhanced Java8 Language patterns
- Night mode
- Optimization notification : Notification channels (Notification Channel) Notice sign Sleep Notification timeout Notification settings Notice to clear
- Picture in picture mode : In the list Activity Set up android:supportsPictureInPicture
- Background restrictions
- Auto fill frame
- system optimization
- And so on
- indoor WIFI location
- “ bang ” Screen support
- Security enhancements
- And so on
- Night mode : All apps, including mobile phones, can set the dark mode for them .
- Desktop mode : Offer something similar to PC Experience , But it was far substitute PC.
- Screen Recording : By long press “ Power Supply ” Menu " Screenshot " To open .
5. Under the said Measurepec This class
- UNSPECIFIED: The parent container is not right View There are any restrictions , How big, how big . It is often used inside the system .
- EXACTLY( Accurate model ): The parent view specifies an exact size for the child view SpecSize. Corresponding LyaoutParams Medium match_parent Or specific values .
- AT_MOST( Maximum mode ): The parent container specifies a maximum size for the child view SpecSize,View The size of cannot be greater than this value . Corresponding LayoutParams Medium wrap_content.

6. Please give an example of Android Layout types are commonly used in , And describes its usage and typesetting efficiency
- Traditional layout ( To write XML Code 、 Code generation ):
- Frame layout (FrameLayout):
- Linear layout (LinearLayout):
- Absolute layout (AbsoluteLayout):
- Relative layout (RelativeLayout):
- Table layout (TableLayout):
- New layout ( Visual drag and drop control 、 To write XML Code 、 Code generation ):
- Constrained layout (ConstrainLayout)
- For nested layers View for , Its typesetting efficiency :LinearLayout = FrameLayout >> RelativeLayout
7. difference Animation and Animator Usage of , Summarize its principle
- Types of animation: The former has only transparency , rotate , translation , Telescopic 4 Species attribute , And for the latter , As long as it is the property of the control , And there are setter The methods of the attribute can perform a dynamic change effect on the attribute .
- Operational objects: The former can only UI Component execution animation , But attribute animation can animate almost any object ( Whether it's on the screen or not ).
- Animation playback order: stay Animator in ,AnimatorSet It is through playTogether()、playSequentially()、animSet.play().with()、before()、after() These methods are used to control multiple animations to work together , So as to achieve accurate control of the animation playback sequence
8. What image loading libraries have been used ?Glide Where is the source code design subtle ?
- Image loading Library :Fresco、Glide、Picasso etc.
- Glide The subtlety of the design is :
- Glide Life cycle binding: You can control the loading status of the picture to synchronize with the life cycle of the current page , Make the whole loading process start with the state of the page / recovery , stop it , The destruction
- Glide Cache design: adopt ( Three level cache ,Lru Algorithm ,Bitmap Reuse ) Yes Resource Cache design
- Glide The complete loading process: use Engine The engine class exposes a series of methods for Request operation
9. How to bypass the 9.0 Limit ?

10. How to do this for application update ? ( Grayscale , Force update 、 Sub regional update )
- Get the online version number through the interface ,versionCode
- Compare Online versionCode And local versionCode, The update window pops up
- download APK file ( File download )
- install APK
- Find a single channel to launch a special version .
- Upgrade the platform , It is allowed to push upgrade notifications and even force version upgrades for some users .
- Open a separate download portal .
- Both versions of the code hit app In the bag , And then in app End implant test framework , Used to control which version is displayed . The test framework is responsible for communicating with the server side api signal communication , Controlled by the server app On A/B Distribution of versions , A specified group of users can see A edition , Other users see B edition . The server will have corresponding reports to display A/B Quantity and effect comparison of versions . Finally, it can be controlled by the background of the server , All users switch online to A perhaps B edition ~
- Either way, you need to do a good job of version management , Assign a special version number to distinguish . Of course , Since it's gray scale , Data monitoring ( General data 、 New feature data 、 Main business data ) We still have to do it in place , The data pile to be driven should be driven . also , Grayscale version should have the ability to recover , Generally, it is forced to upgrade to the next official version .
11. Will use Kotlin、Fultter Do you ? Talk about your understanding
- Kotlin Is a cross platform with type inference , General purpose programming language for static types . Kotlin Aim at and Java Full interoperability , Of its standard library JVM Versions depend on Java Class library , But type inference allows its syntax to be more concise .
- Flutter By Google Create an open source mobile application development framework . It is used for development Android and iOS Applications for , As well as Google Fuchsia The main way to create an application
- About kotlin Importance , I believe you can experience in daily development , Apply to actual development , Grammar sugar needs to be avoided ( For example, single column mode 、 A null value judgment 、 Higher order functions, etc )
- as for Flutter, at present Google The official documents are not perfect , There are few projects written in this language on the market , If you need to be specific , Please refer to the official documentation
The end of the
- Mind map
- Performance optimization learning notes


- Performance optimized video
- When you have a learning path , What to learn , I also know how to go in the future , If you see too much theory, you have to practice it .
边栏推荐
- 蚂蚁集团开源可信隐私计算框架「隐语」:开放、通用
- ROS安装报错 sudo: rosdep:找不到命令
- Nacos distributed transactions Seata * * install JDK on Linux, mysql5.7 start Nacos configure ideal call interface coordination (nanny level detail tutorial)
- Vulnhub's darkhole_ two
- Tupu software digital twin | visual management system based on BIM Technology
- Trust counts the number of occurrences of words in the file
- Isprs2022/ cloud detection: cloud detection with boundary nets
- The 11th China cloud computing standards and Applications Conference | cloud computing national standards and white paper series release, and Huayun data fully participated in the preparation
- RPC protocol details
- SAP 特征 特性 说明
猜你喜欢

小程序 修改样式 ( placeholder、checkbox的样式)

The 10th global Cloud Computing Conference | Huayun data won the "special contribution award for the 10th anniversary of 2013-2022"

瀚升优品app翰林优商系统开发功能介绍

AI金榜题名时,MLPerf榜单的份量究竟有多重?

《2022中国信创生态市场研究及选型评估报告》发布 华云数据入选信创IT基础设施主流厂商!

Nacos distributed transactions Seata * * install JDK on Linux, mysql5.7 start Nacos configure ideal call interface coordination (nanny level detail tutorial)

让更多港澳青年了解南沙特色文创产品!“南沙麒麟”正式亮相

进程间通信(IPC):共享内存

How to automatically install pythn third-party libraries

爬虫01-爬虫基本原理讲解
随机推荐
The 10th global Cloud Computing Conference | Huayun data won the "special contribution award for the 10th anniversary of 2013-2022"
7-2 keep the linked list in order
Electron installation problems
金太阳开户安全吗?万一免5开户能办理吗?
buuctf-pwn write-ups (9)
The origin of PTS, DTS and duration of audio and video packages
Use QT to traverse JSON documents and search sub objects
ConvMAE(2022-05)
Logical words in Articles
使用JMeter录制脚本并调试
max31865模块RTD测温注意事项
Writing writing writing
ConvMAE(2022-05)
Share: ZTE Yuanhang 30 Pro root unlock BL magick ZTE 7532n 8040n 9041n brush mask original brush package root method Download
[paddlepaddle] paddedetection face recognition custom data set
[PM2 details]
[HCIA cloud] [1] definition of cloud computing, what is cloud computing, architecture and technical description of cloud computing, Huawei cloud computing products, and description of Huawei memory DD
Memory management chapter of Kobayashi coding
c语言简便实现链表增删改查「建议收藏」
爬虫01-爬虫基本原理讲解





