Archsummit direct hit | Build a smooth natural flutter page


Amoy Technology Department | Leisure Fish Technology | Cloud

"Fully strengthening the flutter fluidity, sharing challenges, online monitoring tool construction, optimization means to precipitate in component containers, and finally optimized advice."

Zhang Yunlong (cloud from), idle fish client experts.Since Netease, byte, Ali is running. At the current Department of Alibaba, there are currently responsible for idle fish APP packages, fluidity, start-up equation experience.


This sharing revolves around FLUTTER fluidity, respectively: 1.Flutter fluidity optimization challenge; 2. List container and flutterdx component optimization; 3. Performance measurement and devTool extension; 4.Fltter sliding curve optimization; 5. Performance optimization suggestions.

FLUTTER fluency optimization challenge

Business complexity challenge

FLUTTER has always been known by everyone, and the list controls displayed by Flutter Gallery (shown in the left) is indeed very smooth. But the actual business scene (shown on the right) is more complex than the Gallery list demo:

  1. Same card, more and complex (such as rounded) view control;

  2. When the list scroll, there are more view logic, such as scrolling control of other controls and disappearing;

  3. Card controls, there are more business logic, such as a different label, activity price, etc. based on background data, and there is also common business logic, etc.

  4. Because idle fish is an e-commerce app, we need to have certain dynamic capabilities to deal with frequently changed activities. Here we use the Flutter Dynamicx components of Ali to implement our dynamic capabilities.

Framework challenge

Let’s look at the overall flow of the list, here only pay attention to the free scroll phase after the finger is released.

  1. When the finger is released, the initial speed is calculated based on ScrollDragController.end;

  2. UI Thread requests RequestFrame to Platform Thread, and calls BegInframe to UI Thread at Platform Thread.

  3. The UI Thread Animate phase trigger list slides a little distance while registering the next frame callback to Platform Thread;

  4. Ui Thread Build Widget, generate / update the renderObject tree through the three tree DIFF algorithm of Flutter;

  5. UI Thread RenderObject Tree Layout, Paint Generates an Scene object, and finally passed to Raster Thread to draw on-screen;

The above flow must be completed in 16.6 ms to ensure that the frame cannot be guaranteed. Most of the cases, there is no need to build a new card, but when the new card enters the list area, the entire calculation amount will become huge, especially in complex business scenes, how to ensure all calculations within one frame of 16.6ms, Is a small challenge.

The figure above is a sliding devTool sample, and the Carton stage occurs when the new card is on the screen, and the other phases are very smooth, because the scrolling speed is attenuated, so the carton interval is also getting bigger. Because most of the time is very smooth, the average FPS is not low. However, the new card is built at the time of production, which gives us a stylish body feeling.

Challenge of dynamic capabilities – Flutter Dynamicx

The free fish APP card uses the self-developed Flutter Dynamicx to support our dynamic capabilities. Basic Principle: Online Edit Layout DSL, generate DX files and send it. The end side generates the DXComponentWidget by parsing the DX file and combines the back card data, and finally generates Widget Tree. FLUTTER DYNAMICX technology brings dynamic update capabilities, unified monitoring capabilities (such as dxcomponentwidget monitoring cards), good research and development insecurity (online DSL and Android Layout, and optimize Android), online editing capabilities;

But in performance, we also pay a certain price: DX cards add time to the template loading and data binding overhead, Widget wants to recursively create through WidgetNode traverses dynamically, and the view nesting layer will be deeper (followed by later).

Description: Flutter Dynamicx Reference Ali Group DSL Rules Realization

User’s sense of physical challenge

I have already described above, and the card in the FLUTTER list is more obvious.

When Android RecycleView occurs, the physical feel is not obvious, and the FLUTTER list has occurred when the card occurs, not only the time pause, but also a hopping on the OFFSET, and the physical feeling of small card is also changed. It is obvious;

Suppose the list content is simple enough, scrolling does not happen, we also found that the Flutter list and Android RecycleView are not the same:

? Use ClampingscrollPhysics to feel the feeling of similar magnets when the list is stopped.

? Use BOUNCINGSCROLLLPHYSICS, the list is started, and the speed attenuation is faster;

On the 90Hz machine, the early flutter list is not smooth, the reason is that the touch sampling rate is 120 Hz, and the screen refresh rate is 90Hz, causing partial screens to be 2 touch events, part is a 1 touch event, last Resulting in rolling OFFSET effects. When the Flutter 1.22 version, RESAMPLINGENABLED can be used to re-sample the touch event.

List container and flutterdx component optimization

Telling the challenge of Flutter fluidity optimization, now share how you optimize the smoothness and precipitate into PowerScrollView and Flutter Dynamic components.

PowerScrollView design and performance optimization

PowerscrollView is a snarefish team’s self-developing Flutter list assembly, with better packages and supplements on the Sliver Agreement: Data increased deletion, complement local refresh; layout, supplemented the waterfall flow; incident, supplement the card on the screen , Away, scrolling events; control, support for scrolling to Index.

In terms of performance, the waterfall flow layout optimization, local refresh optimization, card division optimization, and sliding curve optimization.

PowerScrollView Waterfall Flow Layout

PowerScrollView Waterfall Flow Layout provides longitudinal layout, lateral layout, mixed arrangement (transverse card and ordinary card mix). Nowadays, most of the listings of the hiped fish are available in PowerScrollView’s waterfall flow layout, such as the home page, search results page, etc.

PowerScrollView Waterfall Flow Layout Optimization

First, through conventional cache optimization, cache each card upper corner X value and which column belonging.

Compared to the Slivergrid card into the list area, the waterfall flow layout, we need to define Page, card admission to create and leave the field destruction need to be units. Before optimization, Page calculates cards in a screen visual area, and in order to determine the starting point Y value of Page, the primary layout needs to calculate the Page N and N + 1 two pages, so the amount of cards involved in the layout calculation is much lower, and the performance is low. After optimization, the approximation of all card height averages calculates Page, which greatly reduces the number of participating in the layout card, and the number of cards destroyed by Page also becomes less.

After the column cache and paging optimization, use the idle fish Self-developing Benchmark tool (follow-up) to compare the waterfall flow and GridView, view the number of frames and the worst frame consumption, can find that performance performance is basically consistent.

PowerScrollView local refresh optimization

Leisure fish products expect users to browse products more smooth, will not be loaded by loadmore, so the list is required to trigger LoadMore during scrolling. FLUTTER SLIVERLIST When the LOADMORE supplement card data, the List control is tender, and the slterlist building will destroy all cards and recreate it, and the performance data can be imagined very bad. PowerScrollView provides a layout refresh optimization: all cards on the cache screen, no longer recreate, ui thread Optimize from the original 34MS to 6MS (see the lower left picture), the right image is viewed by Timeline, the depth and complexity of the view built Optimize.

PowerScrollView card fragmentation optimization

The second figure 2 card is the early search results page of the idle fish, and it is not a waterfall flow. To view the Timeline chart when the card is created (adding DX Widget creation and PerformLayout overhead), you can find that the complexity of the card creation is extremely large. On the normal mid-range machine, the UI Thread consumes more than 30ms, to be optimized to 16.6ms It is very difficult to use routine optimization. For this purpose, two cards can be disassembled, and each frame is used to render.

Directly see the source code, the basic idea is to mark the card widget, when the card is true, the right card first _BuildPlaceHoldercell builds the Widget (empty Container), and register the next frame. In the next frame, the right card is modified with NeedShowRealcell for True, and self-laminate, and then build real content.

Is it delayed to build a true content of the card, will it affect the display content? Because the FLUTTER list has a cacheextends area on the visual area, this part of the area is not visible. In most scenarios, users don’t see the scene of the blank card.

Also using the FLUTTER BENCHMARK tool to perform performance test, you can see 90 points before and after the card division, 99 packet consumption has a significant downgrade, and the number of lost frames is also reduced from 39 to 27.

Note Here, when listening to the next frame, you need widgetsbinding.instance.scheduleframe to trigger the RequestFrame. Because when the list is displayed, it is possible because there is no callback from the next frame, resulting in the task of the delay display queue, eventually makes the first screen content display is incorrect.

Delayed framing optimization ideas and suggestions

Comparison of Flutter and H5 design:

  1. DART and JS are single-threaded models that need to be sequenced and deserialized across threads;

  2. Flutter Widget is similar to H5 VDOM, there is a DIFF process.

Early Facebook In React Optimization, the Fiber Architecture is proposed: Based on the VDOM Tree’s Parent Node → Sub-node → Brothers Node → Sub-node, the VDOM Tree is converted to the Fiber data structure (chain structure), and the reconcile phase is implemented. Interrupt recovery; based on the Fiber data structure, the control section continues in the next frame.

Based on React Fiber thinking, we propose its own delayed framing optimization, not just left and right card size, further, render content disassembled as the current frame task, high-excellent delay task and low delay tasks, the upper screen priority is sequentially changed Low. Where the current frame task is the left and right white Container; the high-optovel delay task is exclusively frame, where the picture portion also uses Container placeholders; in the idle fish scene, we dismantled all DX image widget from the card, as low as low Excellent delay tasks and is set to no more than 10 in one frame consumption.

By disassembling the 1 frame display task to 4 frames, the highest UI on the high-end machine will be optimized from 18 ms to 8 ms.

Description 1: Different business scenes, high-yogle and low-probing task settings have different description 2: Slide on the low-end machine (such as Vivo Y67), the sub-frame scheme will let the user see the list whitening and content Upable process

FLUTTER-DYNAMICX Component Optimization – Principle Explanation

Edit the "Class Android Layout DSL", compile the binary DX file. The end side is downloaded, loaded, and resolved, and the WidgetNode Tree is generated. See the right figure.

After the business data issued in the background, the Widget Tree is generated by recursively traversing WidgetNode Tree, and finally appears.

Description: Flutter Dynamicx Reference Ali Group DSL Rules Realization

FLUTTER-DYNAMICX Component Optimization – Cache Optimization

I know the principle, it is easy to discover the flow in the red box in the picture: binary (template) file parsing load, data binding, Widget dynamic creation has certain overhead. To avoid repeated overhead, we have cached DXWIDGETNODE and DXWIDGET, and the blue selection code shows the Widget cache.

FLUTTER-DYNAMICX Component Optimization – Independence ISOLATE Optimization

In addition, the above logic is placed in a stand-alone ISOLATE, and the maximum amount is lowered to the lowest. After the line technology grayscale AB experiment, the average carton bad frame ratio is reduced from 2.21% to 1.79%.

FLUTTER-DYNAMICX Component Optimization – Hierarchical Optimization

FLUTTER DYNAMICX provides class Android Layout DSL, adds Decoration layers to implement each control Padding, Margin, Corner, adds the Decoration layer; to implement the DXContainerRender layer. Every layer has its own clear duty, the code level is clear. However, since the increase in 2 layers caused the Widget Tree hierarchy, the DIFF logic of 3 trees became complicated and the performance becomes low. To do this, we merge the Decoration layer and the DXContainerRender layer, see the middle Timeline diagram, which can be found that the optimized flame grading and complexity becomes low. After the line technology grayscale AB experiment, the average carton bad frame ratio is reduced from 2.11% to 1.93%.

Performance measurement and devtool extension

Tell the optimization tool, which is described here to make a measure of how to measure, and the build / extension of the tool.

Offline scene – Flutter BenchmarkWhen the FLUTTER is detected, the calculation consumption on the UI Thread and Raster Thread is required. So the Flutter optimizes before and after comparison, using the time consuming data of the UI Thread and Raster Thread of each frame.

In addition, the fluency performance value is affected by the operating gesture, the scrolling speed, so the error based on the measurement results of manual operations will have errors. Here, use the WidgetController control list control FLING.

The tool provides the interval between the scrolling speed, the number of scrolls, the scroll, and the like. After the scrolling test is completed, the data is displayed by the UI and Raster Thread frame, 50 points, 90 points, and 99-positioned frame consumption, and give performance data from a variety of dimensions.

Offline scenario – Based on the recording screen

Flutter Benchmark gives multi-dimensional measurement data at the Flutter page, but sometimes we need a horizontal comparison competition app, so we need to have a tool transverse to more different technologies. The idle fish is self-developed in the Android side to self-developed the recording screen data. Imagine the mobile phone interface into multiple screens, get the screen data (byte arrays) (byte arrays) by sending VirtualDisplay, interval 16.6 ms, using the Hash value of the byte array represents the current picture, the current 2 The Hash-read hash value is unchanged, and the Carton is considered.

In order to ensure that the fluency detecting tool app itself does not have a carton, it is read, which is compressed, and the compression ratio on the low-end machine is higher.

Through the detection of the tool without invading, a rolling test can be detected, the average FPS value (57), the frame distribution is variance (7.28), 1S time, the large number of large cards (0.306), large card cumulative time (27.919). Intermediate array display frame distribution: 371 represents the number of normal frames, 6 generations 16.62ms of small cardon quantity, 1 generation 16.63MS quantity.

Here is the definition of the big Carton: Carton, greater than 16.6 * 2 ms.

Offline Scene – Performance Detection Based on DEVTOOL

In addition, the scenes of the idle fish are also extended DevTool. In a Timeline map extended time-consuming, greater than 16.6ms red highlight, convenient development.

Online scene-Flutter high available detection FPS implementation principle

Online scene, idle fish self-developed Flutter high available. The basic principle is based on 2 events:

  • Ui.window.onbeginframe event

    • Engine notifies the VYSNC signal arrival, notify UI Thread to start preparing the next frame building

    • Trigger schedulerbinding.handlebeginframe callback

  • Ui.window.ondrawframe event

    • Engine Notification UI Thread Start Draw Next Frame

    • Trigger schedulerbinding.handledrawframe callback

Here we have recorded a frame start event before the Handlebeginframe processing, and the end of the frame is recorded after HandledrawFrame. Each frame here needs to calculate the list control offset value, and the specific code implementation is implemented. When the entire accumulated exceeds 1, executes a calculation, filtering out the scene without scrolling, calculates the FPS value using each frame.

Online Scene – FlutterBlockcanary Line Stack Stack Detection

After using Flutter high available to get the online FPS value, how to locate the stack information, you need to collect stack information. Free fish collects carton stacks using the self-developed Flutterblockcanary. The basic principle is that the signal is transmitted in the C layer, such as 5ms once, each signal receives the Dart Ui Thread stack collection, the resulting series of stacks are aggregated, and the same stacks in a row are considered to have occurred in Carton, this This stack is the stack of Carton we want.

The following figure is the stack information collected by Flutterblockcanary, and the middle framefpsRecorder.getscrolloffset is a Carton call.

Online scene – FlutterBlockcanary Detects overreservation

In addition, FlutterBlockcanary also integrates over-rendering detection capabilities. Replace the Buildowner object by replying widgetsflutterbinding, replacing the buildowner object, and rewrive the ScheduleBuildFor method to intercept Element. Based on the dirty ELEMENT node, extract the depth of the dirty node, the number of direct child nodes, the number of all child nodes.

Based on the number of all child nodes, in the idle fish details page, we are positioned to the "Quick Question View" during scrolling, and the number of transes and all child nodes are too large. View the code, positioning the view hierarchical level, by sinking the view to the leaves node, the number of stasible Build nodes is optimized from 255 to 43.

FLUTTER sliding curve optimization

The front told Tarton optimization means and measures and standards are mainly surrounded by FPS. But from the user’s physical feel, we found that Flutter also has many optimal points.

FLUTTER list slide curve and native curve

Compare the scroll curve of OFFSET / TIME, you can find that the Flutter BouncingScrollsimulation and iOS scroll curve are close, Clampingscrollsimulation and RecyClerView are close. Check the Flutter source code, it is true.

Because BouncingScrollsimulation has rebound, many pull-down refreshes and load more features are based on BOUNCINGSCROLLSIMULATION package, which causes the Flutter page sliding, physical and native Android pages inconsistent.

Flutter list performance and optimization under fast sliding

Although the Clampingscrollsimulation slides and Android RecyclerView is close, but in the quick sliding scenario, you can find that the flutter list scrolls quickly stops, and quickly slides. For the reason, you can see the moment that the sliding curve is stopped, and the speed is not a decline, and it will speed up, finally reach the end point, and stop. Based on the source code formula, the curve can be discovered that flutter clampingscrollsimulation is approximated by the Formula Fitting Method to approximate the Android RecyclerView Curve. In the case of rapid sliding, the focus of the formula curve is not 1 corresponding value, but the right image is broken, the speed will become fast.

It can be understood that the FLUTTER’s formula fit is not ideal. In the near future, there is also a PR proposed using DART to implement the RecyclerView curve.

Flutter list performance and optimization in the case of Carton

The first chapter is mentioned in the case of the same FPS, such as the FPS 55, the native list feels smooth, and the styles of the FLUTTER list are more obvious. One reason here is that the native list usually has multiple thread operations, and there is a lower probability of the big Carton; the other reason is that the same small carton’s body, FLUTTER has obvious statter, and the native list can’t feel. So why?

When we build cards, we deliberately create small Carton, compare the flutter list and RecyclerView before and after, and you can find that RecyclerView Offset does not hop, and the Flutter curve has a lot of burrs, because Flutter scrolling is based on D / T curve calculation, When a carton occurs, △ t doubles, and OFFSET also trips. It is also because of time pause and offset jump, let users know that the Flutter list is not unstoppable in small Carton.

By modifying the Y=D (T) formula, in the case of Carton, ΔT-16.6ms will ensure that the small Carton case is not hopped. In the case of Great Carton, it is not necessary to reset the ΔT to 16.6ms, because in the parking time, it has been clearly allowed to give the user to feel the carton, OFFSET does not have a trip only to make the list rolling distance short.

Performance optimization

Finally share some suggestions for performance optimization.

  1. In optimization, we should pay more attention to the user’s body, not only the performance value. The upper right map is visible, even if the FPS value is the same, but the taste occurs, the body feels clearly; the bottom of 2 game recording screens, the left side average 40 fps, the average of 30 fps, but the body feels is more smooth .

  2. Not only should I pay attention to the performance of UI Thread, but also pay attention to the overhead of Raster Thread, such as the characteristics / operation of Save Layer, but also causing Carton.

  3. In terms of tool, it is recommended to use different tools in different scenarios. It should be noted that the problem of tool detection is a stable reproduction problem or the occasion of data jitter. In addition, it is also necessary to consider the performance overhead of the tool itself, and the tool itself needs to be as low as possible.

  4. In terms of optimization ideas, we must broaden the direction. Most optimized ideas of Flutter are optimized computing tasks; and multithreading direction is not, refer to the independent ISOLATE Optimization of Flutter Dynamicx; in addition, it is difficult to digestive tasks for one frame Whether it is possible to disassemble multiple frame time, try to make a card per frame, priority to the user.

  5. Finally, I recommend paying attention to the Flutter community. The Flutter community continues to have a variety of optimization, regularly upgraded Flutter or dimensions, CHERRY-PICK optimization submission, is a good choice.

Performance analysis tool usage suggestions

Flutter tool, the first push is the official devtools tool, the Timeline and CPU Flammatic maps can help us discover problems well; in addition, Flutter also provides a wealth of Debug Flags to assist our positioning problems, familiar with each Debug switch Role, I believe that there will be no homage to our daily research and development; in addition to official tools, performance logs are also good auxiliary information, as shown in the lower right corner, the idle fish Fish-Redux component outputs the task overhead in the scroll, can It is convenient to see that at that moment.

Performance analysis tools themselves

Performance testing tools inevitably have certain overhead, but must be controlled within an acceptable range, especially on the line. A case in front sharing the FLUTTERBLOCKCANARY detection tool, discovers the framefpsRecorder.getscrolloffset time consumption, and the logic is just that Flutter is highly available to scroll offset. See the right front source code of the right picture, each frame needs to be recursively traversed to collect RenderViewPortBase, which is a small overhead. Finally, we avoid the repetition calculations during the scroll through the cache optimization.

Carton optimization suggestions

Reference official documents and excellent performance articles, precipitated a lot of routine optimization methods in the UI and GPU side, such as refreshing the minimum widget, using itemextent, recommended using Selector and Consumer, etc., avoid unnecessary DIFF computing, layout calculation, etc. Reduce SAVELAYER, replace half-transparent effects using images, alleviate the overhead of the Raster thread.

Because of the reasons, only part of the sequence, more common optimization suggestions see the official documentation.

Use the latest Flutter Engine

As mentioned earlier, the Flutter community is also active, Framework and Engine layers have an optimized PR income, which mostly can make the business layer without perception, and better optimize performance from the bottom viewing angle.

Here, there is a typical optimization scheme: existing flutter solution: When each VSYNC signal arrives, it triggers the build operation. At the end of Build, start register the next vsync callback. In the case where a carton does not occur, see Figure Normal. However, in the case of carton, see Figure Actual Results, just over 16.6ms here, because it is a registration listening to the next vsync callback, triggered the next build, for this, a large amount of time in the middle. Obviously, what we expect is, at the end, immediately execute, assuming enough to execute enough, this time the screen is still smooth.

If the team allows, it is recommended to upgrade the flutter version regularly; or maintain your own Flutter independent branch is also a good choice. From the community Cherry-Pick optimization, you can guarantee that business stability can also enjoy the community contribution. In short, I recommend you to pay attention to the community.


In summary, the challenges, monitoring tools, optimization methods, and recommendations are shared by Flutter fluidity optimization. Performance optimization should be people-centered, develop monitoring indicators and optimization points from actual physical fitness; fluency optimization is not one, the above share is not all, there are many optimized means to pay attention: How to better multiplex Element, how to avoid Platform Thread busy leading to vsync signal lacking, etc., is a point that can be concerned. Only the continuous technical enthusiasm and conscious spirit can optimize the APP performance to the ultimate; technical teams also have access to open source communities, other teams / companies to connect, That stone stone, Can be attacked.

What are the use of face recognition technology?

In recent years, artificial intelligence has developed rapidly, especially human face recognition technology, is increasingly widely used in daily life. After entering the 21st century, China Electronic Technology has developed rapidly in just decades, and it is inseparable from the promotion of scientific and technological talents. From human beings enter the steam era, then go to the electrical age, human beings have begun to develop rapidly, and science and technology enters the era of large bombings. Technical application makes us live more fast, efficient, intelligent.

Today mainly introduces people’s face recognition technology, face recognition system has a wide range of applications: face recognition, face recognition, banned tarthen system, face recognition monitoring management, face recognition computer security, face recognition photo search , Face recognition, registration, face recognition ATM wit, video alarm system, face recognition prison intelligent alarm system, face recognition RFID intelligent customs clearance system, face recognition public security criminal pursuit of intelligent alarm system and so on. If the Alipay brush is paid, the "safe city" built by the public security is arrested in the escape criminals, brushing the face into the community, etc. is the application of face recognition technology.

Scope of application: park, factory, supermarket, community square, conference center, sports venue, school, hospital, residential area, commercial street, large-scale farm market, etc. Important parts, hotels, restaurants, catering, entertainment venues Monitoring recording purposes for indoor and outdoor surveillance of the lobby entrance, elevator and other major channels.

Face capture and tracking

Face capture refers to a frame in a frame of an image or video stream and separating portraits from the background and saves it automatically. Portrait tracking refers to the use of portrait capture techniques that automatically tracks it when the specified portrait is moving within the range of the camera.

Face recognition alignment

Face recognition is divided into two comparisons and search formulas. The verification is that the portraits of the captured or the specified portrait have been logged in the database. Remember that a certain object is determined to be the same person. Searching comparison means searching for searching for a specified portrait from all portions registered in the database.

Face modeling and search

The system can model the portable data of the library to extract the characteristics of the face and save it into the database (face feature file) to the database. When performing a face search (search formula), the specified portrait is modeled, and it will be identified compared to the templates of all people in the database, and ultimately list the most similar person according to the compared similar value. List.

The Newjin District as a pilot city representative in the "Kechuang China" artificial intelligence governance closed door experience sharing

On November 29th, hosted by the "Kechuang China" advisory committee"Kechuang China" artificial intelligence governance closed meetingHeld in the form of an online Tencent meeting. Chengdu Xinjin District is an invited meeting as a pilot city, and has experienced experience in "digital communication new cities, new industries, the practice of new life". It is also the only pilot city representative of the conference. .

This meetingArtificial intelligence governance under the new situation"" For the theme, focus on the intelligent management of the new development philosophy, the privacy protection of the sharing of major data in the artificial intelligence industry, construct the standard and norm of the government governance intelligence, invited the "Komantui China" Advisory Committee Members, artificial intelligence field experts, "Kechuang China" pilot city representative, to carry out forward-looking trend analysis, academic research discussion and practice sharing.

As the only pilot city representative of the only experience in sharing practices,Digital communication new city, new industry, new life practice exploration"As the subject, I introduced Xinjin to the key starting of the digital empowerment entity as a cross-economic transformation, driving high-quality development, with digital economy, cultivating the city innovation industry, relying on industrial function area spatial field promotion digital communication The physical industry, building a new city, developing new manufacturing, reshaping new rural villages, and accelerating the practice of promoting the economy to enter the high-quality development of fast lanes, and the experts of the participating meeting will "double development + double drive" intelligent manufacturing of Xinjin Industrial Internet "Digital Agricultural Expo + Link Urban and Rural" link Xinjin new city, new manufacturing, new villages, and innovative paths that integrate development, and discuss it.

verified! OPPO new machine will be equipped with Qualcomm New Snapdragon 8 chip

On December 1, OPPO announced at the 2021 Qualcomm Snapdragon Technology Summit that OPPO’s new flagship machine will be equipped with a new generation of Snapdragon 8 5G mobile platform and will be available in the first quarter of 2022. At the same time, including onePlus, which has previously become an OPPO sub-brand, the cooperation between OPPO big family and high-tech will enter a new stage, continue to promote 5G in the global Pu Wei development, explore and build intelligence.cell phoneThe next stage.

Zhang Xiao, vice president of OPPO Overseas Sales, said: "OPPO has been close to Qualcomm to maintain closeness, mutual trust, continues to achieve new results in the process of promoting 5G global development. OPPO flagship products have taken the lead in using flagship Snapdragon Motion Platform, in order for global users to bring excellent innovation mobile experience. OPPO flagship new products with new generation of Snapdragon 8 5G mobile platform will continue to provide users with strong power and diverse extra experience. We believe, OPPO flagship new products The annual flagship product will be again defined. "

Since the open business, the popularity and development of 5G in the world have always maintained rapidly. The latest data shows that as of the end of May, 2021, 169 operators in 70 countries and regions around the world have launched 5G commercial services [data from the Global Mobile Suppliers Association Global Mobile Supplier Association "global 5G Terminal Development Status Report "]. As the fourth largest smartphone brand in the world, OPPO continues to work with Industrial partners in Qualcomm, and work together to promote 5G from the products and applications.

In 2021, OPPO has launched a variety of mobile phones with Snapdragon 5G mobile platform, including the Find X3 series, RENO6 series, not only bringing more global users.5G mobile phoneChoose, also bringing more kinds of technological innovations for them. After the brand mission of "Technology is a good world", OPPO is more focused on scientific innovation from the perspective of 5G mobile phone products. For example, the OPPO Find X3 series is equipped with a full-link color management system that provides color visual enhancements for users with weak color identification capabilities, bringing superior and user-friendly. Screen experience.

In addition, in April 2021, OPPO was used to complete Europe’s first SA commercial manufacturer using the Snapdragon Mobile platform, and Higtong worked hands with Qualcomm to promote 5G SA network construction, and accelerated 5G commercial landing in the global market. Up to now, OPPO has become a partner with more than 80 operators around the world, and has achieved further business progress in Europe and emerging markets, including Latin America, South Africa, and in Europe, including Latin America. These achievements are inseparable from the leading technical partners represented by Qualcomm.

OPPO has always adhered to the idea of ??opening, mutual benefit, win – win, working with more industry-leading partners including Qualcomm, actively exploring more valuable cutting-edge technology and applications. OPPO and brand OnePlus faces the future, insist on the implementation of technological innovation to promote 5G evolution, ecological cooperation is the key force to play 5G scale effects, through all-round innovation and cooperation, constantly bringing quality experience and excellence product.

What is the relationship between the first batch of the first batch of millet and Qualcomm?

Zhongguancun Online Message: Lenovo Interpise Hu Xiaomi’s starting flagship chip is the second time.The first time is two years ago, Snapdragon 855, the responsible person of the Lenovo mobile phone business at that time was still the manner we are familiar with the shopkeeper.

After a year, Lenovo once again grab the first hair of the Snapdragon High-end flagship chip and did the world’s first.Where is Xiaomi?The first Qualcomm flagship chip has suddenly collapsed for many years?

In addition to the high-end flagship chip, the second flagship dragon 870 is also losing from Xiaomikou.This makes us have to doubt, is Xiaomi can’t work?The first shot becomes the first batch. It may be better twice. If it is a regular loss, there is really a problem.

Workplace white-collar workers, after entering the field of technology …

Last year, the Australian government launched a global talent program project, which is GTI, I would like to be unfamiliar, this is an immigrant project. One of this is very eye-catching, that is –fintech.

In the entire Git project,FINTECH is the only direction related to the business sectorAnd, Australia’s demand for talents in this direction is very strong. So,What is FINTECH, why is this talent in this area?


Who master Fintech, who can enter a famous enterprise

FINTECH is the abbreviation of financial technology, it is popularUse various types of technological means to innovate reform traditional financial industryProducts, thereby increasing efficiency, reducing operating costs. For example, everyone usually used WeChat payment, Alipay is one of financial technology.

With the rise of artificial intelligence, more and more financial companies have gradually transformed into financial science and technology.Among the top five Internet financial institutions in the world, there are four Chinese companies.That is to say, whoever masters Fintech, who can enter the famous enterprises.

In the "Fintech Development Plan" issued by the People’s Bank of China, the highest planning of future financial science and technology work. And in the "Certified Public Accountant" known as the financial industryCFA, the topic of the Fintech theme, There is no shortage of manual intelligence, machine learning, big data, automated transactions …


FINTECH industry salary high, positions

FINTECH is currently used in a variety of industries, borrowings, wealth management, payment services, insurance, credit, housing intermediaries, etc. Because it can replace many traditional financial results,Use intelligence to replace human and material resources, intelligent will be a future trend.

Fintech industry salary is also very high, options, stocks are also available, and you can also get new things and new challenges every day.

Tell you someCurrently popular FINTECH positionsThe block chain is one of the fastest growing skills of financial skills. Therefore, the demand for block chain developers is very large. Other is financial analysts, network security analysts, quantitative analysts, compliance experts, business development managers, etc.


Financial background + technology skills two steps

Speaking here,Do you interested in the Fintech industry? So, what skills do you need to enter this industry?First of all, it is definitely a financial background, followed by technology skills. Therefore, entering this industry requires rich financial knowledge, it also requires technical capabilities, such as Java, Python, C ++, etc.

forStudents with computer or financial industry bases, it is very advantageous to enter the Fintech industryIn the advanced, there are these cross-skills, you will learn very quickly. And in China, ant prostitutes, Jingdong finance, etc.

Of course, if you are not a lot of background, it doesn’t matter, you recommend a course for you.Dr. Tsinghua University computerChen Wei explained for everyone"FINTECH Data Analysis and Risk Prediction of Job Search"It will make a case-scented scenic examination for Fintech, and use a communical case such as a loan default, let you seize the essence of Fintech. Now only need0.99Yuan, you can learn from class, quickly sign up, to enter the Fintech industry.

Entering the field of financial science and technology

Cast "Ren Decoir" of the skills interoperability

More than the number of people is more, please wait patiently

04 FINTECH courses five advantages

Advantage 1: Case Site Jinghua Teaching

This course will be targetedFINTECH application scenario case analysis pattern teachingLet you know the Fintech, and know the company’s necessary technology, the company’s must-have technology required in the job search,There are some common machine learning surface test questionsLet you take a while when you interview, calmly face.

Teacher also introduced some of the more interesting Fintech projects to let you form a certain precipitate at the application level.

Advantage 1: Ph.D. in Computer, Tsinghua University

This course is taught by artificial intelligence experts, Dr. Tsinghua Computer, Chen Yu, who is Alibaba Cloud MVP, Tencent Cloud TVP. Multi-year artificial intelligence, data analysis, financial science and technology receive teaching experience, can learn from the students to learn from the students.

He is also a member of the IEEE ACM Member China Artificial Intelligence Association. He has won 2 NOI Competition first prize at the CCF Database Committee, 2 ACM Competition Asian Copper Awards, "Data Analysis" "SQL must know" column author, More than 100,000 fans published multiple SCLs in the artificial intelligence.

Advantage 3: Code practical drive teaching

The course is written in real baseline code, the teacher will take your hand with your hand, Baseline baseline tuning, etc.

The three-day course is gradually entered, just to help you enter the Fintech industry.

Advantage 4: Temcripping + Class Supervision Teaching

In addition to the leading teacher, this training camp.It is also equipped with professional assistant teachers, you have problems encountered in courses or doing homework.You can ask questions in the WeChat group, and the assistant will help you solve it in time.

Every day, you will remind you to go to class, urge you to learn, don’t worry about yourself because inertia doesn’t want to be class.

Advantage 5: Course Outlet Background Rely

This course is provided by the course, starting a class is a online vocational education unicorn company,In 2013, it was officially launched, and the accumulated paid students more than 5 million.For college students and in-service staff, provide diversified curriculum systems and talent services such as professional ability advanced, vocational qualification examinations, and help students achieve sustainable occupational growth.

In the 2020 CCTV Network Education Festival hosted by CCTV,Start a class, win 2020 reputation influence vocational education brands. If you want the workplace, you should first polish your eyes, choose the lead in the industry, and you can’t miss it.

Entering the Fintech industry requires strong knowledge, here is in class, also prepared for everyoneLearning materialsSpree, let you broaden your knowledge.

The information includes: 4 this AI good book and 8 artificial intelligence knowledge maps.

"Artificial Intelligence A Modern Approach Artificial Intelligence – A Modern Method": Artificial intelligence, Mit, Stanford, Harvard, etc. The artificial intelligent textbooks of many famous schools are preferred to expect to become a true artificial intelligence professionals and classmates who accept system training.

"Deep learning: Deep Learnin": From basic statistical and calculus, help master the most advanced depth learning technology. Suitable for classmates who use and want to learn how modern deep learning systems, principles, and methods.

"Handsmanship Machine Learning: HANDS-ON MACHINE Learning": Pure code driver, from theory to the best way to practice, from understanding theory to solve problems. Suitable for students who wish to solve artificial intelligence issues.

"Smooth Python: Fluent Python": Suitable for mastering basic Python programming capabilities, hoping to master more good programming capabilities, becoming a real programming "professional player" classmates.

Entering the field of financial science and technology

Data: Win11 market share is close to 10% Microsoft is still expanding the upgrade

According to the Survey data in November, Windows 11 is gradually approaching to achieving two-digit market share. The company is based on the latest data of 60,000 Windows 10 and Windows 11 computers. There are currently 8.6% of the computer running Windows 11, 3.8% higher than last month.

Windows 10 version 21H2, this latest version of the operating system starts to be launched on PCs that are not qualified to use Windows 11, this version also appears in the view of Adduplex this month. By the end of November, its market share is 3.7%, and is currently in Windows 1022 (11%), Windows 10 20H2 (31.8%) and Windows 10 21H1 (36.8%).

Microsoft has repeatedly expressed that it will accelerate Windows 11, which in facts also show their attitude, Win10 is already in the past, and Windows 11 is their focus.

"Based on the active promotion update experience and user feedback we have seen so far, we advance the promotion of the promotion than our previous expectations, and now make Windows 11 upgrades more widely provided to eligible Windows 10 devices," Microsoft WINDOWS service and delivery executive John Kelps said.

It is worth mentioning that Microsoft has indeed expanded the WINDOWS 11 push, as long as your device meets the standard, you can upgrade free.

Small new flat board purchase and use experience

I have always wanted to buy a tablet to chase the vetera, occasionally write a note.Recently, I have to buy a netizen explosive struggle to spend more than 10 billion subsidies. Small pαd 11 inch is 862 yuan, and it is inevitable.

But all the e-products have been purchased in Jingdong, and there are very few a lot of water.But this time I rushed on this low price, I would like to turn over the seller’s various comments, and I found that comments can be.I want to try it.

The order was sent on the third day.Is SF!

The packaging is slightly thin.

Back display configuration



Clear.Try to put a look of love

It is particularly clear, it is 2K, and the sound quality can also be.Try to install a few applications, very smooth!

Overall, I feel that it is not bad.It seems that I still haven’t turned it!After all, there is a hundred oceans, it is also more satisfied!

What is worth buying app all net shop shopping prices

Industrial design works collection version improves tips!

Authorization | Huangshan first painting

Part 1: Type of typography

The type of works of the works can be roughly divided into parallel type, slanted, full version, free type, symmetrical, left and right divided, up and down, gravity, detail, background type.

01 / sided form

The elements perform a differential arrangement of different positions, and the screen has relatively symmetrical feeling by both connection and different elements.

Scheduled application

Picture application

Product typesetting application

Squiry in parallelized multi-use for pictures and product color, material research analysis, etc.

02 / slide typesetting

Type elements and texts in the shape of a curve, or tilt the picture, so that the layout exhibits unstable visual sensation, and the overall is more rhyme.

Scheduled application

Photo application

Product typesetting application

03 / full version

The text is placed on the image on the arranging, which can be placed in the middle, or it can be placed in the middle, but also intersect, but there must be a certain logic.

Full version of the application

Full version of the product typography

Full version of the graphic version

04 / free form

There is no regular typography, the layout is very lively, to avoid the integrity of the typography, incomplete.

Do not recommend product typography

05 / Symmetrical Form

Give human rationality, the feeling of work, but avoid the visual sensation of the dead plate.

Symmetric form application

06 / left

The layout is divided into two parts, the layout of the balance, forming a strong comparison effect, wearing the text, making the layout more coordinated.

Application of left and right divided layout

Photo application


07 / up and down segmentation

The layout is divided into two parts, the picture can be a single can also be a single, highlighting the energetic atmosphere, the text is light and free, you can write it.

Up and down segmentation is easy to operate, text and content can be discharged from the layout for the vertical version.

Application of up and down partial layout

Photo application


08 / gravity form

The entire layout has a focus and highlights the visual focus.

Cardiological form layout application


Photo application

09- Detail form

Highlight the material and function of the product through the magnification of the product details. Enhance the visual effect of the picture.

Detail form layout application


10 / background form

Place the product in the background template environment.


Background form layout application

Part II: Tips

Type of skills can be roughly divided into four types, text skills, lend white skills, graphic skills, color skills.

01 / font skill

Select the most comfortable font size

The font size of the font size has a relatively regular magnification, that is, 0.5 times relationship growth

Select the level of the font

Multiple family text information block processing relationship, visual experience between different locations, text blocks, pay attention to the comfort of the font spacing and the line spacing.

Select the level of the font

Different dimensional texts on the above visual experience.

Font selection

Understand the character of the font, avoid using the default font to avoid using the transition to use and ugly fonts, pay attention to avoid simultaneous use of both fonts and two or more different colors.

Font selection

Pay attention to the readability of the text, do not leave a lonely word, use small uppercase letters and carefully use the text of the text.

02 / Dossy Tips

What is a white?

Even if we call it "white", it does not mean that the actual space must be white.

As long as you don’t repeat any graphics or elements on the page. It originates from traditional art, which is originally the difference in the shape of the user more accurately.

Dossy is a space between each element and the surrounding space. When the designer talks about the white: they are actually negative space.

The word "negative space" originated in conflict, blank spaces can be filled with any color. The actual white and "留 白" "negative space" did not really associate, "darker" and "negative space" can be used interchangeably.

Do you want to leave?

Dossy is the basic element of the design, leaving a white simply is a premeditated guidance reader to capture the information necessary to express the information.

And improve the visual feeling of reading.

In the layout of the work set, there is enough space to reserve enough space, do not let information are too stacked, accounting for full space. Too many information will directly lead to a decrease in the interest of the examiner, and a slightly sparse version of the typography will make reading more comfortable.

Picture with text

Dossy is a simple art. You don’t have to pursue information on the page and drawings. Appropriate leaves give people a reading rest, and you can also cause unlimited imagination.

03 / graphic skills

A / Emphasize graphic comparison, increasing visual readability

Using contrast color and complementary color, enhance the readability of information, select the main color according to the subject, and use another color to match the decoration, produce visual tension, attract reading readers.



B / Weak background

Weak background, fuzzy color reduces the level of reading order,

Highlight design destination visuality and information readability,

The weakening of the background, the convexity of the text will make information reading more visual impact.



Weak background, emphasizing information.

C / segmentation geometry screen

Add a rectangular boundary box other than the text or set a color block under text, forming a product label, and the relationship is generated by the background and label, allowing the user to focus on the geometry.

Through the segmentation of the geometric frame, the reader’s vision center is focused on the information points within the frame.

D / gold segmentation skills

Gold segmentation: The ratio of the shorter portion of the line segment is equal to the longer portion and the overall length ratio, and its ratio is about 0.618.



Layout: Set the size into a gold segmentation ratio.

Rebum: Use the gold segmentation ratio to control the white space.

Content: Try to utilize the proportion of gold.

04 / color skills

A / contrast color

Two colors of the 12 color phase rings are 120 ° color. The matching method of the color color can generally use the color of the picture very jumped. It is now much more than sports products.

B / same color

Then there are two colors of the 12 color phase rings in the color of 30 °. Use the similar color on the product to enhance the overall feeling of the picture.

C / complementary color

The distance between the two colors in the 12-color ring is 180 ° color. The complementary color is exaggerated, and the visual impact is very strong.

D / neighboring color

The distance between the two colors in the 12 color phase ring is 60 ° color. The neighboring color is a relaxed feeling.

Co-like – then two colors of the two colors in the 12-color rings in the color of 30 °. Use the similar color on the product to enhance the overall feeling of the picture.

Complementary Color – The distance between the two colors in the 12-color ring is 180 ° color. The complementary color is exaggerated, and the visual impact is very strong.

Neighborhood – The distance between the two colors in the 12-color ring is 60 ° color. The neighboring color is a relaxed feeling.

Color of the golden rule – 6: 3: 1

The main color is a proportion of 60%, and the secondary color is 30% ratio, and the auxiliary color is a 10% ratio. Generally, the color of the color of the color is followed in the product color matching.

6: 3: 1

Color golden law is reflected in the product

Children’s products generally use multiple colors or irregular use of colors


You can follow this or a certain way to type and layout, but the products and rhythm of each person are different, so everyone finds the style and typography of our products. It is also important.

What can one server do?

A wave of 1500 people were organized before the activities of Alibaba Cloud servers, and 200 people were organized. But I am not organized now.

But when organizing this activity, I learned that everyone has a common question:Is this server use? ?

When it comes to the server, many people may say distributed, do calculation, crawl, and procedure background service, multi-person cooperation, etc.

In fact, these ordinary people can not use it, I will say that everyone can use it.

Everyone must have a work folder when you work, the students are your own courseware, exam, prepare for interview, and so on.

The friend who has already worked, there will be a file that puts your own important document, MarkDown, Pictures, Resume, etc.

Such an important folder, and we have to update every day, and we are worried about the computer is lost, or it is broken, suddenly these are not seen.

So we want to back up.

There is also our frequent personal computers and working computers to synchronize some private information, rather than passing on WeChat.

These are the use scenarios of Git private service, and it is very easy to use.

Everyone also knows GitHub, Gitee can also engage in private warehouses to back up, synchronous files, but their documents may put a lot of important information, including their own passwords, key classes, and put it above. It is not necessarily safe. You are not afraid of which major bugs will leak your information [wit]

More crossed, GitHub and Gitee are speed-off. After all, the functional positioning of people is not a network disk.

There is a large file in the project (more than a few hundred m), such as PDF, PPT, etc. It will make you suffocate.

Later, I will send a document to tell, how do you have a git private service!

This can be used to generate a download link of the file, or the local file can also be transmitted to the server.

It is equivalent to making an object store, in fact, cloud manufacturers also have objects stored.

However, we can do one, not enough, very classmates, you should not know how object storage, in fact, we can use the server to be a similar company.

I have been deployed on the server with a tool written by Go now. Used to pass files with the server, or create a temporary download link for some files.

These are direct command lines,

In this way, I wrap the command package into a shell command, want to pass the file, directly uploadTomyServer, and then return to the downloadable link, this file also passed to my server.

I also put my project code on GitHub:

Interested exciting friends can go to learn a wave, and give a star. Haha.

Do a website, for example, everyone knows how to write a few lines of code with HTML, but how to show someone else?

If you use your own computer to do a server, you can only access your website with your device in the same router, and this device can not have your website.

Because your IP is not a public IP.

If there is a cloud server, it is a public network IP, your website can make anyone visit.

Or a service you provide allows anyone to use.

For example, in the second example, we can develop a file storage, this service, I only put the command line to others, others can use my service to generate a link, of course their files have passed to me. On the server.

Again a way of use.

I have previously organized the activities of the server, Ali Cloud gave me an Excel, let the face are the list of friends who buy servers here, I will directly put this list directly to the group, let everyone check, appear in list You can find me to cash back, do you have anything.

There are several big problems that do this:

  • Everyone is going to download Excel, do contrast, there will be someone to change the content of Excel and then say it is bought from you, I can’t make a comparison with Excel.
  • Excel has a personal information from others, which is unstoppable.
  • If everyone uses Excel inquiry, private letter I cash back, one is nearly two thousand people to find me cash back, my WeChat is imposed, this becomes physical activity.

How should I do it?

I simply write a query page, the backend logic is to read an Execl form, everyone enters her Ali Cloud ID in the query page, if in Excel, the page will return the QR code of the cash back group, everyone can be independent Scan code is plus group.

In this way, I will finally send an equal red envelope directly in the cash group, is it great to reduce human cost?

Of course, I generated the QR code of 17 cash back groups. According to certain rules, they show friends passing through the query.

It is such a very ordinary query page.

After the query passes, the cash back group is displayed.

But to deploy on the server, because there is no public network IP, others can’t use your service.

Learn Linux

Learning Linux actually engaged in a virtual machine on your computer, or you can also learn the dual system, but this is very testing how your computer performance is.

If you have a server, it is a separate computer. How do you Hoho Huoho, and you don’t have to shut down a year, you can always run your task, and your local computer is completely isolated.

More convenient, you are now in the system, such as Centos, want to do an experiment, need to be on the unbantu, if it is a cloud server, the replacement system is in the background point, one button is reloaded, the cloud manufacturer basically supports all the system installation of.

We usually play Linux is often equipped with various environments, then this Linux is played by yourself (generally unwarring use root permission), in short, the environment is unable to reload, basically reload.

The cloud server reloading the system is too convenient.

There is also an environment where you are not easy to match. If you play this environment later, you will go back to this previously matching environment rather than re-fitting the system.

Then you can save the function with the cloud server, you can play a mirror package in the moment you match the environment. If the environment is broken, you will fall back to the status of the last mirror package. This is very fragrant.


In fact, there are still many other uses, but I just say that everyone is universally used.

The above, the three points mentioned: git private service, document storage service, build a website, I will send a hand to do your hand, truly use the server to improve our work learning efficiency!

Regarding the activities of the free collar server, I will not organize so many people also involve the cash back. Some of the friends do not look at the group information, then directly private letter and I complain, I am really handling, body and mind Too much.

If you want to buy a server, you can purchase this link:


Now is the double eleven event, or the activity price is over, and it will be over in December.

The price is really very cheap now, 60 blocks for new users can buy one year,But I will no longer be cash out, everyone can buy it yourself through the link..

If you want to register a new number, pay attention to real-name certification requires a new ID card.

It is recommended to buy these two servers, which is all, cost-effective.