android decompilation tool! The top-level Android development tools that developers must-have, direct trains from major manufacturers!

Preface

2020 is a year of turning point. Due to the epidemic in the first half of the year, many friends who studied android development lost their jobs. Although they found a job, they didn’t make the difference. In the second half of the year, Gold, Nine, Silver, and Ten have ideas to change a job, and there are a lot of needs. Dachang interview experience and the real interview questions of Dachang, want to prepare for the next question in advance. Next, I will share my interview experience and summary of big companies such as Bytedance, Alibaba, Baidu, Xiaomi and so on. (Enclosed at the end of the article is a complete analysis of real questions)

  • Ali (rejected)
  • Byte beating (offer)
  • Xiaomi (offer)
  • Hand hundred (offer)

Faced with so many cross-platform solutions, why is Flutter the hottest cross-platform technology? What are the advantages?

Both RN and Weex use JavaScript as the programming language and JavaScript as the front-end development language. It can be said to shine in cross-platform development. The use of web technology can not only develop websites, but also develop mobile web applications and mobile applications. The trend of unifying the three realms (Android, iOS, and Web) is what everyone often calls the "big front end" era. The fluency of these technical solutions is not very good, and the consistency of the platform is poor, so far they have not been able to replace native development on a large scale.

Flutter is written in the Dart language, and the development experience is closer to the client. From the feedback from everyone, the process of the Flutter development environment is not very friendly for front-end development. Flutter's positioning is also multi-terminal integration, but with the client as the head, first polish the Android and iOS dual-terminal development experience, and then gradually penetrate to the web side. It can also be seen from the Roadmap planned by Flutter that Flutter for web is still in preview. Version, the Flutter client direction has already launched many applications in full swing.

Before this, everyone often said "big front end". For Flutter technology, it is more appropriate to call it "big mobile end" in my opinion. Flutter's UI framework gives priority to supporting client (Android/iOS) applications at the same time, and then Adapt to the web. In the mobile Internet era, many companies have formulated a "mobile first" strategy, and even only develop the mobile terminal without the Web terminal. The era of mobile Internet has created a "big mobile terminal." Flutter, as a high-performance cross-platform technology solution that can be comparable to native, may dominate the world.

In the field of cross-platform technology, as long as there is a challenge, the technology will not stagnate. With the continuous evolution and innovation of technology, it will eventually become better.

6. Flutter technical advantages

Flutter is a thorough cross-platform solution. It does not use webView or JS to bridge native controls. Instead, it implements a set of UI framework by itself and renders it to the screen through Skia at the bottom of the engine. For the services provided by the mobile device itself that need to be used outside the UI, such as camera, positioning, screen touch, etc., platform channels are used to communicate with the native system.

Regarding the advantages of Flutter, returning to the 4 elements of mobile technology selection mentioned above, research and development efficiency, dynamics, multi-end consistency, and performance experience, respectively correspond to the following set of words.

  1. High efficiency: Use the dart language to write code. Although it takes a little time to get started, it will be more efficient after proficiency. A set of code is suitable for multiple platforms (Android, iOS, Web), and efficient Hot Reload can quickly assist debugging;
  2. Dynamic: In March 2017, Apple issued a warning email to prohibit hot update solutions for iOS App such as JSPatch. Since then, iOS dynamic has become a topic that should not be discussed publicly. Similarly, the Flutter engine has made some attempts to dynamics in an official version, but the subsequent removal based on risk considerations, of course, does not hinder everyone from exploring the technology, and it is not convenient to discuss it here;
  3. High consistency: to achieve UI pixel-level control, the Flutter rendering engine relies on the cross-platform Skia graphics library to achieve, and only relies on the system graphics drawing-related interfaces. For example, in the future, Android will support vulkan and iOS will support metal. These are all packaged by skia transfer. The experience consistency of different platforms can be guaranteed to the greatest extent, as shown in the figure below.

  1. High performance: Rendering performance is better than various existing cross-platform frameworks, and is comparable to native performance cross-platform technical solutions. Dart code execution efficiency is higher than JS. It is compiled into platform native code through AOT, and rendering adopts self-rendering skia scheme. There is no need for JS Bridge to bridge, and no need for Art virtual machine to participate. Let's take a look at the high performance of Flutter from the perspective of rendering.

Illustration:

  • Android native framework, by calling the Java Framework layer, and then calling skia to render the interface;
  • Other cross-platform solutions (such as RN) use the JSBridge middle layer to convert the APP written in JS into the corresponding native rendering logic. It can be seen that more logic is added than the native code, and the performance is inferior to that of the native framework;
  • Flutter framework, APP calls the Dart Framework layer, and then directly calls skia to render the interface. It does not go through the native Framework process. It can be seen that its rendering performance is not weaker than Native technology. This is a cross-platform technology with a high performance limit.

Of course, I have to say that the current Flutter is indeed not perfect enough, there will be some insufficient perfection, such as the ecology is not sound enough, the package size problem, but the upper limit of the scheme is relatively high, the imagination space is relatively large, I believe that more developers will participate , After more polishing, we will do better in the future.

7. Recent developments in the industry

Flutter was officially announced at the Google I/O Conference in May 2017, and Flutter 1.0 was released in December 2018, triggering a large number of developers and companies around the world to start researching Flutter. In StackOverflow's 2019 global developer documentation survey, Flutter was selected as one of the most popular frameworks for developers, surpassing TensorFlow and Node.js.

Up to now, more and more companies around the world have used Flutter technology in well-known apps that everyone is familiar with. Especially well-known domestic Internet companies have invested heavily in Flutter, and the community is also very active.

8. Future Trends of Flutter

At present, Flutter is mainly on the mobile Android/iOS dual-end cross-terminal. Flutter's vision is to become a multi-terminal UI framework that can support not only the mobile terminal, but also the Web, desktop, and even embedded devices. The framework for using Flutter to develop web applications was launched at the 2019 Google I/O Developers Conference. In September of the same year, Flutter 1.9 was released and Flutter web was merged into the Flutter main warehouse.

From the perspective of the architecture diagram, Flutter uses the same Dart Framework layer to unify the Flutter C++ engine and Web engine, which can eventually run on Android, iOS, and Browser. It is not difficult to see from the Flutter engine code that Flutter also supports the Fuchsia operating system.

Fuchsia is a new operating system being developed internally by Google. It uses Flutter as the default UI framework of the system, which means that Flutter naturally supports Fuchsia, which undoubtedly gives Flutter more advantages in many cross-platform solutions.

[Attached] Relevant framework and information

Data collection

Click here to get free Android IOC architecture design and other materials

F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**

Receive access to previous Android advanced architecture materials, source code, notes, and videos. Advanced UI, performance optimization, architect courses, NDK, hybrid development (ReactNative+Weex) WeChat applet, Flutter's all-round Android advanced practice technology, and there are technical experts in the group to discuss, communicate and solve problems.

Guess you like

Origin blog.csdn.net/Sunbuyi/article/details/114190780